From 201aa89c103002d40cb11d2fa0e4a35f58988c64 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 4 Feb 2025 23:30:49 +0000 Subject: [PATCH 01/41] Augment Vim v0.6.0 --- autoload/augment/client.vim | 9 ++- autoload/augment/suggestion.vim | 2 + autoload/augment/version.vim | 2 +- dist/server.js | 102 ++++++++++++++++---------------- 4 files changed, 62 insertions(+), 53 deletions(-) diff --git a/autoload/augment/client.vim b/autoload/augment/client.vim index c51d0b1..ef56e22 100644 --- a/autoload/augment/client.vim +++ b/autoload/augment/client.vim @@ -316,7 +316,14 @@ endfunction " Run a new server and create a new client object function! s:New() abort - call augment#log#Info('Starting augment server') + call augment#log#Info('Starting augment server v' . augment#version#Version()) + + " If debugging is enabled, set the AUGMENT_LOG_LEVEL environment variable + " which will enable debug logging in the server + if exists('g:augment_debug') && g:augment_debug + let $AUGMENT_LOG_LEVEL = 'debug' + echom 'Augment: Debugging enabled' + endif " Set the message handlers let notification_handlers = { diff --git a/autoload/augment/suggestion.vim b/autoload/augment/suggestion.vim index 5df3638..4eccf2a 100644 --- a/autoload/augment/suggestion.vim +++ b/autoload/augment/suggestion.vim @@ -22,6 +22,7 @@ function! augment#suggestion#Clear(...) abort \ 'requestId': current.request_id, \ 'accept': v:false, \ }) + call augment#log#Debug('Rejected completion with request_id=' . current.request_id . ' text=' . string(current.lines)) endif return current @@ -126,6 +127,7 @@ function! augment#suggestion#Accept() abort \ 'requestId': info.request_id, \ 'accept': v:true, \ }) + call augment#log#Debug('Accepted completion with request_id=' . info.request_id . ' text=' . string(lines)) return v:true endfunction diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 104b879..21afbb3 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.5.0' + return '0.6.0' endfunction diff --git a/dist/server.js b/dist/server.js index 23d1ebd..ce2a5a1 100644 --- a/dist/server.js +++ b/dist/server.js @@ -4,81 +4,81 @@ * Licensed for use only with Vim plugin - See LICENSE.md * Modification or reverse engineering prohibited */ -"use strict";var BD=Object.create;var Ma=Object.defineProperty;var UD=Object.getOwnPropertyDescriptor;var $D=Object.getOwnPropertyNames;var WD=Object.getPrototypeOf,jD=Object.prototype.hasOwnProperty;var re=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),zD=(t,e)=>{for(var n in e)Ma(t,n,{get:e[n],enumerable:!0})},Jm=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of $D(e))!jD.call(t,s)&&s!==n&&Ma(t,s,{get:()=>e[s],enumerable:!(i=UD(e,s))||i.enumerable});return t};var Tt=(t,e,n)=>(n=t!=null?BD(WD(t)):{},Jm(e||!t||!t.__esModule?Ma(n,"default",{value:t,enumerable:!0}):n,t)),HD=t=>Jm(Ma({},"__esModule",{value:!0}),t);var qa=re(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.thenable=Dt.typedArray=Dt.stringArray=Dt.array=Dt.func=Dt.error=Dt.number=Dt.string=Dt.boolean=void 0;function GD(t){return t===!0||t===!1}Dt.boolean=GD;function Zm(t){return typeof t=="string"||t instanceof String}Dt.string=Zm;function QD(t){return typeof t=="number"||t instanceof Number}Dt.number=QD;function JD(t){return t instanceof Error}Dt.error=JD;function eb(t){return typeof t=="function"}Dt.func=eb;function tb(t){return Array.isArray(t)}Dt.array=tb;function XD(t){return tb(t)&&t.every(e=>Zm(e))}Dt.stringArray=XD;function YD(t,e){return Array.isArray(t)&&t.every(e)}Dt.typedArray=YD;function KD(t){return t&&eb(t.then)}Dt.thenable=KD});var eo=re(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.stringArray=zt.array=zt.func=zt.error=zt.number=zt.string=zt.boolean=void 0;function ZD(t){return t===!0||t===!1}zt.boolean=ZD;function nb(t){return typeof t=="string"||t instanceof String}zt.string=nb;function eI(t){return typeof t=="number"||t instanceof Number}zt.number=eI;function tI(t){return t instanceof Error}zt.error=tI;function nI(t){return typeof t=="function"}zt.func=nI;function rb(t){return Array.isArray(t)}zt.array=rb;function rI(t){return rb(t)&&t.every(e=>nb(e))}zt.stringArray=rI});var $d=re(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});ue.Message=ue.NotificationType9=ue.NotificationType8=ue.NotificationType7=ue.NotificationType6=ue.NotificationType5=ue.NotificationType4=ue.NotificationType3=ue.NotificationType2=ue.NotificationType1=ue.NotificationType0=ue.NotificationType=ue.RequestType9=ue.RequestType8=ue.RequestType7=ue.RequestType6=ue.RequestType5=ue.RequestType4=ue.RequestType3=ue.RequestType2=ue.RequestType1=ue.RequestType=ue.RequestType0=ue.AbstractMessageSignature=ue.ParameterStructures=ue.ResponseError=ue.ErrorCodes=void 0;var ki=eo(),bd;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(bd||(ue.ErrorCodes=bd={}));var _d=class t extends Error{constructor(e,n,i){super(n),this.code=ki.number(e)?e:bd.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ue.ResponseError=_d;var un=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ue.ParameterStructures=un;un.auto=new un("auto");un.byPosition=new un("byPosition");un.byName=new un("byName");var st=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return un.auto}};ue.AbstractMessageSignature=st;var vd=class extends st{constructor(e){super(e,0)}};ue.RequestType0=vd;var yd=class extends st{constructor(e,n=un.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.RequestType=yd;var wd=class extends st{constructor(e,n=un.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.RequestType1=wd;var Pd=class extends st{constructor(e){super(e,2)}};ue.RequestType2=Pd;var xd=class extends st{constructor(e){super(e,3)}};ue.RequestType3=xd;var Sd=class extends st{constructor(e){super(e,4)}};ue.RequestType4=Sd;var Cd=class extends st{constructor(e){super(e,5)}};ue.RequestType5=Cd;var kd=class extends st{constructor(e){super(e,6)}};ue.RequestType6=kd;var Rd=class extends st{constructor(e){super(e,7)}};ue.RequestType7=Rd;var Td=class extends st{constructor(e){super(e,8)}};ue.RequestType8=Td;var Dd=class extends st{constructor(e){super(e,9)}};ue.RequestType9=Dd;var Id=class extends st{constructor(e,n=un.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.NotificationType=Id;var Ed=class extends st{constructor(e){super(e,0)}};ue.NotificationType0=Ed;var Fd=class extends st{constructor(e,n=un.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.NotificationType1=Fd;var Md=class extends st{constructor(e){super(e,2)}};ue.NotificationType2=Md;var Ad=class extends st{constructor(e){super(e,3)}};ue.NotificationType3=Ad;var Nd=class extends st{constructor(e){super(e,4)}};ue.NotificationType4=Nd;var qd=class extends st{constructor(e){super(e,5)}};ue.NotificationType5=qd;var Ld=class extends st{constructor(e){super(e,6)}};ue.NotificationType6=Ld;var Od=class extends st{constructor(e){super(e,7)}};ue.NotificationType7=Od;var Bd=class extends st{constructor(e){super(e,8)}};ue.NotificationType8=Bd;var Ud=class extends st{constructor(e){super(e,9)}};ue.NotificationType9=Ud;var ib;(function(t){function e(s){let c=s;return c&&ki.string(c.method)&&(ki.string(c.id)||ki.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&ki.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(ki.string(c.id)||ki.number(c.id)||c.id===null)}t.isResponse=i})(ib||(ue.Message=ib={}))});var jd=re(Yr=>{"use strict";var ob;Object.defineProperty(Yr,"__esModule",{value:!0});Yr.LRUCache=Yr.LinkedMap=Yr.Touch=void 0;var Ht;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Ht||(Yr.Touch=Ht={}));var La=class{constructor(){this[ob]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Ht.None){let i=this._map.get(e);if(i)return n!==Ht.None&&this.touch(i,n),i.value}set(e,n,i=Ht.None){let s=this._map.get(e);if(s)s.value=n,i!==Ht.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Ht.None:this.addItemLast(s);break;case Ht.First:this.addItemFirst(s);break;case Ht.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(ob=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Ht.First&&n!==Ht.Last)){if(n===Ht.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Ht.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};Yr.LinkedMap=La;var Wd=class extends La{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Ht.AsNew){return super.get(e,n)}peek(e){return super.get(e,Ht.None)}set(e,n){return super.set(e,n,Ht.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};Yr.LRUCache=Wd});var ab=re(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.Disposable=void 0;var sb;(function(t){function e(n){return{dispose:n}}t.create=e})(sb||(Oa.Disposable=sb={}))});var Kr=re(Vd=>{"use strict";Object.defineProperty(Vd,"__esModule",{value:!0});var zd;function Hd(){if(zd===void 0)throw new Error("No runtime abstraction layer installed");return zd}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");zd=n}t.install=e})(Hd||(Hd={}));Vd.default=Hd});var no=re(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.Emitter=to.Event=void 0;var iI=Kr(),cb;(function(t){let e={dispose(){}};t.None=function(){return e}})(cb||(to.Event=cb={}));var Gd=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Gd),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};to.Emitter=Ba;Ba._noop=function(){}});var Wa=re(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.CancellationTokenSource=ro.CancellationToken=void 0;var oI=Kr(),sI=eo(),Qd=no(),Ua;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Qd.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Qd.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||sI.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(Ua||(ro.CancellationToken=Ua={}));var aI=Object.freeze(function(t,e){let n=(0,oI.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),$a=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?aI:(this._emitter||(this._emitter=new Qd.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Jd=class{get token(){return this._token||(this._token=new $a),this._token}cancel(){this._token?this._token.cancel():this._token=Ua.Cancelled}dispose(){this._token?this._token instanceof $a&&this._token.dispose():this._token=Ua.None}};ro.CancellationTokenSource=Jd});var ub=re(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.SharedArrayReceiverStrategy=io.SharedArraySenderStrategy=void 0;var cI=Wa(),is;(function(t){t.Continue=0,t.Cancelled=1})(is||(is={}));var Xd=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=is.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,is.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};io.SharedArraySenderStrategy=Xd;var Yd=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===is.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Kd=class{constructor(e){this.token=new Yd(e)}cancel(){}dispose(){}},Zd=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new cI.CancellationTokenSource:new Kd(n)}};io.SharedArrayReceiverStrategy=Zd});var tf=re(ja=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});ja.Semaphore=void 0;var uI=Kr(),ef=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,uI.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};ja.Semaphore=ef});var db=re(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.ReadableStreamMessageReader=Zr.AbstractMessageReader=Zr.MessageReader=void 0;var rf=Kr(),oo=eo(),nf=no(),lI=tf(),lb;(function(t){function e(n){let i=n;return i&&oo.func(i.listen)&&oo.func(i.dispose)&&oo.func(i.onError)&&oo.func(i.onClose)&&oo.func(i.onPartialMessage)}t.is=e})(lb||(Zr.MessageReader=lb={}));var za=class{constructor(){this.errorEmitter=new nf.Emitter,this.closeEmitter=new nf.Emitter,this.partialMessageEmitter=new nf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${oo.string(e.message)?e.message:"unknown"}`)}};Zr.AbstractMessageReader=za;var of;(function(t){function e(n){let i,s,c,u=new Map,h,g=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let b of n.contentDecoders)u.set(b.name,b);if(n.contentTypeDecoder!==void 0&&(h=n.contentTypeDecoder,g.set(h.name,h)),n.contentTypeDecoders!==void 0)for(let b of n.contentTypeDecoders)g.set(b.name,b)}return h===void 0&&(h=(0,rf.default)().applicationJson.decoder,g.set(h.name,h)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:h,contentTypeDecoders:g}}t.fromOptions=e})(of||(of={}));var sf=class extends za{constructor(e,n){super(),this.readable=e,this.options=of.fromOptions(n),this.buffer=(0,rf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new lI.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. -${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,rf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};Zr.ReadableStreamMessageReader=sf});var mb=re(ei=>{"use strict";Object.defineProperty(ei,"__esModule",{value:!0});ei.WriteableStreamMessageWriter=ei.AbstractMessageWriter=ei.MessageWriter=void 0;var fb=Kr(),os=eo(),dI=tf(),hb=no(),fI="Content-Length: ",gb=`\r -`,pb;(function(t){function e(n){let i=n;return i&&os.func(i.dispose)&&os.func(i.onClose)&&os.func(i.onError)&&os.func(i.write)}t.is=e})(pb||(ei.MessageWriter=pb={}));var Ha=class{constructor(){this.errorEmitter=new hb.Emitter,this.closeEmitter=new hb.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${os.string(e.message)?e.message:"unknown"}`)}};ei.AbstractMessageWriter=Ha;var af;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,fb.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,fb.default)().applicationJson.encoder}}t.fromOptions=e})(af||(af={}));var cf=class extends Ha{constructor(e,n){super(),this.writable=e,this.options=af.fromOptions(n),this.errorCount=0,this.writeSemaphore=new dI.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let s=[];return s.push(fI,i.byteLength.toString(),gb),s.push(gb),this.doWrite(e,s,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(s){return this.handleError(s,e),Promise.reject(s)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};ei.WriteableStreamMessageWriter=cf});var bb=re(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});Va.AbstractMessageBuffer=void 0;var hI=13,gI=10,pI=`\r -`,uf=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let n=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let n=0,i=0,s=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};Va.AbstractMessageBuffer=uf});var Pb=re(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.createMessageConnection=xe.ConnectionOptions=xe.MessageStrategy=xe.CancellationStrategy=xe.CancellationSenderStrategy=xe.CancellationReceiverStrategy=xe.RequestCancellationReceiverStrategy=xe.IdCancellationReceiverStrategy=xe.ConnectionStrategy=xe.ConnectionError=xe.ConnectionErrors=xe.LogTraceNotification=xe.SetTraceNotification=xe.TraceFormat=xe.TraceValues=xe.Trace=xe.NullLogger=xe.ProgressType=xe.ProgressToken=void 0;var _b=Kr(),mt=eo(),he=$d(),vb=jd(),ss=no(),lf=Wa(),us;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(us||(us={}));var df;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(df||(xe.ProgressToken=df={}));var as;(function(t){t.type=new he.NotificationType("$/progress")})(as||(as={}));var ff=class{constructor(){}};xe.ProgressType=ff;var hf;(function(t){function e(n){return mt.func(n)}t.is=e})(hf||(hf={}));xe.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(xe.Trace=He={}));var yb;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(yb||(xe.TraceValues=yb={}));(function(t){function e(i){if(!mt.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(xe.Trace=He={}));var Cn;(function(t){t.Text="text",t.JSON="json"})(Cn||(xe.TraceFormat=Cn={}));(function(t){function e(n){return mt.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Cn||(xe.TraceFormat=Cn={}));var gf;(function(t){t.type=new he.NotificationType("$/setTrace")})(gf||(xe.SetTraceNotification=gf={}));var Ga;(function(t){t.type=new he.NotificationType("$/logTrace")})(Ga||(xe.LogTraceNotification=Ga={}));var cs;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(cs||(xe.ConnectionErrors=cs={}));var so=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};xe.ConnectionError=so;var pf;(function(t){function e(n){let i=n;return i&&mt.func(i.cancelUndispatched)}t.is=e})(pf||(xe.ConnectionStrategy=pf={}));var Qa;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&mt.func(i.createCancellationTokenSource)&&(i.dispose===void 0||mt.func(i.dispose))}t.is=e})(Qa||(xe.IdCancellationReceiverStrategy=Qa={}));var mf;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&mt.func(i.createCancellationTokenSource)&&(i.dispose===void 0||mt.func(i.dispose))}t.is=e})(mf||(xe.RequestCancellationReceiverStrategy=mf={}));var Ja;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new lf.CancellationTokenSource}});function e(n){return Qa.is(n)||mf.is(n)}t.is=e})(Ja||(xe.CancellationReceiverStrategy=Ja={}));var Xa;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(us.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&mt.func(i.sendCancellation)&&mt.func(i.cleanup)}t.is=e})(Xa||(xe.CancellationSenderStrategy=Xa={}));var Ya;(function(t){t.Message=Object.freeze({receiver:Ja.Message,sender:Xa.Message});function e(n){let i=n;return i&&Ja.is(i.receiver)&&Xa.is(i.sender)}t.is=e})(Ya||(xe.CancellationStrategy=Ya={}));var Ka;(function(t){function e(n){let i=n;return i&&mt.func(i.handleMessage)}t.is=e})(Ka||(xe.MessageStrategy=Ka={}));var wb;(function(t){function e(n){let i=n;return i&&(Ya.is(i.cancellationStrategy)||pf.is(i.connectionStrategy)||Ka.is(i.messageStrategy))}t.is=e})(wb||(xe.ConnectionOptions=wb={}));var Yn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Yn||(Yn={}));function mI(t,e,n,i){let s=n!==void 0?n:xe.NullLogger,c=0,u=0,h=0,g="2.0",b,y=new Map,T,F=new Map,E=new Map,L,B=new vb.LinkedMap,$=new Map,X=new Set,D=new Map,x=He.Off,O=Cn.Text,te,_e=Yn.New,Be=new ss.Emitter,Ye=new ss.Emitter,kt=new ss.Emitter,we=new ss.Emitter,Y=new ss.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Ya.Message;function ae(S){if(S===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+S.toString()}function ie(S){return S===null?"res-unknown-"+(++h).toString():"res-"+S.toString()}function ke(){return"not-"+(++u).toString()}function ge(S,H){he.Message.isRequest(H)?S.set(ae(H.id),H):he.Message.isResponse(H)?S.set(ie(H.id),H):S.set(ke(),H)}function pe(S){}function wt(){return _e===Yn.Listening}function We(){return _e===Yn.Closed}function je(){return _e===Yn.Disposed}function pn(){(_e===Yn.New||_e===Yn.Listening)&&(_e=Yn.Closed,Ye.fire(void 0))}function _r(S){Be.fire([S,void 0,void 0])}function zn(S){Be.fire(S)}t.onClose(pn),t.onError(_r),e.onClose(pn),e.onError(zn);function sr(){L||B.size===0||(L=(0,_b.default)().timer.setImmediate(()=>{L=void 0,ar()}))}function gi(S){he.Message.isRequest(S)?qi(S):he.Message.isNotification(S)?yr(S):he.Message.isResponse(S)?vr(S):wr(S)}function ar(){if(B.size===0)return;let S=B.shift();try{let H=i?.messageStrategy;Ka.is(H)?H.handleMessage(S,gi):gi(S)}finally{sr()}}let cr=S=>{try{if(he.Message.isNotification(S)&&S.method===us.type.method){let H=S.params.id,Z=ae(H),oe=B.get(Z);if(he.Message.isRequest(oe)){let Le=i?.connectionStrategy,Qe=Le&&Le.cancelUndispatched?Le.cancelUndispatched(oe,pe):void 0;if(Qe&&(Qe.error!==void 0||Qe.result!==void 0)){B.delete(Z),D.delete(H),Qe.id=oe.id,Lt(Qe,S.method,Date.now()),e.write(Qe).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=D.get(H);if(Ue!==void 0){Ue.cancel(),Br(S);return}else X.add(H)}ge(B,S)}finally{sr()}};function qi(S){if(je())return;function H(Re,Je,Ae){let it={jsonrpc:g,id:S.id};Re instanceof he.ResponseError?it.error=Re.toJson():it.result=Re===void 0?null:Re,Lt(it,Je,Ae),e.write(it).catch(()=>s.error("Sending response failed."))}function Z(Re,Je,Ae){let it={jsonrpc:g,id:S.id,error:Re.toJson()};Lt(it,Je,Ae),e.write(it).catch(()=>s.error("Sending response failed."))}function oe(Re,Je,Ae){Re===void 0&&(Re=null);let it={jsonrpc:g,id:S.id,result:Re};Lt(it,Je,Ae),e.write(it).catch(()=>s.error("Sending response failed."))}pi(S);let Ue=y.get(S.method),Le,Qe;Ue&&(Le=Ue.type,Qe=Ue.handler);let et=Date.now();if(Qe||b){let Re=S.id??String(Date.now()),Je=Qa.is(z.receiver)?z.receiver.createCancellationTokenSource(Re):z.receiver.createCancellationTokenSource(S);S.id!==null&&X.has(S.id)&&Je.cancel(),S.id!==null&&D.set(Re,Je);try{let Ae;if(Qe)if(S.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${S.method} defines ${Le.numberOfParams} params but received none.`),S.method,et);return}Ae=Qe(Je.token)}else if(Array.isArray(S.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by name but received parameters by position`),S.method,et);return}Ae=Qe(...S.params,Je.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by position but received parameters by name`),S.method,et);return}Ae=Qe(S.params,Je.token)}else b&&(Ae=b(S.method,S.params,Je.token));let it=Ae;Ae?it.then?it.then(Rt=>{D.delete(Re),H(Rt,S.method,et)},Rt=>{D.delete(Re),Rt instanceof he.ResponseError?Z(Rt,S.method,et):Rt&&mt.string(Rt.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${Rt.message}`),S.method,et):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,et)}):(D.delete(Re),H(Ae,S.method,et)):(D.delete(Re),oe(Ae,S.method,et))}catch(Ae){D.delete(Re),Ae instanceof he.ResponseError?H(Ae,S.method,et):Ae&&mt.string(Ae.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${Ae.message}`),S.method,et):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,et)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${S.method}`),S.method,et)}function vr(S){if(!je())if(S.id===null)S.error?s.error(`Received response message without id: Error is: -${JSON.stringify(S.error,void 0,4)}`):s.error("Received response message without id. No further error information provided.");else{let H=S.id,Z=$.get(H);if(lr(S,Z),Z!==void 0){$.delete(H);try{if(S.error){let oe=S.error;Z.reject(new he.ResponseError(oe.code,oe.message,oe.data))}else if(S.result!==void 0)Z.resolve(S.result);else throw new Error("Should never happen.")}catch(oe){oe.message?s.error(`Response handler '${Z.method}' failed with message: ${oe.message}`):s.error(`Response handler '${Z.method}' failed unexpectedly.`)}}}}function yr(S){if(je())return;let H,Z;if(S.method===us.type.method){let oe=S.params.id;X.delete(oe),Br(S);return}else{let oe=F.get(S.method);oe&&(Z=oe.handler,H=oe.type)}if(Z||T)try{if(Br(S),Z)if(S.params===void 0)H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&s.error(`Notification ${S.method} defines ${H.numberOfParams} params but received none.`),Z();else if(Array.isArray(S.params)){let oe=S.params;S.method===as.type.method&&oe.length===2&&df.is(oe[0])?Z({token:oe[0],value:oe[1]}):(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&s.error(`Notification ${S.method} defines parameters by name but received parameters by position`),H.numberOfParams!==S.params.length&&s.error(`Notification ${S.method} defines ${H.numberOfParams} params but received ${oe.length} arguments`)),Z(...oe))}else H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&s.error(`Notification ${S.method} defines parameters by position but received parameters by name`),Z(S.params);else T&&T(S.method,S.params)}catch(oe){oe.message?s.error(`Notification handler '${S.method}' failed with message: ${oe.message}`):s.error(`Notification handler '${S.method}' failed unexpectedly.`)}else kt.fire(S)}function wr(S){if(!S){s.error("Received empty message.");return}s.error(`Received message which is neither a response nor a notification message: -${JSON.stringify(S,null,4)}`);let H=S;if(mt.string(H.id)||mt.number(H.id)){let Z=H.id,oe=$.get(Z);oe&&oe.reject(new Error("The received response has neither a result nor an error property."))}}function gt(S){if(S!=null)switch(x){case He.Verbose:return JSON.stringify(S,null,4);case He.Compact:return JSON.stringify(S);default:return}}function ur(S){if(!(x===He.Off||!te))if(O===Cn.Text){let H;(x===He.Verbose||x===He.Compact)&&S.params&&(H=`Params: ${gt(S.params)} +"use strict";var eN=Object.create;var dc=Object.defineProperty;var tN=Object.getOwnPropertyDescriptor;var nN=Object.getOwnPropertyNames;var rN=Object.getPrototypeOf,iN=Object.prototype.hasOwnProperty;var F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),oN=(e,t)=>{for(var n in t)dc(e,n,{get:t[n],enumerable:!0})},a_=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of nN(t))!iN.call(e,o)&&o!==n&&dc(e,o,{get:()=>t[o],enumerable:!(i=tN(t,o))||i.enumerable});return e};var kt=(e,t,n)=>(n=e!=null?eN(rN(e)):{},a_(t||!e||!e.__esModule?dc(n,"default",{value:e,enumerable:!0}):n,e)),sN=e=>a_(dc({},"__esModule",{value:!0}),e);var gc=F(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.thenable=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function cN(e){return e===!0||e===!1}It.boolean=cN;function d_(e){return typeof e=="string"||e instanceof String}It.string=d_;function uN(e){return typeof e=="number"||e instanceof Number}It.number=uN;function lN(e){return e instanceof Error}It.error=lN;function f_(e){return typeof e=="function"}It.func=f_;function h_(e){return Array.isArray(e)}It.array=h_;function dN(e){return h_(e)&&e.every(t=>d_(t))}It.stringArray=dN;function fN(e,t){return Array.isArray(e)&&e.every(t)}It.typedArray=fN;function hN(e){return e&&f_(e.then)}It.thenable=hN});var oo=F(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.stringArray=Qt.array=Qt.func=Qt.error=Qt.number=Qt.string=Qt.boolean=void 0;function gN(e){return e===!0||e===!1}Qt.boolean=gN;function g_(e){return typeof e=="string"||e instanceof String}Qt.string=g_;function pN(e){return typeof e=="number"||e instanceof Number}Qt.number=pN;function mN(e){return e instanceof Error}Qt.error=mN;function bN(e){return typeof e=="function"}Qt.func=bN;function p_(e){return Array.isArray(e)}Qt.array=p_;function _N(e){return p_(e)&&e.every(t=>g_(t))}Qt.stringArray=_N});var Df=F(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});ue.Message=ue.NotificationType9=ue.NotificationType8=ue.NotificationType7=ue.NotificationType6=ue.NotificationType5=ue.NotificationType4=ue.NotificationType3=ue.NotificationType2=ue.NotificationType1=ue.NotificationType0=ue.NotificationType=ue.RequestType9=ue.RequestType8=ue.RequestType7=ue.RequestType6=ue.RequestType5=ue.RequestType4=ue.RequestType3=ue.RequestType2=ue.RequestType1=ue.RequestType=ue.RequestType0=ue.AbstractMessageSignature=ue.ParameterStructures=ue.ResponseError=ue.ErrorCodes=void 0;var Ii=oo(),of;(function(e){e.ParseError=-32700,e.InvalidRequest=-32600,e.MethodNotFound=-32601,e.InvalidParams=-32602,e.InternalError=-32603,e.jsonrpcReservedErrorRangeStart=-32099,e.serverErrorStart=-32099,e.MessageWriteError=-32099,e.MessageReadError=-32098,e.PendingResponseRejected=-32097,e.ConnectionInactive=-32096,e.ServerNotInitialized=-32002,e.UnknownErrorCode=-32001,e.jsonrpcReservedErrorRangeEnd=-32e3,e.serverErrorEnd=-32e3})(of||(ue.ErrorCodes=of={}));var sf=class e extends Error{constructor(t,n,i){super(n),this.code=Ii.number(t)?t:of.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,e.prototype)}toJson(){let t={code:this.code,message:this.message};return this.data!==void 0&&(t.data=this.data),t}};ue.ResponseError=sf;var fn=class e{constructor(t){this.kind=t}static is(t){return t===e.auto||t===e.byName||t===e.byPosition}toString(){return this.kind}};ue.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var ut=class{constructor(t,n){this.method=t,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ue.AbstractMessageSignature=ut;var af=class extends ut{constructor(t){super(t,0)}};ue.RequestType0=af;var cf=class extends ut{constructor(t,n=fn.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.RequestType=cf;var uf=class extends ut{constructor(t,n=fn.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.RequestType1=uf;var lf=class extends ut{constructor(t){super(t,2)}};ue.RequestType2=lf;var df=class extends ut{constructor(t){super(t,3)}};ue.RequestType3=df;var ff=class extends ut{constructor(t){super(t,4)}};ue.RequestType4=ff;var hf=class extends ut{constructor(t){super(t,5)}};ue.RequestType5=hf;var gf=class extends ut{constructor(t){super(t,6)}};ue.RequestType6=gf;var pf=class extends ut{constructor(t){super(t,7)}};ue.RequestType7=pf;var mf=class extends ut{constructor(t){super(t,8)}};ue.RequestType8=mf;var bf=class extends ut{constructor(t){super(t,9)}};ue.RequestType9=bf;var _f=class extends ut{constructor(t,n=fn.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.NotificationType=_f;var vf=class extends ut{constructor(t){super(t,0)}};ue.NotificationType0=vf;var yf=class extends ut{constructor(t,n=fn.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.NotificationType1=yf;var xf=class extends ut{constructor(t){super(t,2)}};ue.NotificationType2=xf;var wf=class extends ut{constructor(t){super(t,3)}};ue.NotificationType3=wf;var Pf=class extends ut{constructor(t){super(t,4)}};ue.NotificationType4=Pf;var Sf=class extends ut{constructor(t){super(t,5)}};ue.NotificationType5=Sf;var Cf=class extends ut{constructor(t){super(t,6)}};ue.NotificationType6=Cf;var kf=class extends ut{constructor(t){super(t,7)}};ue.NotificationType7=kf;var Rf=class extends ut{constructor(t){super(t,8)}};ue.NotificationType8=Rf;var Tf=class extends ut{constructor(t){super(t,9)}};ue.NotificationType9=Tf;var m_;(function(e){function t(o){let c=o;return c&&Ii.string(c.method)&&(Ii.string(c.id)||Ii.number(c.id))}e.isRequest=t;function n(o){let c=o;return c&&Ii.string(c.method)&&o.id===void 0}e.isNotification=n;function i(o){let c=o;return c&&(c.result!==void 0||!!c.error)&&(Ii.string(c.id)||Ii.number(c.id)||c.id===null)}e.isResponse=i})(m_||(ue.Message=m_={}))});var If=F(ti=>{"use strict";var b_;Object.defineProperty(ti,"__esModule",{value:!0});ti.LRUCache=ti.LinkedMap=ti.Touch=void 0;var Jt;(function(e){e.None=0,e.First=1,e.AsOld=e.First,e.Last=2,e.AsNew=e.Last})(Jt||(ti.Touch=Jt={}));var pc=class{constructor(){this[b_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(t){return this._map.has(t)}get(t,n=Jt.None){let i=this._map.get(t);if(i)return n!==Jt.None&&this.touch(i,n),i.value}set(t,n,i=Jt.None){let o=this._map.get(t);if(o)o.value=n,i!==Jt.None&&this.touch(o,i);else{switch(o={key:t,value:n,next:void 0,previous:void 0},i){case Jt.None:this.addItemLast(o);break;case Jt.First:this.addItemFirst(o);break;case Jt.Last:this.addItemLast(o);break;default:this.addItemLast(o);break}this._map.set(t,o),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){let n=this._map.get(t);if(n)return this._map.delete(t),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,n){let i=this._state,o=this._head;for(;o;){if(n?t.bind(n)(o.value,o.key,this):t(o.value,o.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");o=o.next}}keys(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.key,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return i}values(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.value,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return i}entries(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:[n.key,n.value],done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return i}[(b_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>t;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw new Error("Invalid list");this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw new Error("Invalid list");this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{let n=t.next,i=t.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}t.next=void 0,t.previous=void 0,this._state++}touch(t,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Jt.First&&n!==Jt.Last)){if(n===Jt.First){if(t===this._head)return;let i=t.next,o=t.previous;t===this._tail?(o.next=void 0,this._tail=o):(i.previous=o,o.next=i),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(n===Jt.Last){if(t===this._tail)return;let i=t.next,o=t.previous;t===this._head?(i.previous=void 0,this._head=i):(i.previous=o,o.next=i),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){let t=[];return this.forEach((n,i)=>{t.push([i,n])}),t}fromJSON(t){this.clear();for(let[n,i]of t)this.set(n,i)}};ti.LinkedMap=pc;var Ef=class extends pc{constructor(t,n=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get ratio(){return this._ratio}set ratio(t){this._ratio=Math.min(Math.max(0,t),1),this.checkTrim()}get(t,n=Jt.AsNew){return super.get(t,n)}peek(t){return super.get(t,Jt.None)}set(t,n){return super.set(t,n,Jt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ti.LRUCache=Ef});var v_=F(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});mc.Disposable=void 0;var __;(function(e){function t(n){return{dispose:n}}e.create=t})(__||(mc.Disposable=__={}))});var ni=F(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Ff;function Af(){if(Ff===void 0)throw new Error("No runtime abstraction layer installed");return Ff}(function(e){function t(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ff=n}e.install=t})(Af||(Af={}));Mf.default=Af});var ao=F(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.Emitter=so.Event=void 0;var vN=ni(),y_;(function(e){let t={dispose(){}};e.None=function(){return t}})(y_||(so.Event=y_={}));var Nf=class{add(t,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(t,n)})}remove(t,n=null){if(!this._callbacks)return;let i=!1;for(let o=0,c=this._callbacks.length;o{this._callbacks||(this._callbacks=new Nf),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,n);let o={dispose:()=>{this._callbacks&&(this._callbacks.remove(t,n),o.dispose=e._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(o),o}),this._event}fire(t){this._callbacks&&this._callbacks.invoke.call(this._callbacks,t)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};so.Emitter=bc;bc._noop=function(){}});var yc=F(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.CancellationTokenSource=co.CancellationToken=void 0;var yN=ni(),xN=oo(),qf=ao(),_c;(function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:qf.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:qf.Event.None});function t(n){let i=n;return i&&(i===e.None||i===e.Cancelled||xN.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}e.is=t})(_c||(co.CancellationToken=_c={}));var wN=Object.freeze(function(e,t){let n=(0,yN.default)().timer.setTimeout(e.bind(t),0);return{dispose(){n.dispose()}}}),vc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?wN:(this._emitter||(this._emitter=new qf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Lf=class{get token(){return this._token||(this._token=new vc),this._token}cancel(){this._token?this._token.cancel():this._token=_c.Cancelled}dispose(){this._token?this._token instanceof vc&&this._token.dispose():this._token=_c.None}};co.CancellationTokenSource=Lf});var x_=F(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.SharedArrayReceiverStrategy=uo.SharedArraySenderStrategy=void 0;var PN=yc(),ys;(function(e){e.Continue=0,e.Cancelled=1})(ys||(ys={}));var Of=class{constructor(){this.buffers=new Map}enableCancellation(t){if(t.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=ys.Continue,this.buffers.set(t.id,n),t.$cancellationData=n}async sendCancellation(t,n){let i=this.buffers.get(n);if(i===void 0)return;let o=new Int32Array(i,0,1);Atomics.store(o,0,ys.Cancelled)}cleanup(t){this.buffers.delete(t)}dispose(){this.buffers.clear()}};uo.SharedArraySenderStrategy=Of;var Bf=class{constructor(t){this.data=new Int32Array(t,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===ys.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Uf=class{constructor(t){this.token=new Bf(t)}cancel(){}dispose(){}},$f=class{constructor(){this.kind="request"}createCancellationTokenSource(t){let n=t.$cancellationData;return n===void 0?new PN.CancellationTokenSource:new Uf(n)}};uo.SharedArrayReceiverStrategy=$f});var jf=F(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.Semaphore=void 0;var SN=ni(),Wf=class{constructor(t=1){if(t<=0)throw new Error("Capacity must be greater than 0");this._capacity=t,this._active=0,this._waiting=[]}lock(t){return new Promise((n,i)=>{this._waiting.push({thunk:t,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,SN.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let t=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=t.thunk();n instanceof Promise?n.then(i=>{this._active--,t.resolve(i),this.runNext()},i=>{this._active--,t.reject(i),this.runNext()}):(this._active--,t.resolve(n),this.runNext())}catch(n){this._active--,t.reject(n),this.runNext()}}};xc.Semaphore=Wf});var P_=F(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});ri.ReadableStreamMessageReader=ri.AbstractMessageReader=ri.MessageReader=void 0;var Hf=ni(),lo=oo(),zf=ao(),CN=jf(),w_;(function(e){function t(n){let i=n;return i&&lo.func(i.listen)&&lo.func(i.dispose)&&lo.func(i.onError)&&lo.func(i.onClose)&&lo.func(i.onPartialMessage)}e.is=t})(w_||(ri.MessageReader=w_={}));var wc=class{constructor(){this.errorEmitter=new zf.Emitter,this.closeEmitter=new zf.Emitter,this.partialMessageEmitter=new zf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t){this.errorEmitter.fire(this.asError(t))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(t){this.partialMessageEmitter.fire(t)}asError(t){return t instanceof Error?t:new Error(`Reader received error. Reason: ${lo.string(t.message)?t.message:"unknown"}`)}};ri.AbstractMessageReader=wc;var Vf;(function(e){function t(n){let i,o,c,u=new Map,f,g=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let b of n.contentDecoders)u.set(b.name,b);if(n.contentTypeDecoder!==void 0&&(f=n.contentTypeDecoder,g.set(f.name,f)),n.contentTypeDecoders!==void 0)for(let b of n.contentTypeDecoders)g.set(b.name,b)}return f===void 0&&(f=(0,Hf.default)().applicationJson.decoder,g.set(f.name,f)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:f,contentTypeDecoders:g}}e.fromOptions=t})(Vf||(Vf={}));var Gf=class extends wc{constructor(t,n){super(),this.readable=t,this.options=Vf.fromOptions(n),this.buffer=(0,Hf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new CN.Semaphore(1)}set partialMessageTimeout(t){this._partialMessageTimeout=t}get partialMessageTimeout(){return this._partialMessageTimeout}listen(t){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=t;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(t){try{for(this.buffer.append(t);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let o=i.get("content-length");if(!o){this.fireError(new Error(`Header must provide a Content-Length property. +${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(o);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${o}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,o=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(o)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,Hf.default)().timer.setTimeout((t,n)=>{this.partialMessageTimer=void 0,t===this.messageToken&&(this.firePartialMessage({messageToken:t,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};ri.ReadableStreamMessageReader=Gf});var T_=F(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.WriteableStreamMessageWriter=ii.AbstractMessageWriter=ii.MessageWriter=void 0;var S_=ni(),xs=oo(),kN=jf(),C_=ao(),RN="Content-Length: ",k_=`\r +`,R_;(function(e){function t(n){let i=n;return i&&xs.func(i.dispose)&&xs.func(i.onClose)&&xs.func(i.onError)&&xs.func(i.write)}e.is=t})(R_||(ii.MessageWriter=R_={}));var Pc=class{constructor(){this.errorEmitter=new C_.Emitter,this.closeEmitter=new C_.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t,n,i){this.errorEmitter.fire([this.asError(t),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(t){return t instanceof Error?t:new Error(`Writer received error. Reason: ${xs.string(t.message)?t.message:"unknown"}`)}};ii.AbstractMessageWriter=Pc;var Qf;(function(e){function t(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,S_.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,S_.default)().applicationJson.encoder}}e.fromOptions=t})(Qf||(Qf={}));var Jf=class extends Pc{constructor(t,n){super(),this.writable=t,this.options=Qf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new kN.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(t){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(t,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let o=[];return o.push(RN,i.byteLength.toString(),k_),o.push(k_),this.doWrite(t,o,i)},i=>{throw this.fireError(i),i}))}async doWrite(t,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(o){return this.handleError(o,t),Promise.reject(o)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){this.writable.end()}};ii.WriteableStreamMessageWriter=Jf});var D_=F(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});Sc.AbstractMessageBuffer=void 0;var TN=13,DN=10,EN=`\r +`,Xf=class{constructor(t="utf-8"){this._encoding=t,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(t){let n=typeof t=="string"?this.fromString(t,this._encoding):t;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(t=!1){if(this._chunks.length===0)return;let n=0,i=0,o=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===t){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=t,this.asNative(c)}if(this._chunks[0].byteLength>t){let c=this._chunks[0],u=this.asNative(c,t);return this._chunks[0]=c.slice(t),this._totalLength-=t,u}let n=this.allocNative(t),i=0,o=0;for(;t>0;){let c=this._chunks[o];if(c.byteLength>t){let u=c.slice(0,t);n.set(u,i),i+=t,this._chunks[o]=c.slice(t),this._totalLength-=t,t-=t}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,t-=c.byteLength}return n}};Sc.AbstractMessageBuffer=Xf});var M_=F(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.createMessageConnection=Pe.ConnectionOptions=Pe.MessageStrategy=Pe.CancellationStrategy=Pe.CancellationSenderStrategy=Pe.CancellationReceiverStrategy=Pe.RequestCancellationReceiverStrategy=Pe.IdCancellationReceiverStrategy=Pe.ConnectionStrategy=Pe.ConnectionError=Pe.ConnectionErrors=Pe.LogTraceNotification=Pe.SetTraceNotification=Pe.TraceFormat=Pe.TraceValues=Pe.Trace=Pe.NullLogger=Pe.ProgressType=Pe.ProgressToken=void 0;var E_=ni(),vt=oo(),he=Df(),I_=If(),ws=ao(),Kf=yc(),Cs;(function(e){e.type=new he.NotificationType("$/cancelRequest")})(Cs||(Cs={}));var Yf;(function(e){function t(n){return typeof n=="string"||typeof n=="number"}e.is=t})(Yf||(Pe.ProgressToken=Yf={}));var Ps;(function(e){e.type=new he.NotificationType("$/progress")})(Ps||(Ps={}));var Zf=class{constructor(){}};Pe.ProgressType=Zf;var eh;(function(e){function t(n){return vt.func(n)}e.is=t})(eh||(eh={}));Pe.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var Ve;(function(e){e[e.Off=0]="Off",e[e.Messages=1]="Messages",e[e.Compact=2]="Compact",e[e.Verbose=3]="Verbose"})(Ve||(Pe.Trace=Ve={}));var F_;(function(e){e.Off="off",e.Messages="messages",e.Compact="compact",e.Verbose="verbose"})(F_||(Pe.TraceValues=F_={}));(function(e){function t(i){if(!vt.string(i))return e.Off;switch(i=i.toLowerCase(),i){case"off":return e.Off;case"messages":return e.Messages;case"compact":return e.Compact;case"verbose":return e.Verbose;default:return e.Off}}e.fromString=t;function n(i){switch(i){case e.Off:return"off";case e.Messages:return"messages";case e.Compact:return"compact";case e.Verbose:return"verbose";default:return"off"}}e.toString=n})(Ve||(Pe.Trace=Ve={}));var Rn;(function(e){e.Text="text",e.JSON="json"})(Rn||(Pe.TraceFormat=Rn={}));(function(e){function t(n){return vt.string(n)?(n=n.toLowerCase(),n==="json"?e.JSON:e.Text):e.Text}e.fromString=t})(Rn||(Pe.TraceFormat=Rn={}));var th;(function(e){e.type=new he.NotificationType("$/setTrace")})(th||(Pe.SetTraceNotification=th={}));var Cc;(function(e){e.type=new he.NotificationType("$/logTrace")})(Cc||(Pe.LogTraceNotification=Cc={}));var Ss;(function(e){e[e.Closed=1]="Closed",e[e.Disposed=2]="Disposed",e[e.AlreadyListening=3]="AlreadyListening"})(Ss||(Pe.ConnectionErrors=Ss={}));var fo=class e extends Error{constructor(t,n){super(n),this.code=t,Object.setPrototypeOf(this,e.prototype)}};Pe.ConnectionError=fo;var nh;(function(e){function t(n){let i=n;return i&&vt.func(i.cancelUndispatched)}e.is=t})(nh||(Pe.ConnectionStrategy=nh={}));var kc;(function(e){function t(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&vt.func(i.createCancellationTokenSource)&&(i.dispose===void 0||vt.func(i.dispose))}e.is=t})(kc||(Pe.IdCancellationReceiverStrategy=kc={}));var rh;(function(e){function t(n){let i=n;return i&&i.kind==="request"&&vt.func(i.createCancellationTokenSource)&&(i.dispose===void 0||vt.func(i.dispose))}e.is=t})(rh||(Pe.RequestCancellationReceiverStrategy=rh={}));var Rc;(function(e){e.Message=Object.freeze({createCancellationTokenSource(n){return new Kf.CancellationTokenSource}});function t(n){return kc.is(n)||rh.is(n)}e.is=t})(Rc||(Pe.CancellationReceiverStrategy=Rc={}));var Tc;(function(e){e.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Cs.type,{id:i})},cleanup(n){}});function t(n){let i=n;return i&&vt.func(i.sendCancellation)&&vt.func(i.cleanup)}e.is=t})(Tc||(Pe.CancellationSenderStrategy=Tc={}));var Dc;(function(e){e.Message=Object.freeze({receiver:Rc.Message,sender:Tc.Message});function t(n){let i=n;return i&&Rc.is(i.receiver)&&Tc.is(i.sender)}e.is=t})(Dc||(Pe.CancellationStrategy=Dc={}));var Ec;(function(e){function t(n){let i=n;return i&&vt.func(i.handleMessage)}e.is=t})(Ec||(Pe.MessageStrategy=Ec={}));var A_;(function(e){function t(n){let i=n;return i&&(Dc.is(i.cancellationStrategy)||nh.is(i.connectionStrategy)||Ec.is(i.messageStrategy))}e.is=t})(A_||(Pe.ConnectionOptions=A_={}));var Zn;(function(e){e[e.New=1]="New",e[e.Listening=2]="Listening",e[e.Closed=3]="Closed",e[e.Disposed=4]="Disposed"})(Zn||(Zn={}));function IN(e,t,n,i){let o=n!==void 0?n:Pe.NullLogger,c=0,u=0,f=0,g="2.0",b,x=new Map,k,I=new Map,M=new Map,N,B=new I_.LinkedMap,W=new Map,X=new Set,D=new Map,P=Ve.Off,U=Rn.Text,ne,_e=Zn.New,Ue=new ws.Emitter,Ke=new ws.Emitter,Dt=new ws.Emitter,xe=new ws.Emitter,Y=new ws.Emitter,H=i&&i.cancellationStrategy?i.cancellationStrategy:Dc.Message;function ae(S){if(S===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+S.toString()}function ie(S){return S===null?"res-unknown-"+(++f).toString():"res-"+S.toString()}function ke(){return"not-"+(++u).toString()}function ge(S,V){he.Message.isRequest(V)?S.set(ae(V.id),V):he.Message.isResponse(V)?S.set(ie(V.id),V):S.set(ke(),V)}function pe(S){}function wt(){return _e===Zn.Listening}function je(){return _e===Zn.Closed}function ze(){return _e===Zn.Disposed}function bn(){(_e===Zn.New||_e===Zn.Listening)&&(_e=Zn.Closed,Ke.fire(void 0))}function xr(S){Ue.fire([S,void 0,void 0])}function Vn(S){Ue.fire(S)}e.onClose(bn),e.onError(xr),t.onClose(bn),t.onError(Vn);function ur(){N||B.size===0||(N=(0,E_.default)().timer.setImmediate(()=>{N=void 0,lr()}))}function vi(S){he.Message.isRequest(S)?$i(S):he.Message.isNotification(S)?Pr(S):he.Message.isResponse(S)?wr(S):Sr(S)}function lr(){if(B.size===0)return;let S=B.shift();try{let V=i?.messageStrategy;Ec.is(V)?V.handleMessage(S,vi):vi(S)}finally{ur()}}let dr=S=>{try{if(he.Message.isNotification(S)&&S.method===Cs.type.method){let V=S.params.id,ee=ae(V),oe=B.get(ee);if(he.Message.isRequest(oe)){let Be=i?.connectionStrategy,Qe=Be&&Be.cancelUndispatched?Be.cancelUndispatched(oe,pe):void 0;if(Qe&&(Qe.error!==void 0||Qe.result!==void 0)){B.delete(ee),D.delete(V),Qe.id=oe.id,Ut(Qe,S.method,Date.now()),t.write(Qe).catch(()=>o.error("Sending response for canceled message failed."));return}}let $e=D.get(V);if($e!==void 0){$e.cancel(),jr(S);return}else X.add(V)}ge(B,S)}finally{ur()}};function $i(S){if(ze())return;function V(Re,Je,qe){let at={jsonrpc:g,id:S.id};Re instanceof he.ResponseError?at.error=Re.toJson():at.result=Re===void 0?null:Re,Ut(at,Je,qe),t.write(at).catch(()=>o.error("Sending response failed."))}function ee(Re,Je,qe){let at={jsonrpc:g,id:S.id,error:Re.toJson()};Ut(at,Je,qe),t.write(at).catch(()=>o.error("Sending response failed."))}function oe(Re,Je,qe){Re===void 0&&(Re=null);let at={jsonrpc:g,id:S.id,result:Re};Ut(at,Je,qe),t.write(at).catch(()=>o.error("Sending response failed."))}yi(S);let $e=x.get(S.method),Be,Qe;$e&&(Be=$e.type,Qe=$e.handler);let nt=Date.now();if(Qe||b){let Re=S.id??String(Date.now()),Je=kc.is(H.receiver)?H.receiver.createCancellationTokenSource(Re):H.receiver.createCancellationTokenSource(S);S.id!==null&&X.has(S.id)&&Je.cancel(),S.id!==null&&D.set(Re,Je);try{let qe;if(Qe)if(S.params===void 0){if(Be!==void 0&&Be.numberOfParams!==0){ee(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${S.method} defines ${Be.numberOfParams} params but received none.`),S.method,nt);return}qe=Qe(Je.token)}else if(Array.isArray(S.params)){if(Be!==void 0&&Be.parameterStructures===he.ParameterStructures.byName){ee(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by name but received parameters by position`),S.method,nt);return}qe=Qe(...S.params,Je.token)}else{if(Be!==void 0&&Be.parameterStructures===he.ParameterStructures.byPosition){ee(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by position but received parameters by name`),S.method,nt);return}qe=Qe(S.params,Je.token)}else b&&(qe=b(S.method,S.params,Je.token));let at=qe;qe?at.then?at.then(Et=>{D.delete(Re),V(Et,S.method,nt)},Et=>{D.delete(Re),Et instanceof he.ResponseError?ee(Et,S.method,nt):Et&&vt.string(Et.message)?ee(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${Et.message}`),S.method,nt):ee(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,nt)}):(D.delete(Re),V(qe,S.method,nt)):(D.delete(Re),oe(qe,S.method,nt))}catch(qe){D.delete(Re),qe instanceof he.ResponseError?V(qe,S.method,nt):qe&&vt.string(qe.message)?ee(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${qe.message}`),S.method,nt):ee(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,nt)}}else ee(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${S.method}`),S.method,nt)}function wr(S){if(!ze())if(S.id===null)S.error?o.error(`Received response message without id: Error is: +${JSON.stringify(S.error,void 0,4)}`):o.error("Received response message without id. No further error information provided.");else{let V=S.id,ee=W.get(V);if(hr(S,ee),ee!==void 0){W.delete(V);try{if(S.error){let oe=S.error;ee.reject(new he.ResponseError(oe.code,oe.message,oe.data))}else if(S.result!==void 0)ee.resolve(S.result);else throw new Error("Should never happen.")}catch(oe){oe.message?o.error(`Response handler '${ee.method}' failed with message: ${oe.message}`):o.error(`Response handler '${ee.method}' failed unexpectedly.`)}}}}function Pr(S){if(ze())return;let V,ee;if(S.method===Cs.type.method){let oe=S.params.id;X.delete(oe),jr(S);return}else{let oe=I.get(S.method);oe&&(ee=oe.handler,V=oe.type)}if(ee||k)try{if(jr(S),ee)if(S.params===void 0)V!==void 0&&V.numberOfParams!==0&&V.parameterStructures!==he.ParameterStructures.byName&&o.error(`Notification ${S.method} defines ${V.numberOfParams} params but received none.`),ee();else if(Array.isArray(S.params)){let oe=S.params;S.method===Ps.type.method&&oe.length===2&&Yf.is(oe[0])?ee({token:oe[0],value:oe[1]}):(V!==void 0&&(V.parameterStructures===he.ParameterStructures.byName&&o.error(`Notification ${S.method} defines parameters by name but received parameters by position`),V.numberOfParams!==S.params.length&&o.error(`Notification ${S.method} defines ${V.numberOfParams} params but received ${oe.length} arguments`)),ee(...oe))}else V!==void 0&&V.parameterStructures===he.ParameterStructures.byPosition&&o.error(`Notification ${S.method} defines parameters by position but received parameters by name`),ee(S.params);else k&&k(S.method,S.params)}catch(oe){oe.message?o.error(`Notification handler '${S.method}' failed with message: ${oe.message}`):o.error(`Notification handler '${S.method}' failed unexpectedly.`)}else Dt.fire(S)}function Sr(S){if(!S){o.error("Received empty message.");return}o.error(`Received message which is neither a response nor a notification message: +${JSON.stringify(S,null,4)}`);let V=S;if(vt.string(V.id)||vt.number(V.id)){let ee=V.id,oe=W.get(ee);oe&&oe.reject(new Error("The received response has neither a result nor an error property."))}}function bt(S){if(S!=null)switch(P){case Ve.Verbose:return JSON.stringify(S,null,4);case Ve.Compact:return JSON.stringify(S);default:return}}function fr(S){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let V;(P===Ve.Verbose||P===Ve.Compact)&&S.params&&(V=`Params: ${bt(S.params)} -`),te.log(`Sending request '${S.method} - (${S.id})'.`,H)}else Pt("send-request",S)}function Li(S){if(!(x===He.Off||!te))if(O===Cn.Text){let H;(x===He.Verbose||x===He.Compact)&&(S.params?H=`Params: ${gt(S.params)} +`),ne.log(`Sending request '${S.method} - (${S.id})'.`,V)}else Pt("send-request",S)}function Wi(S){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let V;(P===Ve.Verbose||P===Ve.Compact)&&(S.params?V=`Params: ${bt(S.params)} -`:H=`No parameters provided. +`:V=`No parameters provided. -`),te.log(`Sending notification '${S.method}'.`,H)}else Pt("send-notification",S)}function Lt(S,H,Z){if(!(x===He.Off||!te))if(O===Cn.Text){let oe;(x===He.Verbose||x===He.Compact)&&(S.error&&S.error.data?oe=`Error data: ${gt(S.error.data)} +`),ne.log(`Sending notification '${S.method}'.`,V)}else Pt("send-notification",S)}function Ut(S,V,ee){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let oe;(P===Ve.Verbose||P===Ve.Compact)&&(S.error&&S.error.data?oe=`Error data: ${bt(S.error.data)} -`:S.result?oe=`Result: ${gt(S.result)} +`:S.result?oe=`Result: ${bt(S.result)} `:S.error===void 0&&(oe=`No result returned. -`)),te.log(`Sending response '${H} - (${S.id})'. Processing request took ${Date.now()-Z}ms`,oe)}else Pt("send-response",S)}function pi(S){if(!(x===He.Off||!te))if(O===Cn.Text){let H;(x===He.Verbose||x===He.Compact)&&S.params&&(H=`Params: ${gt(S.params)} +`)),ne.log(`Sending response '${V} - (${S.id})'. Processing request took ${Date.now()-ee}ms`,oe)}else Pt("send-response",S)}function yi(S){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let V;(P===Ve.Verbose||P===Ve.Compact)&&S.params&&(V=`Params: ${bt(S.params)} -`),te.log(`Received request '${S.method} - (${S.id})'.`,H)}else Pt("receive-request",S)}function Br(S){if(!(x===He.Off||!te||S.method===Ga.type.method))if(O===Cn.Text){let H;(x===He.Verbose||x===He.Compact)&&(S.params?H=`Params: ${gt(S.params)} +`),ne.log(`Received request '${S.method} - (${S.id})'.`,V)}else Pt("receive-request",S)}function jr(S){if(!(P===Ve.Off||!ne||S.method===Cc.type.method))if(U===Rn.Text){let V;(P===Ve.Verbose||P===Ve.Compact)&&(S.params?V=`Params: ${bt(S.params)} -`:H=`No parameters provided. +`:V=`No parameters provided. -`),te.log(`Received notification '${S.method}'.`,H)}else Pt("receive-notification",S)}function lr(S,H){if(!(x===He.Off||!te))if(O===Cn.Text){let Z;if((x===He.Verbose||x===He.Compact)&&(S.error&&S.error.data?Z=`Error data: ${gt(S.error.data)} +`),ne.log(`Received notification '${S.method}'.`,V)}else Pt("receive-notification",S)}function hr(S,V){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let ee;if((P===Ve.Verbose||P===Ve.Compact)&&(S.error&&S.error.data?ee=`Error data: ${bt(S.error.data)} -`:S.result?Z=`Result: ${gt(S.result)} +`:S.result?ee=`Result: ${bt(S.result)} -`:S.error===void 0&&(Z=`No result returned. +`:S.error===void 0&&(ee=`No result returned. -`)),H){let oe=S.error?` Request failed: ${S.error.message} (${S.error.code}).`:"";te.log(`Received response '${H.method} - (${S.id})' in ${Date.now()-H.timerStart}ms.${oe}`,Z)}else te.log(`Received response ${S.id} without active response promise.`,Z)}else Pt("receive-response",S)}function Pt(S,H){if(!te||x===He.Off)return;let Z={isLSPMessage:!0,type:S,message:H,timestamp:Date.now()};te.log(Z)}function nn(){if(We())throw new so(cs.Closed,"Connection is closed.");if(je())throw new so(cs.Disposed,"Connection is disposed.")}function Pr(){if(wt())throw new so(cs.AlreadyListening,"Connection is already listening")}function Oi(){if(!wt())throw new Error("Call listen() first.")}function $t(S){return S===void 0?null:S}function mi(S){if(S!==null)return S}function Hn(S){return S!=null&&!Array.isArray(S)&&typeof S=="object"}function mn(S,H){switch(S){case he.ParameterStructures.auto:return Hn(H)?mi(H):[$t(H)];case he.ParameterStructures.byName:if(!Hn(H))throw new Error("Received parameters by name but param is not an object literal.");return mi(H);case he.ParameterStructures.byPosition:return[$t(H)];default:throw new Error(`Unknown parameter structure ${S.toString()}`)}}function xr(S,H){let Z,oe=S.numberOfParams;switch(oe){case 0:Z=void 0;break;case 1:Z=mn(S.parameterStructures,H[0]);break;default:Z=[];for(let Ue=0;Ue{nn();let Z,oe;if(mt.string(S)){Z=S;let Le=H[0],Qe=0,et=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Qe=1,et=Le);let Re=H.length,Je=Re-Qe;switch(Je){case 0:oe=void 0;break;case 1:oe=mn(et,H[Qe]);break;default:if(et===he.ParameterStructures.byName)throw new Error(`Received ${Je} parameters for 'by Name' notification parameter structure.`);oe=H.slice(Qe,Re).map(Ae=>$t(Ae));break}}else{let Le=H;Z=S.method,oe=xr(S,Le)}let Ue={jsonrpc:g,method:Z,params:oe};return Li(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(S,H)=>{nn();let Z;return mt.func(S)?T=S:H&&(mt.string(S)?(Z=S,F.set(S,{type:void 0,handler:H})):(Z=S.method,F.set(S.method,{type:S,handler:H}))),{dispose:()=>{Z!==void 0?F.delete(Z):T=void 0}}},onProgress:(S,H,Z)=>{if(E.has(H))throw new Error(`Progress handler for token ${H} already registered`);return E.set(H,Z),{dispose:()=>{E.delete(H)}}},sendProgress:(S,H,Z)=>bn.sendNotification(as.type,{token:H,value:Z}),onUnhandledProgress:we.event,sendRequest:(S,...H)=>{nn(),Oi();let Z,oe,Ue;if(mt.string(S)){Z=S;let Re=H[0],Je=H[H.length-1],Ae=0,it=he.ParameterStructures.auto;he.ParameterStructures.is(Re)&&(Ae=1,it=Re);let Rt=H.length;lf.CancellationToken.is(Je)&&(Rt=Rt-1,Ue=Je);let Xt=Rt-Ae;switch(Xt){case 0:oe=void 0;break;case 1:oe=mn(it,H[Ae]);break;default:if(it===he.ParameterStructures.byName)throw new Error(`Received ${Xt} parameters for 'by Name' request parameter structure.`);oe=H.slice(Ae,Rt).map(Bi=>$t(Bi));break}}else{let Re=H;Z=S.method,oe=xr(S,Re);let Je=S.numberOfParams;Ue=lf.CancellationToken.is(Re[Je])?Re[Je]:void 0}let Le=c++,Qe;Ue&&(Qe=Ue.onCancellationRequested(()=>{let Re=z.sender.sendCancellation(bn,Le);return Re===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):Re.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let et={jsonrpc:g,id:Le,method:Z,params:oe};return ur(et),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(et),new Promise(async(Re,Je)=>{let Ae=Xt=>{Re(Xt),z.sender.cleanup(Le),Qe?.dispose()},it=Xt=>{Je(Xt),z.sender.cleanup(Le),Qe?.dispose()},Rt={method:Z,timerStart:Date.now(),resolve:Ae,reject:it};try{await e.write(et),$.set(Le,Rt)}catch(Xt){throw s.error("Sending request failed."),Rt.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Xt.message?Xt.message:"Unknown reason")),Xt}})},onRequest:(S,H)=>{nn();let Z=null;return hf.is(S)?(Z=void 0,b=S):mt.string(S)?(Z=null,H!==void 0&&(Z=S,y.set(S,{handler:H,type:void 0}))):H!==void 0&&(Z=S.method,y.set(S.method,{type:S,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?y.delete(Z):b=void 0)}}},hasPendingResponse:()=>$.size>0,trace:async(S,H,Z)=>{let oe=!1,Ue=Cn.Text;Z!==void 0&&(mt.boolean(Z)?oe=Z:(oe=Z.sendNotification||!1,Ue=Z.traceFormat||Cn.Text)),x=S,O=Ue,x===He.Off?te=void 0:te=H,oe&&!We()&&!je()&&await bn.sendNotification(gf.type,{value:He.toString(S)})},onError:Be.event,onClose:Ye.event,onUnhandledNotification:kt.event,onDispose:Y.event,end:()=>{e.end()},dispose:()=>{if(je())return;_e=Yn.Disposed,Y.fire(void 0);let S=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of $.values())H.reject(S);$=new Map,D=new Map,X=new Set,B=new vb.LinkedMap,mt.func(e.dispose)&&e.dispose(),mt.func(t.dispose)&&t.dispose()},listen:()=>{nn(),Pr(),_e=Yn.Listening,t.listen(cr)},inspect:()=>{(0,_b.default)().console.log("inspect")}};return bn.onNotification(Ga.type,S=>{if(x===He.Off||!te)return;let H=x===He.Verbose||x===He.Compact;te.log(S.message,H?S.verbose:void 0)}),bn.onNotification(as.type,S=>{let H=E.get(S.token);H?H(S.value):we.fire(S)}),bn}xe.createMessageConnection=mI});var Za=re(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var nt=$d();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return nt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return nt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return nt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return nt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return nt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return nt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return nt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return nt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return nt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return nt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return nt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return nt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return nt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return nt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return nt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return nt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return nt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return nt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return nt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return nt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return nt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return nt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return nt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return nt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return nt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return nt.ParameterStructures}});var bf=jd();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return bf.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return bf.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return bf.Touch}});var bI=ab();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return bI.Disposable}});var xb=no();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return xb.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return xb.Emitter}});var Sb=Wa();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return Sb.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return Sb.CancellationToken}});var Cb=ub();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return Cb.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return Cb.SharedArrayReceiverStrategy}});var _f=db();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return _f.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return _f.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return _f.ReadableStreamMessageReader}});var vf=mb();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return vf.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return vf.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return vf.WriteableStreamMessageWriter}});var _I=bb();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return _I.AbstractMessageBuffer}});var Bt=Pb();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return Bt.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return Bt.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return Bt.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return Bt.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return Bt.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return Bt.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return Bt.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return Bt.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return Bt.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return Bt.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return Bt.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return Bt.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return Bt.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return Bt.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return Bt.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return Bt.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return Bt.MessageStrategy}});var vI=Kr();j.RAL=vI.default});var Tb=re(xf=>{"use strict";Object.defineProperty(xf,"__esModule",{value:!0});var kb=require("util"),Mr=Za(),ec=class t extends Mr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new kb.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};ec.emptyBuffer=Buffer.allocUnsafe(0);var yf=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Mr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Mr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Mr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),Mr.Disposable.create(()=>this.stream.off("data",e))}},wf=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Mr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Mr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Mr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},Rb=Object.freeze({messageBuffer:Object.freeze({create:t=>new ec(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new kb.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new yf(t),asWritableStream:t=>new wf(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function Pf(){return Rb}(function(t){function e(){Mr.RAL.install(Rb)}t.install=e})(Pf||(Pf={}));xf.default=Pf});var Di=re(qe=>{"use strict";var yI=qe&&qe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),wI=qe&&qe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&yI(e,t,n)};Object.defineProperty(qe,"__esModule",{value:!0});qe.createMessageConnection=qe.createServerSocketTransport=qe.createClientSocketTransport=qe.createServerPipeTransport=qe.createClientPipeTransport=qe.generateRandomPipeName=qe.StreamMessageWriter=qe.StreamMessageReader=qe.SocketMessageWriter=qe.SocketMessageReader=qe.PortMessageWriter=qe.PortMessageReader=qe.IPCMessageWriter=qe.IPCMessageReader=void 0;var ao=Tb();ao.default.install();var Db=require("path"),PI=require("os"),xI=require("crypto"),rc=require("net"),kn=Za();wI(Za(),qe);var Sf=class extends kn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),kn.Disposable.create(()=>this.process.off("message",e))}};qe.IPCMessageReader=Sf;var Cf=class extends kn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};qe.IPCMessageWriter=Cf;var kf=class extends kn.AbstractMessageReader{constructor(e){super(),this.onData=new kn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};qe.PortMessageReader=kf;var Rf=class extends kn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};qe.PortMessageWriter=Rf;var Ri=class extends kn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,ao.default)().stream.asReadableStream(e),n)}};qe.SocketMessageReader=Ri;var Ti=class extends kn.WriteableStreamMessageWriter{constructor(e,n){super((0,ao.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};qe.SocketMessageWriter=Ti;var tc=class extends kn.ReadableStreamMessageReader{constructor(e,n){super((0,ao.default)().stream.asReadableStream(e),n)}};qe.StreamMessageReader=tc;var nc=class extends kn.WriteableStreamMessageWriter{constructor(e,n){super((0,ao.default)().stream.asWritableStream(e),n)}};qe.StreamMessageWriter=nc;var Ib=process.env.XDG_RUNTIME_DIR,SI=new Map([["linux",107],["darwin",103]]);function CI(){let t=(0,xI.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;Ib?e=Db.join(Ib,`vscode-ipc-${t}.sock`):e=Db.join(PI.tmpdir(),`vscode-${t}.sock`);let n=SI.get(process.platform);return n!==void 0&&e.length>n&&(0,ao.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}qe.generateRandomPipeName=CI;function kI(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,rc.createServer)(h=>{u.close(),n([new Ri(h,e),new Ti(h,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}qe.createClientPipeTransport=kI;function RI(t,e="utf-8"){let n=(0,rc.createConnection)(t);return[new Ri(n,e),new Ti(n,e)]}qe.createServerPipeTransport=RI;function TI(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,rc.createServer)(h=>{u.close(),n([new Ri(h,e),new Ti(h,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}qe.createClientSocketTransport=TI;function DI(t,e="utf-8"){let n=(0,rc.createConnection)(t,"127.0.0.1");return[new Ri(n,e),new Ti(n,e)]}qe.createServerSocketTransport=DI;function II(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function EI(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function FI(t,e,n,i){n||(n=kn.NullLogger);let s=II(t)?new tc(t):t,c=EI(e)?new nc(e):e;return kn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,kn.createMessageConnection)(s,c,n,i)}qe.createMessageConnection=FI});var Tf=re((RM,Eb)=>{"use strict";Eb.exports=Di()});var oc=re((Fb,ic)=>{"use strict";(function(t){if(typeof ic=="object"&&typeof ic.exports=="object"){var e=t(require,Fb);e!==void 0&&(ic.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function C(R){return typeof R=="string"}p.is=C})(n||(e.DocumentUri=n={}));var i;(function(p){function C(R){return typeof R=="string"}p.is=C})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function C(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=C})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function C(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=C})(c||(e.uinteger=c={}));var u;(function(p){function C(v,f){return v===Number.MAX_VALUE&&(v=c.MAX_VALUE),f===Number.MAX_VALUE&&(f=c.MAX_VALUE),{line:v,character:f}}p.create=C;function R(v){var f=v;return A.objectLiteral(f)&&A.uinteger(f.line)&&A.uinteger(f.character)}p.is=R})(u||(e.Position=u={}));var h;(function(p){function C(v,f,N,G){if(A.uinteger(v)&&A.uinteger(f)&&A.uinteger(N)&&A.uinteger(G))return{start:u.create(v,f),end:u.create(N,G)};if(u.is(v)&&u.is(f))return{start:v,end:f};throw new Error("Range#create called with invalid arguments[".concat(v,", ").concat(f,", ").concat(N,", ").concat(G,"]"))}p.create=C;function R(v){var f=v;return A.objectLiteral(f)&&u.is(f.start)&&u.is(f.end)}p.is=R})(h||(e.Range=h={}));var g;(function(p){function C(v,f){return{uri:v,range:f}}p.create=C;function R(v){var f=v;return A.objectLiteral(f)&&h.is(f.range)&&(A.string(f.uri)||A.undefined(f.uri))}p.is=R})(g||(e.Location=g={}));var b;(function(p){function C(v,f,N,G){return{targetUri:v,targetRange:f,targetSelectionRange:N,originSelectionRange:G}}p.create=C;function R(v){var f=v;return A.objectLiteral(f)&&h.is(f.targetRange)&&A.string(f.targetUri)&&h.is(f.targetSelectionRange)&&(h.is(f.originSelectionRange)||A.undefined(f.originSelectionRange))}p.is=R})(b||(e.LocationLink=b={}));var y;(function(p){function C(v,f,N,G){return{red:v,green:f,blue:N,alpha:G}}p.create=C;function R(v){var f=v;return A.objectLiteral(f)&&A.numberRange(f.red,0,1)&&A.numberRange(f.green,0,1)&&A.numberRange(f.blue,0,1)&&A.numberRange(f.alpha,0,1)}p.is=R})(y||(e.Color=y={}));var T;(function(p){function C(v,f){return{range:v,color:f}}p.create=C;function R(v){var f=v;return A.objectLiteral(f)&&h.is(f.range)&&y.is(f.color)}p.is=R})(T||(e.ColorInformation=T={}));var F;(function(p){function C(v,f,N){return{label:v,textEdit:f,additionalTextEdits:N}}p.create=C;function R(v){var f=v;return A.objectLiteral(f)&&A.string(f.label)&&(A.undefined(f.textEdit)||te.is(f))&&(A.undefined(f.additionalTextEdits)||A.typedArray(f.additionalTextEdits,te.is))}p.is=R})(F||(e.ColorPresentation=F={}));var E;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(E||(e.FoldingRangeKind=E={}));var L;(function(p){function C(v,f,N,G,be,lt){var Ke={startLine:v,endLine:f};return A.defined(N)&&(Ke.startCharacter=N),A.defined(G)&&(Ke.endCharacter=G),A.defined(be)&&(Ke.kind=be),A.defined(lt)&&(Ke.collapsedText=lt),Ke}p.create=C;function R(v){var f=v;return A.objectLiteral(f)&&A.uinteger(f.startLine)&&A.uinteger(f.startLine)&&(A.undefined(f.startCharacter)||A.uinteger(f.startCharacter))&&(A.undefined(f.endCharacter)||A.uinteger(f.endCharacter))&&(A.undefined(f.kind)||A.string(f.kind))}p.is=R})(L||(e.FoldingRange=L={}));var B;(function(p){function C(v,f){return{location:v,message:f}}p.create=C;function R(v){var f=v;return A.defined(f)&&g.is(f.location)&&A.string(f.message)}p.is=R})(B||(e.DiagnosticRelatedInformation=B={}));var $;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})($||(e.DiagnosticSeverity=$={}));var X;(function(p){p.Unnecessary=1,p.Deprecated=2})(X||(e.DiagnosticTag=X={}));var D;(function(p){function C(R){var v=R;return A.objectLiteral(v)&&A.string(v.href)}p.is=C})(D||(e.CodeDescription=D={}));var x;(function(p){function C(v,f,N,G,be,lt){var Ke={range:v,message:f};return A.defined(N)&&(Ke.severity=N),A.defined(G)&&(Ke.code=G),A.defined(be)&&(Ke.source=be),A.defined(lt)&&(Ke.relatedInformation=lt),Ke}p.create=C;function R(v){var f,N=v;return A.defined(N)&&h.is(N.range)&&A.string(N.message)&&(A.number(N.severity)||A.undefined(N.severity))&&(A.integer(N.code)||A.string(N.code)||A.undefined(N.code))&&(A.undefined(N.codeDescription)||A.string((f=N.codeDescription)===null||f===void 0?void 0:f.href))&&(A.string(N.source)||A.undefined(N.source))&&(A.undefined(N.relatedInformation)||A.typedArray(N.relatedInformation,B.is))}p.is=R})(x||(e.Diagnostic=x={}));var O;(function(p){function C(v,f){for(var N=[],G=2;G0&&(be.arguments=N),be}p.create=C;function R(v){var f=v;return A.defined(f)&&A.string(f.title)&&A.string(f.command)}p.is=R})(O||(e.Command=O={}));var te;(function(p){function C(N,G){return{range:N,newText:G}}p.replace=C;function R(N,G){return{range:{start:N,end:N},newText:G}}p.insert=R;function v(N){return{range:N,newText:""}}p.del=v;function f(N){var G=N;return A.objectLiteral(G)&&A.string(G.newText)&&h.is(G.range)}p.is=f})(te||(e.TextEdit=te={}));var _e;(function(p){function C(v,f,N){var G={label:v};return f!==void 0&&(G.needsConfirmation=f),N!==void 0&&(G.description=N),G}p.create=C;function R(v){var f=v;return A.objectLiteral(f)&&A.string(f.label)&&(A.boolean(f.needsConfirmation)||f.needsConfirmation===void 0)&&(A.string(f.description)||f.description===void 0)}p.is=R})(_e||(e.ChangeAnnotation=_e={}));var Be;(function(p){function C(R){var v=R;return A.string(v)}p.is=C})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Ye;(function(p){function C(N,G,be){return{range:N,newText:G,annotationId:be}}p.replace=C;function R(N,G,be){return{range:{start:N,end:N},newText:G,annotationId:be}}p.insert=R;function v(N,G){return{range:N,newText:"",annotationId:G}}p.del=v;function f(N){var G=N;return te.is(G)&&(_e.is(G.annotationId)||Be.is(G.annotationId))}p.is=f})(Ye||(e.AnnotatedTextEdit=Ye={}));var kt;(function(p){function C(v,f){return{textDocument:v,edits:f}}p.create=C;function R(v){var f=v;return A.defined(f)&&We.is(f.textDocument)&&Array.isArray(f.edits)}p.is=R})(kt||(e.TextDocumentEdit=kt={}));var we;(function(p){function C(v,f,N){var G={kind:"create",uri:v};return f!==void 0&&(f.overwrite!==void 0||f.ignoreIfExists!==void 0)&&(G.options=f),N!==void 0&&(G.annotationId=N),G}p.create=C;function R(v){var f=v;return f&&f.kind==="create"&&A.string(f.uri)&&(f.options===void 0||(f.options.overwrite===void 0||A.boolean(f.options.overwrite))&&(f.options.ignoreIfExists===void 0||A.boolean(f.options.ignoreIfExists)))&&(f.annotationId===void 0||Be.is(f.annotationId))}p.is=R})(we||(e.CreateFile=we={}));var Y;(function(p){function C(v,f,N,G){var be={kind:"rename",oldUri:v,newUri:f};return N!==void 0&&(N.overwrite!==void 0||N.ignoreIfExists!==void 0)&&(be.options=N),G!==void 0&&(be.annotationId=G),be}p.create=C;function R(v){var f=v;return f&&f.kind==="rename"&&A.string(f.oldUri)&&A.string(f.newUri)&&(f.options===void 0||(f.options.overwrite===void 0||A.boolean(f.options.overwrite))&&(f.options.ignoreIfExists===void 0||A.boolean(f.options.ignoreIfExists)))&&(f.annotationId===void 0||Be.is(f.annotationId))}p.is=R})(Y||(e.RenameFile=Y={}));var z;(function(p){function C(v,f,N){var G={kind:"delete",uri:v};return f!==void 0&&(f.recursive!==void 0||f.ignoreIfNotExists!==void 0)&&(G.options=f),N!==void 0&&(G.annotationId=N),G}p.create=C;function R(v){var f=v;return f&&f.kind==="delete"&&A.string(f.uri)&&(f.options===void 0||(f.options.recursive===void 0||A.boolean(f.options.recursive))&&(f.options.ignoreIfNotExists===void 0||A.boolean(f.options.ignoreIfNotExists)))&&(f.annotationId===void 0||Be.is(f.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var ae;(function(p){function C(R){var v=R;return v&&(v.changes!==void 0||v.documentChanges!==void 0)&&(v.documentChanges===void 0||v.documentChanges.every(function(f){return A.string(f.kind)?we.is(f)||Y.is(f)||z.is(f):kt.is(f)}))}p.is=C})(ae||(e.WorkspaceEdit=ae={}));var ie=function(){function p(C,R){this.edits=C,this.changeAnnotations=R}return p.prototype.insert=function(C,R,v){var f,N;if(v===void 0?f=te.insert(C,R):Be.is(v)?(N=v,f=Ye.insert(C,R,v)):(this.assertChangeAnnotations(this.changeAnnotations),N=this.changeAnnotations.manage(v),f=Ye.insert(C,R,N)),this.edits.push(f),N!==void 0)return N},p.prototype.replace=function(C,R,v){var f,N;if(v===void 0?f=te.replace(C,R):Be.is(v)?(N=v,f=Ye.replace(C,R,v)):(this.assertChangeAnnotations(this.changeAnnotations),N=this.changeAnnotations.manage(v),f=Ye.replace(C,R,N)),this.edits.push(f),N!==void 0)return N},p.prototype.delete=function(C,R){var v,f;if(R===void 0?v=te.del(C):Be.is(R)?(f=R,v=Ye.del(C,R)):(this.assertChangeAnnotations(this.changeAnnotations),f=this.changeAnnotations.manage(R),v=Ye.del(C,f)),this.edits.push(v),f!==void 0)return f},p.prototype.add=function(C){this.edits.push(C)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(C){if(C===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),ke=function(){function p(C){this._annotations=C===void 0?Object.create(null):C,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(C,R){var v;if(Be.is(C)?v=C:(v=this.nextId(),R=C),this._annotations[v]!==void 0)throw new Error("Id ".concat(v," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(v));return this._annotations[v]=R,this._size++,v},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(C){var R=this;this._textEditChanges=Object.create(null),C!==void 0?(this._workspaceEdit=C,C.documentChanges?(this._changeAnnotations=new ke(C.changeAnnotations),C.changeAnnotations=this._changeAnnotations.all(),C.documentChanges.forEach(function(v){if(kt.is(v)){var f=new ie(v.edits,R._changeAnnotations);R._textEditChanges[v.textDocument.uri]=f}})):C.changes&&Object.keys(C.changes).forEach(function(v){var f=new ie(C.changes[v]);R._textEditChanges[v]=f})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(C){if(We.is(C)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:C.uri,version:C.version},v=this._textEditChanges[R.uri];if(!v){var f=[],N={textDocument:R,edits:f};this._workspaceEdit.documentChanges.push(N),v=new ie(f,this._changeAnnotations),this._textEditChanges[R.uri]=v}return v}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var v=this._textEditChanges[C];if(!v){var f=[];this._workspaceEdit.changes[C]=f,v=new ie(f),this._textEditChanges[C]=v}return v}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ke,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(C,R,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var f;_e.is(R)||Be.is(R)?f=R:v=R;var N,G;if(f===void 0?N=we.create(C,v):(G=Be.is(f)?f:this._changeAnnotations.manage(f),N=we.create(C,v,G)),this._workspaceEdit.documentChanges.push(N),G!==void 0)return G},p.prototype.renameFile=function(C,R,v,f){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var N;_e.is(v)||Be.is(v)?N=v:f=v;var G,be;if(N===void 0?G=Y.create(C,R,f):(be=Be.is(N)?N:this._changeAnnotations.manage(N),G=Y.create(C,R,f,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(C,R,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var f;_e.is(R)||Be.is(R)?f=R:v=R;var N,G;if(f===void 0?N=z.create(C,v):(G=Be.is(f)?f:this._changeAnnotations.manage(f),N=z.create(C,v,G)),this._workspaceEdit.documentChanges.push(N),G!==void 0)return G},p}();e.WorkspaceChange=ge;var pe;(function(p){function C(v){return{uri:v}}p.create=C;function R(v){var f=v;return A.defined(f)&&A.string(f.uri)}p.is=R})(pe||(e.TextDocumentIdentifier=pe={}));var wt;(function(p){function C(v,f){return{uri:v,version:f}}p.create=C;function R(v){var f=v;return A.defined(f)&&A.string(f.uri)&&A.integer(f.version)}p.is=R})(wt||(e.VersionedTextDocumentIdentifier=wt={}));var We;(function(p){function C(v,f){return{uri:v,version:f}}p.create=C;function R(v){var f=v;return A.defined(f)&&A.string(f.uri)&&(f.version===null||A.integer(f.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function C(v,f,N,G){return{uri:v,languageId:f,version:N,text:G}}p.create=C;function R(v){var f=v;return A.defined(f)&&A.string(f.uri)&&A.string(f.languageId)&&A.integer(f.version)&&A.string(f.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var pn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function C(R){var v=R;return v===p.PlainText||v===p.Markdown}p.is=C})(pn||(e.MarkupKind=pn={}));var _r;(function(p){function C(R){var v=R;return A.objectLiteral(R)&&pn.is(v.kind)&&A.string(v.value)}p.is=C})(_r||(e.MarkupContent=_r={}));var zn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(zn||(e.CompletionItemKind=zn={}));var sr;(function(p){p.PlainText=1,p.Snippet=2})(sr||(e.InsertTextFormat=sr={}));var gi;(function(p){p.Deprecated=1})(gi||(e.CompletionItemTag=gi={}));var ar;(function(p){function C(v,f,N){return{newText:v,insert:f,replace:N}}p.create=C;function R(v){var f=v;return f&&A.string(f.newText)&&h.is(f.insert)&&h.is(f.replace)}p.is=R})(ar||(e.InsertReplaceEdit=ar={}));var cr;(function(p){p.asIs=1,p.adjustIndentation=2})(cr||(e.InsertTextMode=cr={}));var qi;(function(p){function C(R){var v=R;return v&&(A.string(v.detail)||v.detail===void 0)&&(A.string(v.description)||v.description===void 0)}p.is=C})(qi||(e.CompletionItemLabelDetails=qi={}));var vr;(function(p){function C(R){return{label:R}}p.create=C})(vr||(e.CompletionItem=vr={}));var yr;(function(p){function C(R,v){return{items:R||[],isIncomplete:!!v}}p.create=C})(yr||(e.CompletionList=yr={}));var wr;(function(p){function C(v){return v.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=C;function R(v){var f=v;return A.string(f)||A.objectLiteral(f)&&A.string(f.language)&&A.string(f.value)}p.is=R})(wr||(e.MarkedString=wr={}));var gt;(function(p){function C(R){var v=R;return!!v&&A.objectLiteral(v)&&(_r.is(v.contents)||wr.is(v.contents)||A.typedArray(v.contents,wr.is))&&(R.range===void 0||h.is(R.range))}p.is=C})(gt||(e.Hover=gt={}));var ur;(function(p){function C(R,v){return v?{label:R,documentation:v}:{label:R}}p.create=C})(ur||(e.ParameterInformation=ur={}));var Li;(function(p){function C(R,v){for(var f=[],N=2;N{sn();let ee,oe;if(vt.string(S)){ee=S;let Be=V[0],Qe=0,nt=he.ParameterStructures.auto;he.ParameterStructures.is(Be)&&(Qe=1,nt=Be);let Re=V.length,Je=Re-Qe;switch(Je){case 0:oe=void 0;break;case 1:oe=_n(nt,V[Qe]);break;default:if(nt===he.ParameterStructures.byName)throw new Error(`Received ${Je} parameters for 'by Name' notification parameter structure.`);oe=V.slice(Qe,Re).map(qe=>Ht(qe));break}}else{let Be=V;ee=S.method,oe=kr(S,Be)}let $e={jsonrpc:g,method:ee,params:oe};return Wi($e),t.write($e).catch(Be=>{throw o.error("Sending notification failed."),Be})},onNotification:(S,V)=>{sn();let ee;return vt.func(S)?k=S:V&&(vt.string(S)?(ee=S,I.set(S,{type:void 0,handler:V})):(ee=S.method,I.set(S.method,{type:S,handler:V}))),{dispose:()=>{ee!==void 0?I.delete(ee):k=void 0}}},onProgress:(S,V,ee)=>{if(M.has(V))throw new Error(`Progress handler for token ${V} already registered`);return M.set(V,ee),{dispose:()=>{M.delete(V)}}},sendProgress:(S,V,ee)=>vn.sendNotification(Ps.type,{token:V,value:ee}),onUnhandledProgress:xe.event,sendRequest:(S,...V)=>{sn(),ji();let ee,oe,$e;if(vt.string(S)){ee=S;let Re=V[0],Je=V[V.length-1],qe=0,at=he.ParameterStructures.auto;he.ParameterStructures.is(Re)&&(qe=1,at=Re);let Et=V.length;Kf.CancellationToken.is(Je)&&(Et=Et-1,$e=Je);let Zt=Et-qe;switch(Zt){case 0:oe=void 0;break;case 1:oe=_n(at,V[qe]);break;default:if(at===he.ParameterStructures.byName)throw new Error(`Received ${Zt} parameters for 'by Name' request parameter structure.`);oe=V.slice(qe,Et).map(zi=>Ht(zi));break}}else{let Re=V;ee=S.method,oe=kr(S,Re);let Je=S.numberOfParams;$e=Kf.CancellationToken.is(Re[Je])?Re[Je]:void 0}let Be=c++,Qe;$e&&(Qe=$e.onCancellationRequested(()=>{let Re=H.sender.sendCancellation(vn,Be);return Re===void 0?(o.log(`Received no promise from cancellation strategy when cancelling id ${Be}`),Promise.resolve()):Re.catch(()=>{o.log(`Sending cancellation messages for id ${Be} failed`)})}));let nt={jsonrpc:g,id:Be,method:ee,params:oe};return fr(nt),typeof H.sender.enableCancellation=="function"&&H.sender.enableCancellation(nt),new Promise(async(Re,Je)=>{let qe=Zt=>{Re(Zt),H.sender.cleanup(Be),Qe?.dispose()},at=Zt=>{Je(Zt),H.sender.cleanup(Be),Qe?.dispose()},Et={method:ee,timerStart:Date.now(),resolve:qe,reject:at};try{await t.write(nt),W.set(Be,Et)}catch(Zt){throw o.error("Sending request failed."),Et.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Zt.message?Zt.message:"Unknown reason")),Zt}})},onRequest:(S,V)=>{sn();let ee=null;return eh.is(S)?(ee=void 0,b=S):vt.string(S)?(ee=null,V!==void 0&&(ee=S,x.set(S,{handler:V,type:void 0}))):V!==void 0&&(ee=S.method,x.set(S.method,{type:S,handler:V})),{dispose:()=>{ee!==null&&(ee!==void 0?x.delete(ee):b=void 0)}}},hasPendingResponse:()=>W.size>0,trace:async(S,V,ee)=>{let oe=!1,$e=Rn.Text;ee!==void 0&&(vt.boolean(ee)?oe=ee:(oe=ee.sendNotification||!1,$e=ee.traceFormat||Rn.Text)),P=S,U=$e,P===Ve.Off?ne=void 0:ne=V,oe&&!je()&&!ze()&&await vn.sendNotification(th.type,{value:Ve.toString(S)})},onError:Ue.event,onClose:Ke.event,onUnhandledNotification:Dt.event,onDispose:Y.event,end:()=>{t.end()},dispose:()=>{if(ze())return;_e=Zn.Disposed,Y.fire(void 0);let S=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let V of W.values())V.reject(S);W=new Map,D=new Map,X=new Set,B=new I_.LinkedMap,vt.func(t.dispose)&&t.dispose(),vt.func(e.dispose)&&e.dispose()},listen:()=>{sn(),Cr(),_e=Zn.Listening,e.listen(dr)},inspect:()=>{(0,E_.default)().console.log("inspect")}};return vn.onNotification(Cc.type,S=>{if(P===Ve.Off||!ne)return;let V=P===Ve.Verbose||P===Ve.Compact;ne.log(S.message,V?S.verbose:void 0)}),vn.onNotification(Ps.type,S=>{let V=M.get(S.token);V?V(S.value):xe.fire(S)}),vn}Pe.createMessageConnection=IN});var Ic=F(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.ProgressType=z.ProgressToken=z.createMessageConnection=z.NullLogger=z.ConnectionOptions=z.ConnectionStrategy=z.AbstractMessageBuffer=z.WriteableStreamMessageWriter=z.AbstractMessageWriter=z.MessageWriter=z.ReadableStreamMessageReader=z.AbstractMessageReader=z.MessageReader=z.SharedArrayReceiverStrategy=z.SharedArraySenderStrategy=z.CancellationToken=z.CancellationTokenSource=z.Emitter=z.Event=z.Disposable=z.LRUCache=z.Touch=z.LinkedMap=z.ParameterStructures=z.NotificationType9=z.NotificationType8=z.NotificationType7=z.NotificationType6=z.NotificationType5=z.NotificationType4=z.NotificationType3=z.NotificationType2=z.NotificationType1=z.NotificationType0=z.NotificationType=z.ErrorCodes=z.ResponseError=z.RequestType9=z.RequestType8=z.RequestType7=z.RequestType6=z.RequestType5=z.RequestType4=z.RequestType3=z.RequestType2=z.RequestType1=z.RequestType0=z.RequestType=z.Message=z.RAL=void 0;z.MessageStrategy=z.CancellationStrategy=z.CancellationSenderStrategy=z.CancellationReceiverStrategy=z.ConnectionError=z.ConnectionErrors=z.LogTraceNotification=z.SetTraceNotification=z.TraceFormat=z.TraceValues=z.Trace=void 0;var it=Df();Object.defineProperty(z,"Message",{enumerable:!0,get:function(){return it.Message}});Object.defineProperty(z,"RequestType",{enumerable:!0,get:function(){return it.RequestType}});Object.defineProperty(z,"RequestType0",{enumerable:!0,get:function(){return it.RequestType0}});Object.defineProperty(z,"RequestType1",{enumerable:!0,get:function(){return it.RequestType1}});Object.defineProperty(z,"RequestType2",{enumerable:!0,get:function(){return it.RequestType2}});Object.defineProperty(z,"RequestType3",{enumerable:!0,get:function(){return it.RequestType3}});Object.defineProperty(z,"RequestType4",{enumerable:!0,get:function(){return it.RequestType4}});Object.defineProperty(z,"RequestType5",{enumerable:!0,get:function(){return it.RequestType5}});Object.defineProperty(z,"RequestType6",{enumerable:!0,get:function(){return it.RequestType6}});Object.defineProperty(z,"RequestType7",{enumerable:!0,get:function(){return it.RequestType7}});Object.defineProperty(z,"RequestType8",{enumerable:!0,get:function(){return it.RequestType8}});Object.defineProperty(z,"RequestType9",{enumerable:!0,get:function(){return it.RequestType9}});Object.defineProperty(z,"ResponseError",{enumerable:!0,get:function(){return it.ResponseError}});Object.defineProperty(z,"ErrorCodes",{enumerable:!0,get:function(){return it.ErrorCodes}});Object.defineProperty(z,"NotificationType",{enumerable:!0,get:function(){return it.NotificationType}});Object.defineProperty(z,"NotificationType0",{enumerable:!0,get:function(){return it.NotificationType0}});Object.defineProperty(z,"NotificationType1",{enumerable:!0,get:function(){return it.NotificationType1}});Object.defineProperty(z,"NotificationType2",{enumerable:!0,get:function(){return it.NotificationType2}});Object.defineProperty(z,"NotificationType3",{enumerable:!0,get:function(){return it.NotificationType3}});Object.defineProperty(z,"NotificationType4",{enumerable:!0,get:function(){return it.NotificationType4}});Object.defineProperty(z,"NotificationType5",{enumerable:!0,get:function(){return it.NotificationType5}});Object.defineProperty(z,"NotificationType6",{enumerable:!0,get:function(){return it.NotificationType6}});Object.defineProperty(z,"NotificationType7",{enumerable:!0,get:function(){return it.NotificationType7}});Object.defineProperty(z,"NotificationType8",{enumerable:!0,get:function(){return it.NotificationType8}});Object.defineProperty(z,"NotificationType9",{enumerable:!0,get:function(){return it.NotificationType9}});Object.defineProperty(z,"ParameterStructures",{enumerable:!0,get:function(){return it.ParameterStructures}});var ih=If();Object.defineProperty(z,"LinkedMap",{enumerable:!0,get:function(){return ih.LinkedMap}});Object.defineProperty(z,"LRUCache",{enumerable:!0,get:function(){return ih.LRUCache}});Object.defineProperty(z,"Touch",{enumerable:!0,get:function(){return ih.Touch}});var FN=v_();Object.defineProperty(z,"Disposable",{enumerable:!0,get:function(){return FN.Disposable}});var N_=ao();Object.defineProperty(z,"Event",{enumerable:!0,get:function(){return N_.Event}});Object.defineProperty(z,"Emitter",{enumerable:!0,get:function(){return N_.Emitter}});var q_=yc();Object.defineProperty(z,"CancellationTokenSource",{enumerable:!0,get:function(){return q_.CancellationTokenSource}});Object.defineProperty(z,"CancellationToken",{enumerable:!0,get:function(){return q_.CancellationToken}});var L_=x_();Object.defineProperty(z,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return L_.SharedArraySenderStrategy}});Object.defineProperty(z,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return L_.SharedArrayReceiverStrategy}});var oh=P_();Object.defineProperty(z,"MessageReader",{enumerable:!0,get:function(){return oh.MessageReader}});Object.defineProperty(z,"AbstractMessageReader",{enumerable:!0,get:function(){return oh.AbstractMessageReader}});Object.defineProperty(z,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return oh.ReadableStreamMessageReader}});var sh=T_();Object.defineProperty(z,"MessageWriter",{enumerable:!0,get:function(){return sh.MessageWriter}});Object.defineProperty(z,"AbstractMessageWriter",{enumerable:!0,get:function(){return sh.AbstractMessageWriter}});Object.defineProperty(z,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return sh.WriteableStreamMessageWriter}});var AN=D_();Object.defineProperty(z,"AbstractMessageBuffer",{enumerable:!0,get:function(){return AN.AbstractMessageBuffer}});var Wt=M_();Object.defineProperty(z,"ConnectionStrategy",{enumerable:!0,get:function(){return Wt.ConnectionStrategy}});Object.defineProperty(z,"ConnectionOptions",{enumerable:!0,get:function(){return Wt.ConnectionOptions}});Object.defineProperty(z,"NullLogger",{enumerable:!0,get:function(){return Wt.NullLogger}});Object.defineProperty(z,"createMessageConnection",{enumerable:!0,get:function(){return Wt.createMessageConnection}});Object.defineProperty(z,"ProgressToken",{enumerable:!0,get:function(){return Wt.ProgressToken}});Object.defineProperty(z,"ProgressType",{enumerable:!0,get:function(){return Wt.ProgressType}});Object.defineProperty(z,"Trace",{enumerable:!0,get:function(){return Wt.Trace}});Object.defineProperty(z,"TraceValues",{enumerable:!0,get:function(){return Wt.TraceValues}});Object.defineProperty(z,"TraceFormat",{enumerable:!0,get:function(){return Wt.TraceFormat}});Object.defineProperty(z,"SetTraceNotification",{enumerable:!0,get:function(){return Wt.SetTraceNotification}});Object.defineProperty(z,"LogTraceNotification",{enumerable:!0,get:function(){return Wt.LogTraceNotification}});Object.defineProperty(z,"ConnectionErrors",{enumerable:!0,get:function(){return Wt.ConnectionErrors}});Object.defineProperty(z,"ConnectionError",{enumerable:!0,get:function(){return Wt.ConnectionError}});Object.defineProperty(z,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return Wt.CancellationReceiverStrategy}});Object.defineProperty(z,"CancellationSenderStrategy",{enumerable:!0,get:function(){return Wt.CancellationSenderStrategy}});Object.defineProperty(z,"CancellationStrategy",{enumerable:!0,get:function(){return Wt.CancellationStrategy}});Object.defineProperty(z,"MessageStrategy",{enumerable:!0,get:function(){return Wt.MessageStrategy}});var MN=ni();z.RAL=MN.default});var U_=F(lh=>{"use strict";Object.defineProperty(lh,"__esModule",{value:!0});var O_=require("util"),qr=Ic(),Fc=class e extends qr.AbstractMessageBuffer{constructor(t="utf-8"){super(t)}emptyBuffer(){return e.emptyBuffer}fromString(t,n){return Buffer.from(t,n)}toString(t,n){return t instanceof Buffer?t.toString(n):new O_.TextDecoder(n).decode(t)}asNative(t,n){return n===void 0?t instanceof Buffer?t:Buffer.from(t):t instanceof Buffer?t.slice(0,n):Buffer.from(t,0,n)}allocNative(t){return Buffer.allocUnsafe(t)}};Fc.emptyBuffer=Buffer.allocUnsafe(0);var ah=class{constructor(t){this.stream=t}onClose(t){return this.stream.on("close",t),qr.Disposable.create(()=>this.stream.off("close",t))}onError(t){return this.stream.on("error",t),qr.Disposable.create(()=>this.stream.off("error",t))}onEnd(t){return this.stream.on("end",t),qr.Disposable.create(()=>this.stream.off("end",t))}onData(t){return this.stream.on("data",t),qr.Disposable.create(()=>this.stream.off("data",t))}},ch=class{constructor(t){this.stream=t}onClose(t){return this.stream.on("close",t),qr.Disposable.create(()=>this.stream.off("close",t))}onError(t){return this.stream.on("error",t),qr.Disposable.create(()=>this.stream.off("error",t))}onEnd(t){return this.stream.on("end",t),qr.Disposable.create(()=>this.stream.off("end",t))}write(t,n){return new Promise((i,o)=>{let c=u=>{u==null?i():o(u)};typeof t=="string"?this.stream.write(t,n,c):this.stream.write(t,c)})}end(){this.stream.end()}},B_=Object.freeze({messageBuffer:Object.freeze({create:e=>new Fc(e)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(e,t)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(e,void 0,0),t.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(e,t)=>{try{return e instanceof Buffer?Promise.resolve(JSON.parse(e.toString(t.charset))):Promise.resolve(JSON.parse(new O_.TextDecoder(t.charset).decode(e)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:e=>new ah(e),asWritableStream:e=>new ch(e)}),console,timer:Object.freeze({setTimeout(e,t,...n){let i=setTimeout(e,t,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(e,...t){let n=setImmediate(e,...t);return{dispose:()=>clearImmediate(n)}},setInterval(e,t,...n){let i=setInterval(e,t,...n);return{dispose:()=>clearInterval(i)}}})});function uh(){return B_}(function(e){function t(){qr.RAL.install(B_)}e.install=t})(uh||(uh={}));lh.default=uh});var Mi=F(Oe=>{"use strict";var NN=Oe&&Oe.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),qN=Oe&&Oe.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&NN(t,e,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var ho=U_();ho.default.install();var $_=require("path"),LN=require("os"),ON=require("crypto"),Nc=require("net"),Tn=Ic();qN(Ic(),Oe);var dh=class extends Tn.AbstractMessageReader{constructor(t){super(),this.process=t;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(t){return this.process.on("message",t),Tn.Disposable.create(()=>this.process.off("message",t))}};Oe.IPCMessageReader=dh;var fh=class extends Tn.AbstractMessageWriter{constructor(t){super(),this.process=t,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(t){try{return typeof this.process.send=="function"&&this.process.send(t,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,t)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,t),Promise.reject(n)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=fh;var hh=class extends Tn.AbstractMessageReader{constructor(t){super(),this.onData=new Tn.Emitter,t.on("close",()=>this.fireClose),t.on("error",n=>this.fireError(n)),t.on("message",n=>{this.onData.fire(n)})}listen(t){return this.onData.event(t)}};Oe.PortMessageReader=hh;var gh=class extends Tn.AbstractMessageWriter{constructor(t){super(),this.port=t,this.errorCount=0,t.on("close",()=>this.fireClose()),t.on("error",n=>this.fireError(n))}write(t){try{return this.port.postMessage(t),Promise.resolve()}catch(n){return this.handleError(n,t),Promise.reject(n)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){}};Oe.PortMessageWriter=gh;var Fi=class extends Tn.ReadableStreamMessageReader{constructor(t,n="utf-8"){super((0,ho.default)().stream.asReadableStream(t),n)}};Oe.SocketMessageReader=Fi;var Ai=class extends Tn.WriteableStreamMessageWriter{constructor(t,n){super((0,ho.default)().stream.asWritableStream(t),n),this.socket=t}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Ai;var Ac=class extends Tn.ReadableStreamMessageReader{constructor(t,n){super((0,ho.default)().stream.asReadableStream(t),n)}};Oe.StreamMessageReader=Ac;var Mc=class extends Tn.WriteableStreamMessageWriter{constructor(t,n){super((0,ho.default)().stream.asWritableStream(t),n)}};Oe.StreamMessageWriter=Mc;var W_=process.env.XDG_RUNTIME_DIR,BN=new Map([["linux",107],["darwin",103]]);function UN(){let e=(0,ON.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${e}-sock`;let t;W_?t=$_.join(W_,`vscode-ipc-${e}.sock`):t=$_.join(LN.tmpdir(),`vscode-${e}.sock`);let n=BN.get(process.platform);return n!==void 0&&t.length>n&&(0,ho.default)().console.warn(`WARNING: IPC handle "${t}" is longer than ${n} characters.`),t}Oe.generateRandomPipeName=UN;function $N(e,t="utf-8"){let n,i=new Promise((o,c)=>{n=o});return new Promise((o,c)=>{let u=(0,Nc.createServer)(f=>{u.close(),n([new Fi(f,t),new Ai(f,t)])});u.on("error",c),u.listen(e,()=>{u.removeListener("error",c),o({onConnected:()=>i})})})}Oe.createClientPipeTransport=$N;function WN(e,t="utf-8"){let n=(0,Nc.createConnection)(e);return[new Fi(n,t),new Ai(n,t)]}Oe.createServerPipeTransport=WN;function jN(e,t="utf-8"){let n,i=new Promise((o,c)=>{n=o});return new Promise((o,c)=>{let u=(0,Nc.createServer)(f=>{u.close(),n([new Fi(f,t),new Ai(f,t)])});u.on("error",c),u.listen(e,"127.0.0.1",()=>{u.removeListener("error",c),o({onConnected:()=>i})})})}Oe.createClientSocketTransport=jN;function zN(e,t="utf-8"){let n=(0,Nc.createConnection)(e,"127.0.0.1");return[new Fi(n,t),new Ai(n,t)]}Oe.createServerSocketTransport=zN;function HN(e){let t=e;return t.read!==void 0&&t.addListener!==void 0}function VN(e){let t=e;return t.write!==void 0&&t.addListener!==void 0}function GN(e,t,n,i){n||(n=Tn.NullLogger);let o=HN(e)?new Ac(e):e,c=VN(t)?new Mc(t):t;return Tn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Tn.createMessageConnection)(o,c,n,i)}Oe.createMessageConnection=GN});var ph=F((yz,j_)=>{"use strict";j_.exports=Mi()});var Lc=F((z_,qc)=>{"use strict";(function(e){if(typeof qc=="object"&&typeof qc.exports=="object"){var t=e(require,z_);t!==void 0&&(qc.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextDocument=t.EOL=t.WorkspaceFolder=t.InlineCompletionContext=t.SelectedCompletionInfo=t.InlineCompletionTriggerKind=t.InlineCompletionList=t.InlineCompletionItem=t.StringValue=t.InlayHint=t.InlayHintLabelPart=t.InlayHintKind=t.InlineValueContext=t.InlineValueEvaluatableExpression=t.InlineValueVariableLookup=t.InlineValueText=t.SemanticTokens=t.SemanticTokenModifiers=t.SemanticTokenTypes=t.SelectionRange=t.DocumentLink=t.FormattingOptions=t.CodeLens=t.CodeAction=t.CodeActionContext=t.CodeActionTriggerKind=t.CodeActionKind=t.DocumentSymbol=t.WorkspaceSymbol=t.SymbolInformation=t.SymbolTag=t.SymbolKind=t.DocumentHighlight=t.DocumentHighlightKind=t.SignatureInformation=t.ParameterInformation=t.Hover=t.MarkedString=t.CompletionList=t.CompletionItem=t.CompletionItemLabelDetails=t.InsertTextMode=t.InsertReplaceEdit=t.CompletionItemTag=t.InsertTextFormat=t.CompletionItemKind=t.MarkupContent=t.MarkupKind=t.TextDocumentItem=t.OptionalVersionedTextDocumentIdentifier=t.VersionedTextDocumentIdentifier=t.TextDocumentIdentifier=t.WorkspaceChange=t.WorkspaceEdit=t.DeleteFile=t.RenameFile=t.CreateFile=t.TextDocumentEdit=t.AnnotatedTextEdit=t.ChangeAnnotationIdentifier=t.ChangeAnnotation=t.TextEdit=t.Command=t.Diagnostic=t.CodeDescription=t.DiagnosticTag=t.DiagnosticSeverity=t.DiagnosticRelatedInformation=t.FoldingRange=t.FoldingRangeKind=t.ColorPresentation=t.ColorInformation=t.Color=t.LocationLink=t.Location=t.Range=t.Position=t.uinteger=t.integer=t.URI=t.DocumentUri=void 0;var n;(function(p){function C(T){return typeof T=="string"}p.is=C})(n||(t.DocumentUri=n={}));var i;(function(p){function C(T){return typeof T=="string"}p.is=C})(i||(t.URI=i={}));var o;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function C(T){return typeof T=="number"&&p.MIN_VALUE<=T&&T<=p.MAX_VALUE}p.is=C})(o||(t.integer=o={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function C(T){return typeof T=="number"&&p.MIN_VALUE<=T&&T<=p.MAX_VALUE}p.is=C})(c||(t.uinteger=c={}));var u;(function(p){function C(v,h){return v===Number.MAX_VALUE&&(v=c.MAX_VALUE),h===Number.MAX_VALUE&&(h=c.MAX_VALUE),{line:v,character:h}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.uinteger(h.line)&&q.uinteger(h.character)}p.is=T})(u||(t.Position=u={}));var f;(function(p){function C(v,h,L,Q){if(q.uinteger(v)&&q.uinteger(h)&&q.uinteger(L)&&q.uinteger(Q))return{start:u.create(v,h),end:u.create(L,Q)};if(u.is(v)&&u.is(h))return{start:v,end:h};throw new Error("Range#create called with invalid arguments[".concat(v,", ").concat(h,", ").concat(L,", ").concat(Q,"]"))}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&u.is(h.start)&&u.is(h.end)}p.is=T})(f||(t.Range=f={}));var g;(function(p){function C(v,h){return{uri:v,range:h}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&f.is(h.range)&&(q.string(h.uri)||q.undefined(h.uri))}p.is=T})(g||(t.Location=g={}));var b;(function(p){function C(v,h,L,Q){return{targetUri:v,targetRange:h,targetSelectionRange:L,originSelectionRange:Q}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&f.is(h.targetRange)&&q.string(h.targetUri)&&f.is(h.targetSelectionRange)&&(f.is(h.originSelectionRange)||q.undefined(h.originSelectionRange))}p.is=T})(b||(t.LocationLink=b={}));var x;(function(p){function C(v,h,L,Q){return{red:v,green:h,blue:L,alpha:Q}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.numberRange(h.red,0,1)&&q.numberRange(h.green,0,1)&&q.numberRange(h.blue,0,1)&&q.numberRange(h.alpha,0,1)}p.is=T})(x||(t.Color=x={}));var k;(function(p){function C(v,h){return{range:v,color:h}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&f.is(h.range)&&x.is(h.color)}p.is=T})(k||(t.ColorInformation=k={}));var I;(function(p){function C(v,h,L){return{label:v,textEdit:h,additionalTextEdits:L}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.string(h.label)&&(q.undefined(h.textEdit)||ne.is(h))&&(q.undefined(h.additionalTextEdits)||q.typedArray(h.additionalTextEdits,ne.is))}p.is=T})(I||(t.ColorPresentation=I={}));var M;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(M||(t.FoldingRangeKind=M={}));var N;(function(p){function C(v,h,L,Q,be,ht){var Ye={startLine:v,endLine:h};return q.defined(L)&&(Ye.startCharacter=L),q.defined(Q)&&(Ye.endCharacter=Q),q.defined(be)&&(Ye.kind=be),q.defined(ht)&&(Ye.collapsedText=ht),Ye}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.uinteger(h.startLine)&&q.uinteger(h.startLine)&&(q.undefined(h.startCharacter)||q.uinteger(h.startCharacter))&&(q.undefined(h.endCharacter)||q.uinteger(h.endCharacter))&&(q.undefined(h.kind)||q.string(h.kind))}p.is=T})(N||(t.FoldingRange=N={}));var B;(function(p){function C(v,h){return{location:v,message:h}}p.create=C;function T(v){var h=v;return q.defined(h)&&g.is(h.location)&&q.string(h.message)}p.is=T})(B||(t.DiagnosticRelatedInformation=B={}));var W;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(W||(t.DiagnosticSeverity=W={}));var X;(function(p){p.Unnecessary=1,p.Deprecated=2})(X||(t.DiagnosticTag=X={}));var D;(function(p){function C(T){var v=T;return q.objectLiteral(v)&&q.string(v.href)}p.is=C})(D||(t.CodeDescription=D={}));var P;(function(p){function C(v,h,L,Q,be,ht){var Ye={range:v,message:h};return q.defined(L)&&(Ye.severity=L),q.defined(Q)&&(Ye.code=Q),q.defined(be)&&(Ye.source=be),q.defined(ht)&&(Ye.relatedInformation=ht),Ye}p.create=C;function T(v){var h,L=v;return q.defined(L)&&f.is(L.range)&&q.string(L.message)&&(q.number(L.severity)||q.undefined(L.severity))&&(q.integer(L.code)||q.string(L.code)||q.undefined(L.code))&&(q.undefined(L.codeDescription)||q.string((h=L.codeDescription)===null||h===void 0?void 0:h.href))&&(q.string(L.source)||q.undefined(L.source))&&(q.undefined(L.relatedInformation)||q.typedArray(L.relatedInformation,B.is))}p.is=T})(P||(t.Diagnostic=P={}));var U;(function(p){function C(v,h){for(var L=[],Q=2;Q0&&(be.arguments=L),be}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.title)&&q.string(h.command)}p.is=T})(U||(t.Command=U={}));var ne;(function(p){function C(L,Q){return{range:L,newText:Q}}p.replace=C;function T(L,Q){return{range:{start:L,end:L},newText:Q}}p.insert=T;function v(L){return{range:L,newText:""}}p.del=v;function h(L){var Q=L;return q.objectLiteral(Q)&&q.string(Q.newText)&&f.is(Q.range)}p.is=h})(ne||(t.TextEdit=ne={}));var _e;(function(p){function C(v,h,L){var Q={label:v};return h!==void 0&&(Q.needsConfirmation=h),L!==void 0&&(Q.description=L),Q}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.string(h.label)&&(q.boolean(h.needsConfirmation)||h.needsConfirmation===void 0)&&(q.string(h.description)||h.description===void 0)}p.is=T})(_e||(t.ChangeAnnotation=_e={}));var Ue;(function(p){function C(T){var v=T;return q.string(v)}p.is=C})(Ue||(t.ChangeAnnotationIdentifier=Ue={}));var Ke;(function(p){function C(L,Q,be){return{range:L,newText:Q,annotationId:be}}p.replace=C;function T(L,Q,be){return{range:{start:L,end:L},newText:Q,annotationId:be}}p.insert=T;function v(L,Q){return{range:L,newText:"",annotationId:Q}}p.del=v;function h(L){var Q=L;return ne.is(Q)&&(_e.is(Q.annotationId)||Ue.is(Q.annotationId))}p.is=h})(Ke||(t.AnnotatedTextEdit=Ke={}));var Dt;(function(p){function C(v,h){return{textDocument:v,edits:h}}p.create=C;function T(v){var h=v;return q.defined(h)&&je.is(h.textDocument)&&Array.isArray(h.edits)}p.is=T})(Dt||(t.TextDocumentEdit=Dt={}));var xe;(function(p){function C(v,h,L){var Q={kind:"create",uri:v};return h!==void 0&&(h.overwrite!==void 0||h.ignoreIfExists!==void 0)&&(Q.options=h),L!==void 0&&(Q.annotationId=L),Q}p.create=C;function T(v){var h=v;return h&&h.kind==="create"&&q.string(h.uri)&&(h.options===void 0||(h.options.overwrite===void 0||q.boolean(h.options.overwrite))&&(h.options.ignoreIfExists===void 0||q.boolean(h.options.ignoreIfExists)))&&(h.annotationId===void 0||Ue.is(h.annotationId))}p.is=T})(xe||(t.CreateFile=xe={}));var Y;(function(p){function C(v,h,L,Q){var be={kind:"rename",oldUri:v,newUri:h};return L!==void 0&&(L.overwrite!==void 0||L.ignoreIfExists!==void 0)&&(be.options=L),Q!==void 0&&(be.annotationId=Q),be}p.create=C;function T(v){var h=v;return h&&h.kind==="rename"&&q.string(h.oldUri)&&q.string(h.newUri)&&(h.options===void 0||(h.options.overwrite===void 0||q.boolean(h.options.overwrite))&&(h.options.ignoreIfExists===void 0||q.boolean(h.options.ignoreIfExists)))&&(h.annotationId===void 0||Ue.is(h.annotationId))}p.is=T})(Y||(t.RenameFile=Y={}));var H;(function(p){function C(v,h,L){var Q={kind:"delete",uri:v};return h!==void 0&&(h.recursive!==void 0||h.ignoreIfNotExists!==void 0)&&(Q.options=h),L!==void 0&&(Q.annotationId=L),Q}p.create=C;function T(v){var h=v;return h&&h.kind==="delete"&&q.string(h.uri)&&(h.options===void 0||(h.options.recursive===void 0||q.boolean(h.options.recursive))&&(h.options.ignoreIfNotExists===void 0||q.boolean(h.options.ignoreIfNotExists)))&&(h.annotationId===void 0||Ue.is(h.annotationId))}p.is=T})(H||(t.DeleteFile=H={}));var ae;(function(p){function C(T){var v=T;return v&&(v.changes!==void 0||v.documentChanges!==void 0)&&(v.documentChanges===void 0||v.documentChanges.every(function(h){return q.string(h.kind)?xe.is(h)||Y.is(h)||H.is(h):Dt.is(h)}))}p.is=C})(ae||(t.WorkspaceEdit=ae={}));var ie=function(){function p(C,T){this.edits=C,this.changeAnnotations=T}return p.prototype.insert=function(C,T,v){var h,L;if(v===void 0?h=ne.insert(C,T):Ue.is(v)?(L=v,h=Ke.insert(C,T,v)):(this.assertChangeAnnotations(this.changeAnnotations),L=this.changeAnnotations.manage(v),h=Ke.insert(C,T,L)),this.edits.push(h),L!==void 0)return L},p.prototype.replace=function(C,T,v){var h,L;if(v===void 0?h=ne.replace(C,T):Ue.is(v)?(L=v,h=Ke.replace(C,T,v)):(this.assertChangeAnnotations(this.changeAnnotations),L=this.changeAnnotations.manage(v),h=Ke.replace(C,T,L)),this.edits.push(h),L!==void 0)return L},p.prototype.delete=function(C,T){var v,h;if(T===void 0?v=ne.del(C):Ue.is(T)?(h=T,v=Ke.del(C,T)):(this.assertChangeAnnotations(this.changeAnnotations),h=this.changeAnnotations.manage(T),v=Ke.del(C,h)),this.edits.push(v),h!==void 0)return h},p.prototype.add=function(C){this.edits.push(C)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(C){if(C===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),ke=function(){function p(C){this._annotations=C===void 0?Object.create(null):C,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(C,T){var v;if(Ue.is(C)?v=C:(v=this.nextId(),T=C),this._annotations[v]!==void 0)throw new Error("Id ".concat(v," is already in use."));if(T===void 0)throw new Error("No annotation provided for id ".concat(v));return this._annotations[v]=T,this._size++,v},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(C){var T=this;this._textEditChanges=Object.create(null),C!==void 0?(this._workspaceEdit=C,C.documentChanges?(this._changeAnnotations=new ke(C.changeAnnotations),C.changeAnnotations=this._changeAnnotations.all(),C.documentChanges.forEach(function(v){if(Dt.is(v)){var h=new ie(v.edits,T._changeAnnotations);T._textEditChanges[v.textDocument.uri]=h}})):C.changes&&Object.keys(C.changes).forEach(function(v){var h=new ie(C.changes[v]);T._textEditChanges[v]=h})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(C){if(je.is(C)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var T={uri:C.uri,version:C.version},v=this._textEditChanges[T.uri];if(!v){var h=[],L={textDocument:T,edits:h};this._workspaceEdit.documentChanges.push(L),v=new ie(h,this._changeAnnotations),this._textEditChanges[T.uri]=v}return v}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var v=this._textEditChanges[C];if(!v){var h=[];this._workspaceEdit.changes[C]=h,v=new ie(h),this._textEditChanges[C]=v}return v}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ke,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(C,T,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var h;_e.is(T)||Ue.is(T)?h=T:v=T;var L,Q;if(h===void 0?L=xe.create(C,v):(Q=Ue.is(h)?h:this._changeAnnotations.manage(h),L=xe.create(C,v,Q)),this._workspaceEdit.documentChanges.push(L),Q!==void 0)return Q},p.prototype.renameFile=function(C,T,v,h){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var L;_e.is(v)||Ue.is(v)?L=v:h=v;var Q,be;if(L===void 0?Q=Y.create(C,T,h):(be=Ue.is(L)?L:this._changeAnnotations.manage(L),Q=Y.create(C,T,h,be)),this._workspaceEdit.documentChanges.push(Q),be!==void 0)return be},p.prototype.deleteFile=function(C,T,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var h;_e.is(T)||Ue.is(T)?h=T:v=T;var L,Q;if(h===void 0?L=H.create(C,v):(Q=Ue.is(h)?h:this._changeAnnotations.manage(h),L=H.create(C,v,Q)),this._workspaceEdit.documentChanges.push(L),Q!==void 0)return Q},p}();t.WorkspaceChange=ge;var pe;(function(p){function C(v){return{uri:v}}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.uri)}p.is=T})(pe||(t.TextDocumentIdentifier=pe={}));var wt;(function(p){function C(v,h){return{uri:v,version:h}}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.uri)&&q.integer(h.version)}p.is=T})(wt||(t.VersionedTextDocumentIdentifier=wt={}));var je;(function(p){function C(v,h){return{uri:v,version:h}}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.uri)&&(h.version===null||q.integer(h.version))}p.is=T})(je||(t.OptionalVersionedTextDocumentIdentifier=je={}));var ze;(function(p){function C(v,h,L,Q){return{uri:v,languageId:h,version:L,text:Q}}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.uri)&&q.string(h.languageId)&&q.integer(h.version)&&q.string(h.text)}p.is=T})(ze||(t.TextDocumentItem=ze={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function C(T){var v=T;return v===p.PlainText||v===p.Markdown}p.is=C})(bn||(t.MarkupKind=bn={}));var xr;(function(p){function C(T){var v=T;return q.objectLiteral(T)&&bn.is(v.kind)&&q.string(v.value)}p.is=C})(xr||(t.MarkupContent=xr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(t.CompletionItemKind=Vn={}));var ur;(function(p){p.PlainText=1,p.Snippet=2})(ur||(t.InsertTextFormat=ur={}));var vi;(function(p){p.Deprecated=1})(vi||(t.CompletionItemTag=vi={}));var lr;(function(p){function C(v,h,L){return{newText:v,insert:h,replace:L}}p.create=C;function T(v){var h=v;return h&&q.string(h.newText)&&f.is(h.insert)&&f.is(h.replace)}p.is=T})(lr||(t.InsertReplaceEdit=lr={}));var dr;(function(p){p.asIs=1,p.adjustIndentation=2})(dr||(t.InsertTextMode=dr={}));var $i;(function(p){function C(T){var v=T;return v&&(q.string(v.detail)||v.detail===void 0)&&(q.string(v.description)||v.description===void 0)}p.is=C})($i||(t.CompletionItemLabelDetails=$i={}));var wr;(function(p){function C(T){return{label:T}}p.create=C})(wr||(t.CompletionItem=wr={}));var Pr;(function(p){function C(T,v){return{items:T||[],isIncomplete:!!v}}p.create=C})(Pr||(t.CompletionList=Pr={}));var Sr;(function(p){function C(v){return v.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=C;function T(v){var h=v;return q.string(h)||q.objectLiteral(h)&&q.string(h.language)&&q.string(h.value)}p.is=T})(Sr||(t.MarkedString=Sr={}));var bt;(function(p){function C(T){var v=T;return!!v&&q.objectLiteral(v)&&(xr.is(v.contents)||Sr.is(v.contents)||q.typedArray(v.contents,Sr.is))&&(T.range===void 0||f.is(T.range))}p.is=C})(bt||(t.Hover=bt={}));var fr;(function(p){function C(T,v){return v?{label:T,documentation:v}:{label:T}}p.create=C})(fr||(t.ParameterInformation=fr={}));var Wi;(function(p){function C(T,v){for(var h=[],L=2;L=0;rn--){var _n=lt[rn],Vn=N.offsetAt(_n.range.start),Ie=N.offsetAt(_n.range.end);if(Ie<=Ke)be=be.substring(0,Vn)+_n.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Ke=Vn}return be}p.applyEdits=v;function f(N,G){if(N.length<=1)return N;var be=N.length/2|0,lt=N.slice(0,be),Ke=N.slice(be);f(lt,G),f(Ke,G);for(var rn=0,_n=0,Vn=0;rn0&&C.push(R.length),this._lineOffsets=C}return this._lineOffsets},p.prototype.positionAt=function(C){C=Math.max(Math.min(C,this._content.length),0);var R=this.getLineOffsets(),v=0,f=R.length;if(f===0)return u.create(0,C);for(;vC?f=N:v=N+1}var G=v-1;return u.create(G,C-R[G])},p.prototype.offsetAt=function(C){var R=this.getLineOffsets();if(C.line>=R.length)return this._content.length;if(C.line<0)return 0;var v=R[C.line],f=C.line+1"u"}p.undefined=v;function f(Ie){return Ie===!0||Ie===!1}p.boolean=f;function N(Ie){return C.call(Ie)==="[object String]"}p.string=N;function G(Ie){return C.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Ur,Ui){return C.call(Ie)==="[object Number]"&&Ur<=Ie&&Ie<=Ui}p.numberRange=be;function lt(Ie){return C.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=lt;function Ke(Ie){return C.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Ke;function rn(Ie){return C.call(Ie)==="[object Function]"}p.func=rn;function _n(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=_n;function Vn(Ie,Ur){return Array.isArray(Ie)&&Ie.every(Ur)}p.typedArray=Vn})(A||(A={}))})});var ft=re(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.ProtocolNotificationType=ln.ProtocolNotificationType0=ln.ProtocolRequestType=ln.ProtocolRequestType0=ln.RegistrationType=ln.MessageDirection=void 0;var co=Di(),Mb;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(Mb||(ln.MessageDirection=Mb={}));var Df=class{constructor(e){this.method=e}};ln.RegistrationType=Df;var If=class extends co.RequestType0{constructor(e){super(e)}};ln.ProtocolRequestType0=If;var Ef=class extends co.RequestType{constructor(e){super(e,co.ParameterStructures.byName)}};ln.ProtocolRequestType=Ef;var Ff=class extends co.NotificationType0{constructor(e){super(e)}};ln.ProtocolNotificationType0=Ff;var Mf=class extends co.NotificationType{constructor(e){super(e,co.ParameterStructures.byName)}};ln.ProtocolNotificationType=Mf});var sc=re(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function MI(t){return t===!0||t===!1}It.boolean=MI;function Ab(t){return typeof t=="string"||t instanceof String}It.string=Ab;function AI(t){return typeof t=="number"||t instanceof Number}It.number=AI;function NI(t){return t instanceof Error}It.error=NI;function qI(t){return typeof t=="function"}It.func=qI;function Nb(t){return Array.isArray(t)}It.array=Nb;function LI(t){return Nb(t)&&t.every(e=>Ab(e))}It.stringArray=LI;function OI(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=OI;function BI(t){return t!==null&&typeof t=="object"}It.objectLiteral=BI});var Ob=re(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});ac.ImplementationRequest=void 0;var qb=ft(),Lb;(function(t){t.method="textDocument/implementation",t.messageDirection=qb.MessageDirection.clientToServer,t.type=new qb.ProtocolRequestType(t.method)})(Lb||(ac.ImplementationRequest=Lb={}))});var $b=re(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});cc.TypeDefinitionRequest=void 0;var Bb=ft(),Ub;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=Bb.MessageDirection.clientToServer,t.type=new Bb.ProtocolRequestType(t.method)})(Ub||(cc.TypeDefinitionRequest=Ub={}))});var zb=re(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.DidChangeWorkspaceFoldersNotification=uo.WorkspaceFoldersRequest=void 0;var uc=ft(),Wb;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=uc.MessageDirection.serverToClient,t.type=new uc.ProtocolRequestType0(t.method)})(Wb||(uo.WorkspaceFoldersRequest=Wb={}));var jb;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=uc.MessageDirection.clientToServer,t.type=new uc.ProtocolNotificationType(t.method)})(jb||(uo.DidChangeWorkspaceFoldersNotification=jb={}))});var Gb=re(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.ConfigurationRequest=void 0;var Hb=ft(),Vb;(function(t){t.method="workspace/configuration",t.messageDirection=Hb.MessageDirection.serverToClient,t.type=new Hb.ProtocolRequestType(t.method)})(Vb||(lc.ConfigurationRequest=Vb={}))});var Xb=re(lo=>{"use strict";Object.defineProperty(lo,"__esModule",{value:!0});lo.ColorPresentationRequest=lo.DocumentColorRequest=void 0;var dc=ft(),Qb;(function(t){t.method="textDocument/documentColor",t.messageDirection=dc.MessageDirection.clientToServer,t.type=new dc.ProtocolRequestType(t.method)})(Qb||(lo.DocumentColorRequest=Qb={}));var Jb;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=dc.MessageDirection.clientToServer,t.type=new dc.ProtocolRequestType(t.method)})(Jb||(lo.ColorPresentationRequest=Jb={}))});var Zb=re(fo=>{"use strict";Object.defineProperty(fo,"__esModule",{value:!0});fo.FoldingRangeRefreshRequest=fo.FoldingRangeRequest=void 0;var fc=ft(),Yb;(function(t){t.method="textDocument/foldingRange",t.messageDirection=fc.MessageDirection.clientToServer,t.type=new fc.ProtocolRequestType(t.method)})(Yb||(fo.FoldingRangeRequest=Yb={}));var Kb;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=fc.MessageDirection.serverToClient,t.type=new fc.ProtocolRequestType0(t.method)})(Kb||(fo.FoldingRangeRefreshRequest=Kb={}))});var n_=re(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});hc.DeclarationRequest=void 0;var e_=ft(),t_;(function(t){t.method="textDocument/declaration",t.messageDirection=e_.MessageDirection.clientToServer,t.type=new e_.ProtocolRequestType(t.method)})(t_||(hc.DeclarationRequest=t_={}))});var o_=re(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});gc.SelectionRangeRequest=void 0;var r_=ft(),i_;(function(t){t.method="textDocument/selectionRange",t.messageDirection=r_.MessageDirection.clientToServer,t.type=new r_.ProtocolRequestType(t.method)})(i_||(gc.SelectionRangeRequest=i_={}))});var u_=re(ti=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});ti.WorkDoneProgressCancelNotification=ti.WorkDoneProgressCreateRequest=ti.WorkDoneProgress=void 0;var UI=Di(),pc=ft(),s_;(function(t){t.type=new UI.ProgressType;function e(n){return n===t.type}t.is=e})(s_||(ti.WorkDoneProgress=s_={}));var a_;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=pc.MessageDirection.serverToClient,t.type=new pc.ProtocolRequestType(t.method)})(a_||(ti.WorkDoneProgressCreateRequest=a_={}));var c_;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=pc.MessageDirection.clientToServer,t.type=new pc.ProtocolNotificationType(t.method)})(c_||(ti.WorkDoneProgressCancelNotification=c_={}))});var h_=re(ni=>{"use strict";Object.defineProperty(ni,"__esModule",{value:!0});ni.CallHierarchyOutgoingCallsRequest=ni.CallHierarchyIncomingCallsRequest=ni.CallHierarchyPrepareRequest=void 0;var ho=ft(),l_;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=ho.MessageDirection.clientToServer,t.type=new ho.ProtocolRequestType(t.method)})(l_||(ni.CallHierarchyPrepareRequest=l_={}));var d_;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=ho.MessageDirection.clientToServer,t.type=new ho.ProtocolRequestType(t.method)})(d_||(ni.CallHierarchyIncomingCallsRequest=d_={}));var f_;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=ho.MessageDirection.clientToServer,t.type=new ho.ProtocolRequestType(t.method)})(f_||(ni.CallHierarchyOutgoingCallsRequest=f_={}))});var v_=re(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});dn.SemanticTokensRefreshRequest=dn.SemanticTokensRangeRequest=dn.SemanticTokensDeltaRequest=dn.SemanticTokensRequest=dn.SemanticTokensRegistrationType=dn.TokenFormat=void 0;var Ar=ft(),g_;(function(t){t.Relative="relative"})(g_||(dn.TokenFormat=g_={}));var ls;(function(t){t.method="textDocument/semanticTokens",t.type=new Ar.RegistrationType(t.method)})(ls||(dn.SemanticTokensRegistrationType=ls={}));var p_;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=Ar.MessageDirection.clientToServer,t.type=new Ar.ProtocolRequestType(t.method),t.registrationMethod=ls.method})(p_||(dn.SemanticTokensRequest=p_={}));var m_;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=Ar.MessageDirection.clientToServer,t.type=new Ar.ProtocolRequestType(t.method),t.registrationMethod=ls.method})(m_||(dn.SemanticTokensDeltaRequest=m_={}));var b_;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=Ar.MessageDirection.clientToServer,t.type=new Ar.ProtocolRequestType(t.method),t.registrationMethod=ls.method})(b_||(dn.SemanticTokensRangeRequest=b_={}));var __;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=Ar.MessageDirection.serverToClient,t.type=new Ar.ProtocolRequestType0(t.method)})(__||(dn.SemanticTokensRefreshRequest=__={}))});var P_=re(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});mc.ShowDocumentRequest=void 0;var y_=ft(),w_;(function(t){t.method="window/showDocument",t.messageDirection=y_.MessageDirection.serverToClient,t.type=new y_.ProtocolRequestType(t.method)})(w_||(mc.ShowDocumentRequest=w_={}))});var C_=re(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});bc.LinkedEditingRangeRequest=void 0;var x_=ft(),S_;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=x_.MessageDirection.clientToServer,t.type=new x_.ProtocolRequestType(t.method)})(S_||(bc.LinkedEditingRangeRequest=S_={}))});var M_=re(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.WillDeleteFilesRequest=Vt.DidDeleteFilesNotification=Vt.DidRenameFilesNotification=Vt.WillRenameFilesRequest=Vt.DidCreateFilesNotification=Vt.WillCreateFilesRequest=Vt.FileOperationPatternKind=void 0;var Ln=ft(),k_;(function(t){t.file="file",t.folder="folder"})(k_||(Vt.FileOperationPatternKind=k_={}));var R_;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Ln.MessageDirection.clientToServer,t.type=new Ln.ProtocolRequestType(t.method)})(R_||(Vt.WillCreateFilesRequest=R_={}));var T_;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Ln.MessageDirection.clientToServer,t.type=new Ln.ProtocolNotificationType(t.method)})(T_||(Vt.DidCreateFilesNotification=T_={}));var D_;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Ln.MessageDirection.clientToServer,t.type=new Ln.ProtocolRequestType(t.method)})(D_||(Vt.WillRenameFilesRequest=D_={}));var I_;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Ln.MessageDirection.clientToServer,t.type=new Ln.ProtocolNotificationType(t.method)})(I_||(Vt.DidRenameFilesNotification=I_={}));var E_;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Ln.MessageDirection.clientToServer,t.type=new Ln.ProtocolNotificationType(t.method)})(E_||(Vt.DidDeleteFilesNotification=E_={}));var F_;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Ln.MessageDirection.clientToServer,t.type=new Ln.ProtocolRequestType(t.method)})(F_||(Vt.WillDeleteFilesRequest=F_={}))});var O_=re(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});ri.MonikerRequest=ri.MonikerKind=ri.UniquenessLevel=void 0;var A_=ft(),N_;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(N_||(ri.UniquenessLevel=N_={}));var q_;(function(t){t.$import="import",t.$export="export",t.local="local"})(q_||(ri.MonikerKind=q_={}));var L_;(function(t){t.method="textDocument/moniker",t.messageDirection=A_.MessageDirection.clientToServer,t.type=new A_.ProtocolRequestType(t.method)})(L_||(ri.MonikerRequest=L_={}))});var W_=re(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.TypeHierarchySubtypesRequest=ii.TypeHierarchySupertypesRequest=ii.TypeHierarchyPrepareRequest=void 0;var go=ft(),B_;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=go.MessageDirection.clientToServer,t.type=new go.ProtocolRequestType(t.method)})(B_||(ii.TypeHierarchyPrepareRequest=B_={}));var U_;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=go.MessageDirection.clientToServer,t.type=new go.ProtocolRequestType(t.method)})(U_||(ii.TypeHierarchySupertypesRequest=U_={}));var $_;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=go.MessageDirection.clientToServer,t.type=new go.ProtocolRequestType(t.method)})($_||(ii.TypeHierarchySubtypesRequest=$_={}))});var H_=re(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.InlineValueRefreshRequest=po.InlineValueRequest=void 0;var _c=ft(),j_;(function(t){t.method="textDocument/inlineValue",t.messageDirection=_c.MessageDirection.clientToServer,t.type=new _c.ProtocolRequestType(t.method)})(j_||(po.InlineValueRequest=j_={}));var z_;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=_c.MessageDirection.serverToClient,t.type=new _c.ProtocolRequestType0(t.method)})(z_||(po.InlineValueRefreshRequest=z_={}))});var J_=re(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.InlayHintRefreshRequest=oi.InlayHintResolveRequest=oi.InlayHintRequest=void 0;var mo=ft(),V_;(function(t){t.method="textDocument/inlayHint",t.messageDirection=mo.MessageDirection.clientToServer,t.type=new mo.ProtocolRequestType(t.method)})(V_||(oi.InlayHintRequest=V_={}));var G_;(function(t){t.method="inlayHint/resolve",t.messageDirection=mo.MessageDirection.clientToServer,t.type=new mo.ProtocolRequestType(t.method)})(G_||(oi.InlayHintResolveRequest=G_={}));var Q_;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=mo.MessageDirection.serverToClient,t.type=new mo.ProtocolRequestType0(t.method)})(Q_||(oi.InlayHintRefreshRequest=Q_={}))});var nv=re(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});On.DiagnosticRefreshRequest=On.WorkspaceDiagnosticRequest=On.DocumentDiagnosticRequest=On.DocumentDiagnosticReportKind=On.DiagnosticServerCancellationData=void 0;var tv=Di(),$I=sc(),bo=ft(),X_;(function(t){function e(n){let i=n;return i&&$I.boolean(i.retriggerRequest)}t.is=e})(X_||(On.DiagnosticServerCancellationData=X_={}));var Y_;(function(t){t.Full="full",t.Unchanged="unchanged"})(Y_||(On.DocumentDiagnosticReportKind=Y_={}));var K_;(function(t){t.method="textDocument/diagnostic",t.messageDirection=bo.MessageDirection.clientToServer,t.type=new bo.ProtocolRequestType(t.method),t.partialResult=new tv.ProgressType})(K_||(On.DocumentDiagnosticRequest=K_={}));var Z_;(function(t){t.method="workspace/diagnostic",t.messageDirection=bo.MessageDirection.clientToServer,t.type=new bo.ProtocolRequestType(t.method),t.partialResult=new tv.ProgressType})(Z_||(On.WorkspaceDiagnosticRequest=Z_={}));var ev;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=bo.MessageDirection.serverToClient,t.type=new bo.ProtocolRequestType0(t.method)})(ev||(On.DiagnosticRefreshRequest=ev={}))});var uv=re(_t=>{"use strict";Object.defineProperty(_t,"__esModule",{value:!0});_t.DidCloseNotebookDocumentNotification=_t.DidSaveNotebookDocumentNotification=_t.DidChangeNotebookDocumentNotification=_t.NotebookCellArrayChange=_t.DidOpenNotebookDocumentNotification=_t.NotebookDocumentSyncRegistrationType=_t.NotebookDocument=_t.NotebookCell=_t.ExecutionSummary=_t.NotebookCellKind=void 0;var ds=oc(),Kn=sc(),gr=ft(),Af;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(Af||(_t.NotebookCellKind=Af={}));var Nf;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return Kn.objectLiteral(c)&&ds.uinteger.is(c.executionOrder)&&(c.success===void 0||Kn.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(Nf||(_t.ExecutionSummary=Nf={}));var vc;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return Kn.objectLiteral(u)&&Af.is(u.kind)&&ds.DocumentUri.is(u.document)&&(u.metadata===void 0||Kn.objectLiteral(u.metadata))}t.is=n;function i(c,u){let h=new Set;return c.document!==u.document&&h.add("document"),c.kind!==u.kind&&h.add("kind"),c.executionSummary!==u.executionSummary&&h.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&h.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!Nf.equals(c.executionSummary,u.executionSummary)&&h.add("executionSummary"),h}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let h=Array.isArray(c),g=Array.isArray(u);if(h!==g)return!1;if(h&&g){if(c.length!==u.length)return!1;for(let b=0;b{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});yc.InlineCompletionRequest=void 0;var lv=ft(),dv;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=lv.MessageDirection.clientToServer,t.type=new lv.ProtocolRequestType(t.method)})(dv||(yc.InlineCompletionRequest=dv={}))});var Cy=re(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var K=ft(),hv=oc(),qt=sc(),WI=Ob();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return WI.ImplementationRequest}});var jI=$b();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return jI.TypeDefinitionRequest}});var wy=zb();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return wy.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return wy.DidChangeWorkspaceFoldersNotification}});var zI=Gb();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return zI.ConfigurationRequest}});var Py=Xb();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Py.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Py.ColorPresentationRequest}});var xy=Zb();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return xy.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return xy.FoldingRangeRefreshRequest}});var HI=n_();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return HI.DeclarationRequest}});var VI=o_();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return VI.SelectionRangeRequest}});var Uf=u_();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return Uf.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return Uf.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return Uf.WorkDoneProgressCancelNotification}});var $f=h_();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return $f.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return $f.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return $f.CallHierarchyPrepareRequest}});var vo=v_();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return vo.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return vo.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return vo.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return vo.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return vo.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return vo.SemanticTokensRegistrationType}});var GI=P_();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return GI.ShowDocumentRequest}});var QI=C_();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return QI.LinkedEditingRangeRequest}});var Ii=M_();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return Ii.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Ii.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Ii.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Ii.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Ii.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Ii.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Ii.WillDeleteFilesRequest}});var Wf=O_();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Wf.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Wf.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Wf.MonikerRequest}});var jf=W_();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return jf.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return jf.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return jf.TypeHierarchySupertypesRequest}});var Sy=H_();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Sy.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Sy.InlineValueRefreshRequest}});var zf=J_();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return zf.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return zf.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return zf.InlayHintRefreshRequest}});var fs=nv();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return fs.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return fs.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return fs.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return fs.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return fs.DiagnosticRefreshRequest}});var pr=uv();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return pr.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return pr.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return pr.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return pr.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return pr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return pr.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return pr.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return pr.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return pr.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return pr.DidCloseNotebookDocumentNotification}});var JI=fv();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return JI.InlineCompletionRequest}});var qf;(function(t){function e(n){let i=n;return qt.string(i)||qt.string(i.language)||qt.string(i.scheme)||qt.string(i.pattern)}t.is=e})(qf||(w.TextDocumentFilter=qf={}));var Lf;(function(t){function e(n){let i=n;return qt.objectLiteral(i)&&(qt.string(i.notebookType)||qt.string(i.scheme)||qt.string(i.pattern))}t.is=e})(Lf||(w.NotebookDocumentFilter=Lf={}));var Of;(function(t){function e(n){let i=n;return qt.objectLiteral(i)&&(qt.string(i.notebook)||Lf.is(i.notebook))&&(i.language===void 0||qt.string(i.language))}t.is=e})(Of||(w.NotebookCellTextDocumentFilter=Of={}));var Bf;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!qt.string(i)&&!qf.is(i)&&!Of.is(i))return!1;return!0}t.is=e})(Bf||(w.DocumentSelector=Bf={}));var gv;(function(t){t.method="client/registerCapability",t.messageDirection=K.MessageDirection.serverToClient,t.type=new K.ProtocolRequestType(t.method)})(gv||(w.RegistrationRequest=gv={}));var pv;(function(t){t.method="client/unregisterCapability",t.messageDirection=K.MessageDirection.serverToClient,t.type=new K.ProtocolRequestType(t.method)})(pv||(w.UnregistrationRequest=pv={}));var mv;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(mv||(w.ResourceOperationKind=mv={}));var bv;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(bv||(w.FailureHandlingKind=bv={}));var _v;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(_v||(w.PositionEncodingKind=_v={}));var vv;(function(t){function e(n){let i=n;return i&&qt.string(i.id)&&i.id.length>0}t.hasId=e})(vv||(w.StaticRegistrationOptions=vv={}));var yv;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Bf.is(i.documentSelector))}t.is=e})(yv||(w.TextDocumentRegistrationOptions=yv={}));var wv;(function(t){function e(i){let s=i;return qt.objectLiteral(s)&&(s.workDoneProgress===void 0||qt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&qt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(wv||(w.WorkDoneProgressOptions=wv={}));var Pv;(function(t){t.method="initialize",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(Pv||(w.InitializeRequest=Pv={}));var xv;(function(t){t.unknownProtocolVersion=1})(xv||(w.InitializeErrorCodes=xv={}));var Sv;(function(t){t.method="initialized",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolNotificationType(t.method)})(Sv||(w.InitializedNotification=Sv={}));var Cv;(function(t){t.method="shutdown",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType0(t.method)})(Cv||(w.ShutdownRequest=Cv={}));var kv;(function(t){t.method="exit",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolNotificationType0(t.method)})(kv||(w.ExitNotification=kv={}));var Rv;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolNotificationType(t.method)})(Rv||(w.DidChangeConfigurationNotification=Rv={}));var Tv;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(Tv||(w.MessageType=Tv={}));var Dv;(function(t){t.method="window/showMessage",t.messageDirection=K.MessageDirection.serverToClient,t.type=new K.ProtocolNotificationType(t.method)})(Dv||(w.ShowMessageNotification=Dv={}));var Iv;(function(t){t.method="window/showMessageRequest",t.messageDirection=K.MessageDirection.serverToClient,t.type=new K.ProtocolRequestType(t.method)})(Iv||(w.ShowMessageRequest=Iv={}));var Ev;(function(t){t.method="window/logMessage",t.messageDirection=K.MessageDirection.serverToClient,t.type=new K.ProtocolNotificationType(t.method)})(Ev||(w.LogMessageNotification=Ev={}));var Fv;(function(t){t.method="telemetry/event",t.messageDirection=K.MessageDirection.serverToClient,t.type=new K.ProtocolNotificationType(t.method)})(Fv||(w.TelemetryEventNotification=Fv={}));var Mv;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Mv||(w.TextDocumentSyncKind=Mv={}));var Av;(function(t){t.method="textDocument/didOpen",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolNotificationType(t.method)})(Av||(w.DidOpenTextDocumentNotification=Av={}));var Nv;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(Nv||(w.TextDocumentContentChangeEvent=Nv={}));var qv;(function(t){t.method="textDocument/didChange",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolNotificationType(t.method)})(qv||(w.DidChangeTextDocumentNotification=qv={}));var Lv;(function(t){t.method="textDocument/didClose",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolNotificationType(t.method)})(Lv||(w.DidCloseTextDocumentNotification=Lv={}));var Ov;(function(t){t.method="textDocument/didSave",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolNotificationType(t.method)})(Ov||(w.DidSaveTextDocumentNotification=Ov={}));var Bv;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(Bv||(w.TextDocumentSaveReason=Bv={}));var Uv;(function(t){t.method="textDocument/willSave",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolNotificationType(t.method)})(Uv||(w.WillSaveTextDocumentNotification=Uv={}));var $v;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})($v||(w.WillSaveTextDocumentWaitUntilRequest=$v={}));var Wv;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolNotificationType(t.method)})(Wv||(w.DidChangeWatchedFilesNotification=Wv={}));var jv;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(jv||(w.FileChangeType=jv={}));var zv;(function(t){function e(n){let i=n;return qt.objectLiteral(i)&&(hv.URI.is(i.baseUri)||hv.WorkspaceFolder.is(i.baseUri))&&qt.string(i.pattern)}t.is=e})(zv||(w.RelativePattern=zv={}));var Hv;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Hv||(w.WatchKind=Hv={}));var Vv;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=K.MessageDirection.serverToClient,t.type=new K.ProtocolNotificationType(t.method)})(Vv||(w.PublishDiagnosticsNotification=Vv={}));var Gv;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Gv||(w.CompletionTriggerKind=Gv={}));var Qv;(function(t){t.method="textDocument/completion",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(Qv||(w.CompletionRequest=Qv={}));var Jv;(function(t){t.method="completionItem/resolve",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(Jv||(w.CompletionResolveRequest=Jv={}));var Xv;(function(t){t.method="textDocument/hover",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(Xv||(w.HoverRequest=Xv={}));var Yv;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(Yv||(w.SignatureHelpTriggerKind=Yv={}));var Kv;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(Kv||(w.SignatureHelpRequest=Kv={}));var Zv;(function(t){t.method="textDocument/definition",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(Zv||(w.DefinitionRequest=Zv={}));var ey;(function(t){t.method="textDocument/references",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(ey||(w.ReferencesRequest=ey={}));var ty;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(ty||(w.DocumentHighlightRequest=ty={}));var ny;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(ny||(w.DocumentSymbolRequest=ny={}));var ry;(function(t){t.method="textDocument/codeAction",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(ry||(w.CodeActionRequest=ry={}));var iy;(function(t){t.method="codeAction/resolve",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(iy||(w.CodeActionResolveRequest=iy={}));var oy;(function(t){t.method="workspace/symbol",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(oy||(w.WorkspaceSymbolRequest=oy={}));var sy;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(sy||(w.WorkspaceSymbolResolveRequest=sy={}));var ay;(function(t){t.method="textDocument/codeLens",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(ay||(w.CodeLensRequest=ay={}));var cy;(function(t){t.method="codeLens/resolve",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(cy||(w.CodeLensResolveRequest=cy={}));var uy;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=K.MessageDirection.serverToClient,t.type=new K.ProtocolRequestType0(t.method)})(uy||(w.CodeLensRefreshRequest=uy={}));var ly;(function(t){t.method="textDocument/documentLink",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(ly||(w.DocumentLinkRequest=ly={}));var dy;(function(t){t.method="documentLink/resolve",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(dy||(w.DocumentLinkResolveRequest=dy={}));var fy;(function(t){t.method="textDocument/formatting",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(fy||(w.DocumentFormattingRequest=fy={}));var hy;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(hy||(w.DocumentRangeFormattingRequest=hy={}));var gy;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(gy||(w.DocumentRangesFormattingRequest=gy={}));var py;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(py||(w.DocumentOnTypeFormattingRequest=py={}));var my;(function(t){t.Identifier=1})(my||(w.PrepareSupportDefaultBehavior=my={}));var by;(function(t){t.method="textDocument/rename",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(by||(w.RenameRequest=by={}));var _y;(function(t){t.method="textDocument/prepareRename",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(_y||(w.PrepareRenameRequest=_y={}));var vy;(function(t){t.method="workspace/executeCommand",t.messageDirection=K.MessageDirection.clientToServer,t.type=new K.ProtocolRequestType(t.method)})(vy||(w.ExecuteCommandRequest=vy={}));var yy;(function(t){t.method="workspace/applyEdit",t.messageDirection=K.MessageDirection.serverToClient,t.type=new K.ProtocolRequestType("workspace/applyEdit")})(yy||(w.ApplyWorkspaceEditRequest=yy={}))});var Ry=re(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});wc.createProtocolConnection=void 0;var ky=Di();function XI(t,e,n,i){return ky.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,ky.createMessageConnection)(t,e,n,i)}wc.createProtocolConnection=XI});var Dy=re(fn=>{"use strict";var YI=fn&&fn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Pc=fn&&fn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&YI(e,t,n)};Object.defineProperty(fn,"__esModule",{value:!0});fn.LSPErrorCodes=fn.createProtocolConnection=void 0;Pc(Di(),fn);Pc(oc(),fn);Pc(ft(),fn);Pc(Cy(),fn);var KI=Ry();Object.defineProperty(fn,"createProtocolConnection",{enumerable:!0,get:function(){return KI.createProtocolConnection}});var Ty;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Ty||(fn.LSPErrorCodes=Ty={}))});var Ct=re(mr=>{"use strict";var ZI=mr&&mr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Iy=mr&&mr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&ZI(e,t,n)};Object.defineProperty(mr,"__esModule",{value:!0});mr.createProtocolConnection=void 0;var eE=Tf();Iy(Tf(),mr);Iy(Dy(),mr);function tE(t,e,n,i){return(0,eE.createMessageConnection)(t,e,n,i)}mr.createProtocolConnection=tE});var Hf=re(Bn=>{"use strict";Object.defineProperty(Bn,"__esModule",{value:!0});Bn.generateUuid=Bn.parse=Bn.isUUID=Bn.v4=Bn.empty=void 0;var hs=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},gs=class t extends hs{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};gs._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];gs._timeHighBits=["8","9","a","b"];Bn.empty=new hs("00000000-0000-0000-0000-000000000000");function Ey(){return new gs}Bn.v4=Ey;var nE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Fy(t){return nE.test(t)}Bn.isUUID=Fy;function rE(t){if(!Fy(t))throw new Error("invalid uuid");return new hs(t)}Bn.parse=rE;function iE(){return Ey().asHex()}Bn.generateUuid=iE});var My=re(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.attachPartialResult=ai.ProgressFeature=ai.attachWorkDone=void 0;var si=Ct(),oE=Hf(),Ei=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(si.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(si.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(si.WorkDoneProgress.type,this._token,{kind:"end"})}};Ei.Instances=new Map;var xc=class extends Ei{constructor(e,n){super(e,n),this._source=new si.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},ps=class{constructor(){}begin(){}report(){}done(){}},Sc=class extends ps{constructor(){super(),this._source=new si.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function sE(t,e){if(e===void 0||e.workDoneToken===void 0)return new ps;let n=e.workDoneToken;return delete e.workDoneToken,new Ei(t,n)}ai.attachWorkDone=sE;var aE=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(si.WorkDoneProgressCancelNotification.type,n=>{let i=Ei.Instances.get(n.token);(i instanceof xc||i instanceof Sc)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new ps:new Ei(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,oE.generateUuid)();return this.connection.sendRequest(si.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new xc(this.connection,e))}else return Promise.resolve(new Sc)}};ai.ProgressFeature=aE;var Vf;(function(t){t.type=new si.ProgressType})(Vf||(Vf={}));var Gf=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Vf.type,this._token,e)}};function cE(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Gf(t,n)}ai.attachPartialResult=cE});var Ay=re(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.ConfigurationFeature=void 0;var uE=Ct(),lE=qa(),dE=t=>class extends t{getConfiguration(e){return e?lE.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(uE.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};Cc.ConfigurationFeature=dE});var Ny=re(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});Rc.WorkspaceFoldersFeature=void 0;var kc=Ct(),fE=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new kc.Emitter,this.connection.onNotification(kc.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(kc.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(kc.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};Rc.WorkspaceFoldersFeature=fE});var qy=re(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.CallHierarchyFeature=void 0;var Qf=Ct(),hE=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Qf.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Qf.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Qf.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Tc.CallHierarchyFeature=hE});var Xf=re(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.SemanticTokensBuilder=ci.SemanticTokensDiff=ci.SemanticTokensFeature=void 0;var Dc=Ct(),gE=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(Dc.SemanticTokensRefreshRequest.type),on:e=>{let n=Dc.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=Dc.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=Dc.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};ci.SemanticTokensFeature=gE;var Ic=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(h-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=h,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new Ic(this._prevData,this._data).computeDiff()}:this.build()}};ci.SemanticTokensBuilder=Jf});var Ly=re(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.ShowDocumentFeature=void 0;var pE=Ct(),mE=t=>class extends t{showDocument(e){return this.connection.sendRequest(pE.ShowDocumentRequest.type,e)}};Ec.ShowDocumentFeature=mE});var Oy=re(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});Fc.FileOperationsFeature=void 0;var yo=Ct(),bE=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(yo.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(yo.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(yo.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(yo.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(yo.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(yo.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};Fc.FileOperationsFeature=bE});var By=re(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});Mc.LinkedEditingRangeFeature=void 0;var _E=Ct(),vE=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(_E.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};Mc.LinkedEditingRangeFeature=vE});var Uy=re(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});Ac.TypeHierarchyFeature=void 0;var Yf=Ct(),yE=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Yf.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Yf.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Yf.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Ac.TypeHierarchyFeature=yE});var Wy=re(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});Nc.InlineValueFeature=void 0;var $y=Ct(),wE=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest($y.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest($y.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Nc.InlineValueFeature=wE});var zy=re(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});qc.FoldingRangeFeature=void 0;var jy=Ct(),PE=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(jy.FoldingRangeRefreshRequest.type),on:e=>{let n=jy.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};qc.FoldingRangeFeature=PE});var Hy=re(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});Lc.InlayHintFeature=void 0;var Kf=Ct(),xE=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Kf.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Kf.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Kf.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};Lc.InlayHintFeature=xE});var Vy=re(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});Oc.DiagnosticFeature=void 0;var ms=Ct(),SE=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(ms.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(ms.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(ms.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(ms.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(ms.WorkspaceDiagnosticRequest.partialResult,n)))}}};Oc.DiagnosticFeature=SE});var eh=re(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.TextDocuments=void 0;var Fi=Ct(),Zf=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new Fi.Emitter,this._onDidOpen=new Fi.Emitter,this._onDidClose=new Fi.Emitter,this._onDidSave=new Fi.Emitter,this._onWillSave=new Fi.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=Fi.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let h=this._syncedDocuments.get(s.uri);h!==void 0&&(h=this._configuration.update(h,c,u),this._syncedDocuments.set(s.uri,h),this._onDidChangeContent.fire(Object.freeze({document:h})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),Fi.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};Bc.TextDocuments=Zf});var nh=re(wo=>{"use strict";Object.defineProperty(wo,"__esModule",{value:!0});wo.NotebookDocuments=wo.NotebookSyncFeature=void 0;var Un=Ct(),Gy=eh(),CE=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Un.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Un.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Un.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Un.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};wo.NotebookSyncFeature=CE;var Uc=class t{onDidOpenTextDocument(e){return this.openHandler=e,Un.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Un.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Un.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};Uc.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var th=class{constructor(e){e instanceof Gy.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new Gy.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Un.Emitter,this._onDidChange=new Un.Emitter,this._onDidSave=new Un.Emitter,this._onDidClose=new Un.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new Uc,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,h=!1,g=s.change;g.metadata!==void 0&&(h=!0,c.metadata=g.metadata);let b=[],y=[],T=[],F=[];if(g.cells!==void 0){let X=g.cells;if(X.structure!==void 0){let D=X.structure.array;if(c.cells.splice(D.start,D.deleteCount,...D.cells!==void 0?D.cells:[]),X.structure.didOpen!==void 0)for(let x of X.structure.didOpen)n.openTextDocument({textDocument:x}),b.push(x.uri);if(X.structure.didClose)for(let x of X.structure.didClose)n.closeTextDocument({textDocument:x}),y.push(x.uri)}if(X.data!==void 0){let D=new Map(X.data.map(x=>[x.document,x]));for(let x=0;x<=c.cells.length;x++){let O=D.get(c.cells[x].document);if(O!==void 0){let te=c.cells.splice(x,1,O);if(T.push({old:te[0],new:O}),D.delete(O.document),D.size===0)break}}}if(X.textContent!==void 0)for(let D of X.textContent)n.changeTextDocument({textDocument:D.document,contentChanges:D.changes}),F.push(D.document.uri)}this.updateCellMap(c);let E={notebookDocument:c};h&&(E.metadata={old:u,new:c.metadata});let L=[];for(let X of b)L.push(this.getNotebookCell(X));let B=[];for(let X of y)B.push(this.getNotebookCell(X));let $=[];for(let X of F)$.push(this.getNotebookCell(X));(L.length>0||B.length>0||T.length>0||$.length>0)&&(E.cells={added:L,removed:B,changed:{data:T,textContent:$}}),(E.metadata!==void 0||E.cells!==void 0)&&this._onDidChange.fire(E)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Un.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};wo.NotebookDocuments=th});var Qy=re($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});$c.MonikerFeature=void 0;var kE=Ct(),RE=t=>class extends t{get moniker(){return{on:e=>{let n=kE.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};$c.MonikerFeature=RE});var ch=re($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=Ct(),$n=qa(),ih=Hf(),ye=My(),TE=Ay(),DE=Ny(),IE=qy(),EE=Xf(),FE=Ly(),ME=Oy(),AE=By(),NE=Uy(),qE=Wy(),LE=zy(),OE=Hy(),BE=Vy(),UE=nh(),$E=Qy();function rh(t){if(t!==null)return t}var oh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=oh;var Wc=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},sh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(rh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(rh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(rh)}},Jy=(0,FE.ShowDocumentFeature)((0,ye.ProgressFeature)(sh)),Xy;(function(t){function e(){return new jc}t.create=e})(Xy||($e.BulkRegistration=Xy={}));var jc=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=$n.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=ih.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},Yy;(function(t){function e(){return new bs(void 0,[])}t.create=e})(Yy||($e.BulkUnregistration=Yy={}));var bs=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=$n.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},zc=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof jc?this.registerMany(e):e instanceof bs?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=$n.string(n)?n:n.method,c=ih.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(h=>(e.add({id:c,method:s}),e),h=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(h)))}registerSingle2(e,n){let i=$n.string(e)?e:e.method,s=ih.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new bs(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},ah=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},Ky=(0,ME.FileOperationsFeature)((0,DE.WorkspaceFoldersFeature)((0,TE.ConfigurationFeature)(ah))),Hc=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Vc=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Gc=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,ye.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,ye.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Gc;var Zy=(0,LE.FoldingRangeFeature)((0,$E.MonikerFeature)((0,BE.DiagnosticFeature)((0,OE.InlayHintFeature)((0,qE.InlineValueFeature)((0,NE.TypeHierarchyFeature)((0,AE.LinkedEditingRangeFeature)((0,EE.SemanticTokensFeature)((0,IE.CallHierarchyFeature)(Gc))))))))),Qc=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,ye.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,ye.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Qc;var ew=(0,UE.NotebookSyncFeature)(Qc);function tw(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=tw;function nw(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=nw;function rw(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=rw;function iw(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=iw;function ow(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=ow;function sw(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=sw;function aw(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=aw;function cw(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=cw;function WE(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,tw),tracer:n(t.tracer,e.tracer,rw),telemetry:n(t.telemetry,e.telemetry,nw),client:n(t.client,e.client,iw),window:n(t.window,e.window,ow),workspace:n(t.workspace,e.workspace,sw),languages:n(t.languages,e.languages,aw),notebooks:n(t.notebooks,e.notebooks,cw)}}$e.combineFeatures=WE;function jE(t,e,n){let i=n&&n.console?new(n.console(Wc)):new Wc,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(Hc)):new Hc,u=n&&n.telemetry?new(n.telemetry(Vc)):new Vc,h=n&&n.client?new(n.client(zc)):new zc,g=n&&n.window?new(n.window(Jy)):new Jy,b=n&&n.workspace?new(n.workspace(Ky)):new Ky,y=n&&n.languages?new(n.languages(Zy)):new Zy,T=n&&n.notebooks?new(n.notebooks(ew)):new ew,F=[i,c,u,h,g,b,y,T];function E(D){return D instanceof Promise?D:$n.thenable(D)?new Promise((x,O)=>{D.then(te=>x(te),te=>O(te))}):Promise.resolve(D)}let L,B,$,X={listen:()=>s.listen(),sendRequest:(D,...x)=>s.sendRequest($n.string(D)?D:D.method,...x),onRequest:(D,x)=>s.onRequest(D,x),sendNotification:(D,x)=>{let O=$n.string(D)?D:D.method;return s.sendNotification(O,x)},onNotification:(D,x)=>s.onNotification(D,x),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:D=>(B=D,{dispose:()=>{B=void 0}}),onInitialized:D=>s.onNotification(ee.InitializedNotification.type,D),onShutdown:D=>(L=D,{dispose:()=>{L=void 0}}),onExit:D=>($=D,{dispose:()=>{$=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return h},get window(){return g},get workspace(){return b},get languages(){return y},get notebooks(){return T},onDidChangeConfiguration:D=>s.onNotification(ee.DidChangeConfigurationNotification.type,D),onDidChangeWatchedFiles:D=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,D),__textDocumentSync:void 0,onDidOpenTextDocument:D=>s.onNotification(ee.DidOpenTextDocumentNotification.type,D),onDidChangeTextDocument:D=>s.onNotification(ee.DidChangeTextDocumentNotification.type,D),onDidCloseTextDocument:D=>s.onNotification(ee.DidCloseTextDocumentNotification.type,D),onWillSaveTextDocument:D=>s.onNotification(ee.WillSaveTextDocumentNotification.type,D),onWillSaveTextDocumentWaitUntil:D=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,D),onDidSaveTextDocument:D=>s.onNotification(ee.DidSaveTextDocumentNotification.type,D),sendDiagnostics:D=>s.sendNotification(ee.PublishDiagnosticsNotification.type,D),onHover:D=>s.onRequest(ee.HoverRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),void 0)),onCompletion:D=>s.onRequest(ee.CompletionRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onCompletionResolve:D=>s.onRequest(ee.CompletionResolveRequest.type,D),onSignatureHelp:D=>s.onRequest(ee.SignatureHelpRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),void 0)),onDeclaration:D=>s.onRequest(ee.DeclarationRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onDefinition:D=>s.onRequest(ee.DefinitionRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onTypeDefinition:D=>s.onRequest(ee.TypeDefinitionRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onImplementation:D=>s.onRequest(ee.ImplementationRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onReferences:D=>s.onRequest(ee.ReferencesRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onDocumentHighlight:D=>s.onRequest(ee.DocumentHighlightRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onDocumentSymbol:D=>s.onRequest(ee.DocumentSymbolRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onWorkspaceSymbol:D=>s.onRequest(ee.WorkspaceSymbolRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onWorkspaceSymbolResolve:D=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,D),onCodeAction:D=>s.onRequest(ee.CodeActionRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onCodeActionResolve:D=>s.onRequest(ee.CodeActionResolveRequest.type,(x,O)=>D(x,O)),onCodeLens:D=>s.onRequest(ee.CodeLensRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onCodeLensResolve:D=>s.onRequest(ee.CodeLensResolveRequest.type,(x,O)=>D(x,O)),onDocumentFormatting:D=>s.onRequest(ee.DocumentFormattingRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),void 0)),onDocumentRangeFormatting:D=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),void 0)),onDocumentOnTypeFormatting:D=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(x,O)=>D(x,O)),onRenameRequest:D=>s.onRequest(ee.RenameRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),void 0)),onPrepareRename:D=>s.onRequest(ee.PrepareRenameRequest.type,(x,O)=>D(x,O)),onDocumentLinks:D=>s.onRequest(ee.DocumentLinkRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onDocumentLinkResolve:D=>s.onRequest(ee.DocumentLinkResolveRequest.type,(x,O)=>D(x,O)),onDocumentColor:D=>s.onRequest(ee.DocumentColorRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onColorPresentation:D=>s.onRequest(ee.ColorPresentationRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onFoldingRanges:D=>s.onRequest(ee.FoldingRangeRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onSelectionRanges:D=>s.onRequest(ee.SelectionRangeRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),(0,ye.attachPartialResult)(s,x))),onExecuteCommand:D=>s.onRequest(ee.ExecuteCommandRequest.type,(x,O)=>D(x,O,(0,ye.attachWorkDone)(s,x),void 0)),dispose:()=>s.dispose()};for(let D of F)D.attach(X);return s.onRequest(ee.InitializeRequest.type,D=>{e.initialize(D),$n.string(D.trace)&&(c.trace=ee.Trace.fromString(D.trace));for(let x of F)x.initialize(D.capabilities);if(B){let x=B(D,new ee.CancellationTokenSource().token,(0,ye.attachWorkDone)(s,D),void 0);return E(x).then(O=>{if(O instanceof ee.ResponseError)return O;let te=O;te||(te={capabilities:{}});let _e=te.capabilities;_e||(_e={},te.capabilities=_e),_e.textDocumentSync===void 0||_e.textDocumentSync===null?_e.textDocumentSync=$n.number(X.__textDocumentSync)?X.__textDocumentSync:ee.TextDocumentSyncKind.None:!$n.number(_e.textDocumentSync)&&!$n.number(_e.textDocumentSync.change)&&(_e.textDocumentSync.change=$n.number(X.__textDocumentSync)?X.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of F)Be.fillServerCapabilities(_e);return te})}else{let x={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let O of F)O.fillServerCapabilities(x.capabilities);return x}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,L)return L(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{$&&$()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,D=>{c.trace=ee.Trace.fromString(D.value)}),X}$e.createConnection=jE});var uw=re(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.resolveModulePath=hn.FileSystem=hn.resolveGlobalYarnPath=hn.resolveGlobalNodePath=hn.resolve=hn.uriToFilePath=void 0;var zE=require("url"),Zn=require("path"),uh=require("fs"),hh=require("child_process");function HE(t){let e=zE.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return Zn.normalize(n.join("/"))}hn.uriToFilePath=HE;function lh(){return process.platform==="win32"}function Jc(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,h)=>{let g=process.env,b=Object.create(null);Object.keys(g).forEach(y=>b[y]=g[y]),e&&uh.existsSync(e)&&(b[s]?b[s]=e+Zn.delimiter+b[s]:b[s]=e,i&&i(`NODE_PATH value is: ${b[s]}`)),b.ELECTRON_RUN_AS_NODE="1";try{let y=(0,hh.fork)("",[],{cwd:n,env:b,execArgv:["-e",c]});if(y.pid===void 0){h(new Error(`Starting process to resolve node module ${t} failed`));return}y.on("error",F=>{h(F)}),y.on("message",F=>{F.c==="r"&&(y.send({c:"e"}),F.s?u(F.r):h(new Error(`Failed to resolve module: ${t}`)))});let T={c:"rs",a:t};y.send(T)}catch(y){h(y)}})}hn.resolve=Jc;function dh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};lh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,hh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?lh()?Zn.join(u,"node_modules"):Zn.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}hn.resolveGlobalNodePath=dh;function VE(t){let e="yarn",n={encoding:"utf8"};lh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,hh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let h of u)try{let g=JSON.parse(h);if(g.type==="log")return Zn.join(g.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}hn.resolveGlobalYarnPath=VE;var fh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!uh.existsSync(__filename.toUpperCase())||!uh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?Zn.normalize(c).indexOf(Zn.normalize(s))===0:Zn.normalize(c).toLowerCase().indexOf(Zn.normalize(s).toLowerCase())===0}t.isParent=i})(fh||(hn.FileSystem=fh={}));function GE(t,e,n,i){return n?(Zn.isAbsolute(n)||(n=Zn.join(t,n)),Jc(e,n,n,i).then(s=>fh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Jc(e,dh(i),t,i))):Jc(e,dh(i),t,i)}hn.resolveModulePath=GE});var gh=re((NA,lw)=>{"use strict";lw.exports=Ct()});var dw=re(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.InlineCompletionFeature=void 0;var QE=Ct(),JE=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(QE.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Xc.InlineCompletionFeature=JE});var gw=re(Gt=>{"use strict";var XE=Gt&&Gt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),hw=Gt&&Gt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&XE(e,t,n)};Object.defineProperty(Gt,"__esModule",{value:!0});Gt.ProposedFeatures=Gt.NotebookDocuments=Gt.TextDocuments=Gt.SemanticTokensBuilder=void 0;var YE=Xf();Object.defineProperty(Gt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return YE.SemanticTokensBuilder}});var KE=dw();hw(Ct(),Gt);var ZE=eh();Object.defineProperty(Gt,"TextDocuments",{enumerable:!0,get:function(){return ZE.TextDocuments}});var eF=nh();Object.defineProperty(Gt,"NotebookDocuments",{enumerable:!0,get:function(){return eF.NotebookDocuments}});hw(ch(),Gt);var fw;(function(t){t.all={__brand:"features",languages:KE.InlineCompletionFeature}})(fw||(Gt.ProposedFeatures=fw={}))});var yw=re(Wn=>{"use strict";var tF=Wn&&Wn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),_w=Wn&&Wn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&tF(e,t,n)};Object.defineProperty(Wn,"__esModule",{value:!0});Wn.createConnection=Wn.Files=void 0;var pw=require("node:util"),ph=qa(),nF=ch(),_s=uw(),Mi=gh();_w(gh(),Wn);_w(gw(),Wn);var mw;(function(t){t.uriToFilePath=_s.uriToFilePath,t.resolveGlobalNodePath=_s.resolveGlobalNodePath,t.resolveGlobalYarnPath=_s.resolveGlobalYarnPath,t.resolve=_s.resolve,t.resolveModulePath=_s.resolveModulePath})(mw||(Wn.Files=mw={}));var bw;function Yc(){if(bw!==void 0)try{bw.end()}catch{}}var Po=!1,vw;function rF(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(vw=setInterval(()=>{try{process.kill(i,0)}catch{Yc(),process.exit(Po?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;ph.number(e)&&vw===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(Po?0:1)}},3e3)},get shutdownReceived(){return Po},set shutdownReceived(t){Po=t},exit:t=>{Yc(),process.exit(t)}};function oF(t,e,n,i){let s,c,u,h;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),Mi.ConnectionStrategy.is(t)||Mi.ConnectionOptions.is(t)?h=t:(c=t,u=e,h=n),sF(c,u,h,s)}Wn.createConnection=oF;function sF(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let g,b,y=process.argv.slice(2);for(let T=0;T{Yc(),process.exit(Po?0:1)}),g.on("close",()=>{Yc(),process.exit(Po?0:1)})}let h=g=>{let b=(0,Mi.createProtocolConnection)(t,e,g,n);return s&&aF(g),b};return(0,nF.createConnection)(h,iF,i)}function aF(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,pw.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...h]=c;t.error(`Assertion failed: ${u} ${e(h)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,pw.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} -${c}`)},console.warn=function(...s){t.warn(e(s))}}});var Pw=re((UA,ww)=>{"use strict";ww.exports=yw()});var Tw=re((Rw,tu)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof tu=="object"&&tu.exports?tu.exports=e():t.log=e()})(Rw,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(L,B){var $=L[B];if(typeof $.bind=="function")return $.bind(L);try{return Function.prototype.bind.call($,L)}catch{return function(){return Function.prototype.apply.apply($,[L,arguments])}}}function h(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function g(L){return L==="debug"&&(L="log"),typeof console===e?!1:L==="trace"&&n?h:console[L]!==void 0?u(console,L):console.log!==void 0?u(console,"log"):t}function b(){for(var L=this.getLevel(),B=0;B=0&&Y<=$.levels.SILENT)return Y;throw new TypeError("log.setLevel() called with invalid level: "+we)}$.name=L,$.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},$.methodFactory=B||T,$.getLevel=function(){return x??D??X},$.setLevel=function(we,Y){return x=Ye(we),Y!==!1&&te(x),b.call($)},$.setDefaultLevel=function(we){D=Ye(we),_e()||$.setLevel(we,!1)},$.resetLevel=function(){x=null,Be(),b.call($)},$.enableAll=function(we){$.setLevel($.levels.TRACE,we)},$.disableAll=function(we){$.setLevel($.levels.SILENT,we)},$.rebuild=function(){if(c!==$&&(X=Ye(c.getLevel())),b.call($),c===$)for(var we in s)s[we].rebuild()},X=Ye(c?c.getLevel():"WARN");var kt=_e();kt!=null&&(x=Ye(kt)),b.call($)}c=new F,c.getLogger=function(B){if(typeof B!="symbol"&&typeof B!="string"||B==="")throw new TypeError("You must supply a name when creating a logger.");var $=s[B];return $||($=s[B]=new F(B,c.methodFactory)),$};var E=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=E),c},c.getLoggers=function(){return s},c.default=c,c})});var bu=re((Fo,Rs)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",h=500,g="__lodash_placeholder__",b=1,y=2,T=4,F=1,E=2,L=1,B=2,$=4,X=8,D=16,x=32,O=64,te=128,_e=256,Be=512,Ye=30,kt="...",we=800,Y=16,z=1,ae=2,ie=3,ke=1/0,ge=9007199254740991,pe=17976931348623157e292,wt=NaN,We=4294967295,je=We-1,pn=We>>>1,_r=[["ary",te],["bind",L],["bindKey",B],["curry",X],["curryRight",D],["flip",Be],["partial",x],["partialRight",O],["rearg",_e]],zn="[object Arguments]",sr="[object Array]",gi="[object AsyncFunction]",ar="[object Boolean]",cr="[object Date]",qi="[object DOMException]",vr="[object Error]",yr="[object Function]",wr="[object GeneratorFunction]",gt="[object Map]",ur="[object Number]",Li="[object Null]",Lt="[object Object]",pi="[object Promise]",Br="[object Proxy]",lr="[object RegExp]",Pt="[object Set]",nn="[object String]",Pr="[object Symbol]",Oi="[object Undefined]",$t="[object WeakMap]",mi="[object WeakSet]",Hn="[object ArrayBuffer]",mn="[object DataView]",xr="[object Float32Array]",bn="[object Float64Array]",S="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",oe="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Qe="[object Uint32Array]",et=/\b__p \+= '';/g,Re=/\b(__p \+=) '' \+/g,Je=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ae=/&(?:amp|lt|gt|quot|#39);/g,it=/[&<>"']/g,Rt=RegExp(Ae.source),Xt=RegExp(it.source),Bi=/<%-([\s\S]+?)%>/g,$s=/<%([\s\S]+?)%>/g,Wo=/<%=([\s\S]+?)%>/g,Ws=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,js=/^\w*$/,ol=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,A=/[\\^$.*+?()[\]{}|]/g,p=RegExp(A.source),C=/^\s+/,R=/\s/,v=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,f=/\{\n\/\* \[wrapped with (.+)\] \*/,N=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,lt=/\\(\\)?/g,Ke=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,rn=/\w*$/,_n=/^[-+]0x[0-9a-f]+$/i,Vn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Ur=/^0o[0-7]+$/i,Ui=/^(?:0|[1-9]\d*)$/,zs=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Hs=/($^)/,Ex=/['\n\r\u2028\u2029\\]/g,Vs="\\ud800-\\udfff",Fx="\\u0300-\\u036f",Mx="\\ufe20-\\ufe2f",Ax="\\u20d0-\\u20ff",Sg=Fx+Mx+Ax,Cg="\\u2700-\\u27bf",kg="a-z\\xdf-\\xf6\\xf8-\\xff",Nx="\\xac\\xb1\\xd7\\xf7",qx="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Lx="\\u2000-\\u206f",Ox=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Rg="A-Z\\xc0-\\xd6\\xd8-\\xde",Tg="\\ufe0e\\ufe0f",Dg=Nx+qx+Lx+Ox,sl="['\u2019]",Bx="["+Vs+"]",Ig="["+Dg+"]",Gs="["+Sg+"]",Eg="\\d+",Ux="["+Cg+"]",Fg="["+kg+"]",Mg="[^"+Vs+Dg+Eg+Cg+kg+Rg+"]",al="\\ud83c[\\udffb-\\udfff]",$x="(?:"+Gs+"|"+al+")",Ag="[^"+Vs+"]",cl="(?:\\ud83c[\\udde6-\\uddff]){2}",ul="[\\ud800-\\udbff][\\udc00-\\udfff]",$i="["+Rg+"]",Ng="\\u200d",qg="(?:"+Fg+"|"+Mg+")",Wx="(?:"+$i+"|"+Mg+")",Lg="(?:"+sl+"(?:d|ll|m|re|s|t|ve))?",Og="(?:"+sl+"(?:D|LL|M|RE|S|T|VE))?",Bg=$x+"?",Ug="["+Tg+"]?",jx="(?:"+Ng+"(?:"+[Ag,cl,ul].join("|")+")"+Ug+Bg+")*",zx="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Hx="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",$g=Ug+Bg+jx,Vx="(?:"+[Ux,cl,ul].join("|")+")"+$g,Gx="(?:"+[Ag+Gs+"?",Gs,cl,ul,Bx].join("|")+")",Qx=RegExp(sl,"g"),Jx=RegExp(Gs,"g"),ll=RegExp(al+"(?="+al+")|"+Gx+$g,"g"),Xx=RegExp([$i+"?"+Fg+"+"+Lg+"(?="+[Ig,$i,"$"].join("|")+")",Wx+"+"+Og+"(?="+[Ig,$i+qg,"$"].join("|")+")",$i+"?"+qg+"+"+Lg,$i+"+"+Og,Hx,zx,Eg,Vx].join("|"),"g"),Yx=RegExp("["+Ng+Vs+Sg+Tg+"]"),Kx=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Zx=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],eS=-1,ot={};ot[xr]=ot[bn]=ot[S]=ot[H]=ot[Z]=ot[oe]=ot[Ue]=ot[Le]=ot[Qe]=!0,ot[zn]=ot[sr]=ot[Hn]=ot[ar]=ot[mn]=ot[cr]=ot[vr]=ot[yr]=ot[gt]=ot[ur]=ot[Lt]=ot[lr]=ot[Pt]=ot[nn]=ot[$t]=!1;var tt={};tt[zn]=tt[sr]=tt[Hn]=tt[mn]=tt[ar]=tt[cr]=tt[xr]=tt[bn]=tt[S]=tt[H]=tt[Z]=tt[gt]=tt[ur]=tt[Lt]=tt[lr]=tt[Pt]=tt[nn]=tt[Pr]=tt[oe]=tt[Ue]=tt[Le]=tt[Qe]=!0,tt[vr]=tt[yr]=tt[$t]=!1;var tS={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},nS={"&":"&","<":"<",">":">",'"':""","'":"'"},rS={"&":"&","<":"<",">":">",""":'"',"'":"'"},iS={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},oS=parseFloat,sS=parseInt,Wg=typeof global=="object"&&global&&global.Object===Object&&global,aS=typeof self=="object"&&self&&self.Object===Object&&self,At=Wg||aS||Function("return this")(),dl=typeof Fo=="object"&&Fo&&!Fo.nodeType&&Fo,bi=dl&&typeof Rs=="object"&&Rs&&!Rs.nodeType&&Rs,jg=bi&&bi.exports===dl,fl=jg&&Wg.process,Dn=function(){try{var I=bi&&bi.require&&bi.require("util").types;return I||fl&&fl.binding&&fl.binding("util")}catch{}}(),zg=Dn&&Dn.isArrayBuffer,Hg=Dn&&Dn.isDate,Vg=Dn&&Dn.isMap,Gg=Dn&&Dn.isRegExp,Qg=Dn&&Dn.isSet,Jg=Dn&&Dn.isTypedArray;function vn(I,W,U){switch(U.length){case 0:return I.call(W);case 1:return I.call(W,U[0]);case 2:return I.call(W,U[0],U[1]);case 3:return I.call(W,U[0],U[1],U[2])}return I.apply(W,U)}function cS(I,W,U,se){for(var ve=-1,ze=I==null?0:I.length;++ve-1}function hl(I,W,U){for(var se=-1,ve=I==null?0:I.length;++se-1;);return U}function rp(I,W){for(var U=I.length;U--&&Wi(W,I[U],0)>-1;);return U}function bS(I,W){for(var U=I.length,se=0;U--;)I[U]===W&&++se;return se}var _S=bl(tS),vS=bl(nS);function yS(I){return"\\"+iS[I]}function wS(I,W){return I==null?t:I[W]}function ji(I){return Yx.test(I)}function PS(I){return Kx.test(I)}function xS(I){for(var W,U=[];!(W=I.next()).done;)U.push(W.value);return U}function wl(I){var W=-1,U=Array(I.size);return I.forEach(function(se,ve){U[++W]=[ve,se]}),U}function ip(I,W){return function(U){return I(W(U))}}function jr(I,W){for(var U=-1,se=I.length,ve=0,ze=[];++U-1}function lC(r,o){var a=this.__data__,l=da(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}Sr.prototype.clear=sC,Sr.prototype.delete=aC,Sr.prototype.get=cC,Sr.prototype.has=uC,Sr.prototype.set=lC;function Cr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Mn(r,o,a,l,d,_){var P,k=o&b,M=o&y,V=o&T;if(a&&(P=d?a(r,l,d,_):a(r)),P!==t)return P;if(!pt(r))return r;var Q=Pe(r);if(Q){if(P=gk(r),!k)return on(r,P)}else{var J=jt(r),ne=J==yr||J==wr;if(Xr(r))return Up(r,k);if(J==Lt||J==zn||ne&&!d){if(P=M||ne?{}:om(r),!k)return M?rk(r,kC(P,r)):nk(r,mp(P,r))}else{if(!tt[J])return d?r:{};P=pk(r,J,k)}}_||(_=new Qn);var ce=_.get(r);if(ce)return ce;_.set(r,P),Am(r)?r.forEach(function(fe){P.add(Mn(fe,o,a,fe,r,_))}):Fm(r)&&r.forEach(function(fe,Ee){P.set(Ee,Mn(fe,o,a,Ee,r,_))});var de=V?M?Gl:Vl:M?an:Nt,Ce=Q?t:de(r);return In(Ce||r,function(fe,Ee){Ce&&(Ee=fe,fe=r[Ee]),Jo(P,Ee,Mn(fe,o,a,Ee,r,_))}),P}function RC(r){var o=Nt(r);return function(a){return bp(a,r,o)}}function bp(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ze(r);l--;){var d=a[l],_=o[d],P=r[d];if(P===t&&!(d in r)||!_(P))return!1}return!0}function _p(r,o,a){if(typeof r!="function")throw new En(s);return ns(function(){r.apply(t,a)},o)}function Xo(r,o,a,l){var d=-1,_=Qs,P=!0,k=r.length,M=[],V=o.length;if(!k)return M;a&&(o=dt(o,yn(a))),l?(_=hl,P=!1):o.length>=n&&(_=jo,P=!1,o=new yi(o));e:for(;++dd?0:d+a),l=l===t||l>d?d:Se(l),l<0&&(l+=d),l=a>l?0:qm(l);a0&&a(k)?o>1?Ot(k,o-1,a,l,d):Wr(d,k):l||(d[d.length]=k)}return d}var Tl=Vp(),wp=Vp(!0);function dr(r,o){return r&&Tl(r,o,Nt)}function Dl(r,o){return r&&wp(r,o,Nt)}function ha(r,o){return $r(o,function(a){return Ir(r[a])})}function Pi(r,o){o=Qr(o,r);for(var a=0,l=o.length;r!=null&&ao}function IC(r,o){return r!=null&&Xe.call(r,o)}function EC(r,o){return r!=null&&o in Ze(r)}function FC(r,o,a){return r>=Wt(o,a)&&r=120&&Q.length>=120)?new yi(P&&Q):t}Q=r[0];var J=-1,ne=k[0];e:for(;++J-1;)k!==r&&ia.call(k,M,1),ia.call(r,M,1);return r}function Fp(r,o){for(var a=r?o.length:0,l=a-1;a--;){var d=o[a];if(a==l||d!==_){var _=d;Dr(d)?ia.call(r,d,1):Bl(r,d)}}return r}function ql(r,o){return r+aa(fp()*(o-r+1))}function HC(r,o,a,l){for(var d=-1,_=Ft(sa((o-r)/(a||1)),0),P=U(_);_--;)P[l?_:++d]=r,r+=a;return P}function Ll(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=aa(o/2),o&&(r+=r);while(o);return a}function Te(r,o){return ed(cm(r,o,cn),r+"")}function VC(r){return pp(Zi(r))}function GC(r,o){var a=Zi(r);return Sa(a,wi(o,0,a.length))}function Zo(r,o,a,l){if(!pt(r))return r;o=Qr(o,r);for(var d=-1,_=o.length,P=_-1,k=r;k!=null&&++d<_;){var M=hr(o[d]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(d!=P){var Q=k[M];V=l?l(Q,M,k):t,V===t&&(V=pt(Q)?Q:Dr(o[d+1])?[]:{})}Jo(k,M,V),k=k[M]}return r}var Mp=ca?function(r,o){return ca.set(r,o),r}:cn,QC=oa?function(r,o){return oa(r,"toString",{configurable:!0,enumerable:!1,value:ld(o),writable:!0})}:cn;function JC(r){return Sa(Zi(r))}function An(r,o,a){var l=-1,d=r.length;o<0&&(o=-o>d?0:d+o),a=a>d?d:a,a<0&&(a+=d),d=o>a?0:a-o>>>0,o>>>=0;for(var _=U(d);++l>>1,P=r[_];P!==null&&!Pn(P)&&(a?P<=o:P=n){var V=o?null:ak(r);if(V)return Xs(V);P=!1,d=jo,M=new yi}else M=o?[]:k;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,P&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),k.push(Q)}else d(M,J,a)||(M!==k&&M.push(J),k.push(Q))}return k}function Bl(r,o){return o=Qr(o,r),r=um(r,o),r==null||delete r[hr(Nn(o))]}function qp(r,o,a,l){return Zo(r,o,a(Pi(r,o)),l)}function ma(r,o,a,l){for(var d=r.length,_=l?d:-1;(l?_--:++_=l?r:An(r,o,a)}var Bp=OS||function(r){return At.clearTimeout(r)};function Up(r,o){if(o)return r.slice();var a=r.length,l=ap?ap(a):new r.constructor(a);return r.copy(l),l}function jl(r){var o=new r.constructor(r.byteLength);return new na(o).set(new na(r)),o}function KC(r,o){var a=o?jl(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function ZC(r){var o=new r.constructor(r.source,rn.exec(r));return o.lastIndex=r.lastIndex,o}function ek(r){return Qo?Ze(Qo.call(r)):{}}function $p(r,o){var a=o?jl(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Wp(r,o){if(r!==o){var a=r!==t,l=r===null,d=r===r,_=Pn(r),P=o!==t,k=o===null,M=o===o,V=Pn(o);if(!k&&!V&&!_&&r>o||_&&P&&M&&!k&&!V||l&&P&&M||!a&&M||!d)return 1;if(!l&&!_&&!V&&r=k)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function jp(r,o,a,l){for(var d=-1,_=r.length,P=a.length,k=-1,M=o.length,V=Ft(_-P,0),Q=U(M+V),J=!l;++k1?a[d-1]:t,P=d>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(d--,_):t,P&&Kt(a[0],a[1],P)&&(_=d<3?t:_,d=1),o=Ze(o);++l-1?d[_?o[P]:P]:t}}function Jp(r){return Tr(function(o){var a=o.length,l=a,d=Fn.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new En(s);if(d&&!P&&Pa(_)=="wrapper")var P=new Fn([],!0)}for(l=P?l:a;++l1&&Ne.reverse(),Q&&Mk))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ce=a&E?new yi:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(v,`{ -/* [wrapped with `+o+`] */ -`)}function bk(r){return Pe(r)||Ci(r)||!!(lp&&r&&r[lp])}function Dr(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Ui.test(r))&&r>-1&&r%1==0&&r0){if(++o>=we)return arguments[0]}else o=0;return r.apply(t,arguments)}}function Sa(r,o){var a=-1,l=r.length,d=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,ym(r,a)});function wm(r){var o=m(r);return o.__chain__=!0,o}function TR(r,o){return o(r),r}function Ca(r,o){return o(r)}var DR=Tr(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,d=function(_){return Rl(_,r)};return o>1||this.__actions__.length||!(l instanceof Fe)||!Dr(a)?this.thru(d):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:Ca,args:[d],thisArg:t}),new Fn(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function IR(){return wm(this)}function ER(){return new Fn(this.value(),this.__chain__)}function FR(){this.__values__===t&&(this.__values__=Nm(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function MR(){return this}function AR(r){for(var o,a=this;a instanceof la;){var l=gm(a);l.__index__=0,l.__values__=t,o?d.__wrapped__=l:o=l;var d=l;a=a.__wrapped__}return d.__wrapped__=r,o}function NR(){var r=this.__wrapped__;if(r instanceof Fe){var o=r;return this.__actions__.length&&(o=new Fe(this)),o=o.reverse(),o.__actions__.push({func:Ca,args:[td],thisArg:t}),new Fn(o,this.__chain__)}return this.thru(td)}function qR(){return Lp(this.__wrapped__,this.__actions__)}var LR=ba(function(r,o,a){Xe.call(r,a)?++r[a]:kr(r,a,1)});function OR(r,o,a){var l=Pe(r)?Xg:TC;return a&&Kt(r,o,a)&&(o=t),l(r,le(o,3))}function BR(r,o){var a=Pe(r)?$r:yp;return a(r,le(o,3))}var UR=Qp(pm),$R=Qp(mm);function WR(r,o){return Ot(ka(r,o),1)}function jR(r,o){return Ot(ka(r,o),ke)}function zR(r,o,a){return a=a===t?1:Se(a),Ot(ka(r,o),a)}function Pm(r,o){var a=Pe(r)?In:Vr;return a(r,le(o,3))}function xm(r,o){var a=Pe(r)?uS:vp;return a(r,le(o,3))}var HR=ba(function(r,o,a){Xe.call(r,a)?r[a].push(o):kr(r,a,[o])});function VR(r,o,a,l){r=sn(r)?r:Zi(r),a=a&&!l?Se(a):0;var d=r.length;return a<0&&(a=Ft(d+a,0)),Ea(r)?a<=d&&r.indexOf(o,a)>-1:!!d&&Wi(r,o,a)>-1}var GR=Te(function(r,o,a){var l=-1,d=typeof o=="function",_=sn(r)?U(r.length):[];return Vr(r,function(P){_[++l]=d?vn(o,P,a):Yo(P,o,a)}),_}),QR=ba(function(r,o,a){kr(r,a,o)});function ka(r,o){var a=Pe(r)?dt:kp;return a(r,le(o,3))}function JR(r,o,a,l){return r==null?[]:(Pe(o)||(o=o==null?[]:[o]),a=l?t:a,Pe(a)||(a=a==null?[]:[a]),Ip(r,o,a))}var XR=ba(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function YR(r,o,a){var l=Pe(r)?gl:ep,d=arguments.length<3;return l(r,le(o,4),a,d,Vr)}function KR(r,o,a){var l=Pe(r)?lS:ep,d=arguments.length<3;return l(r,le(o,4),a,d,vp)}function ZR(r,o){var a=Pe(r)?$r:yp;return a(r,Da(le(o,3)))}function e0(r){var o=Pe(r)?pp:VC;return o(r)}function t0(r,o,a){(a?Kt(r,o,a):o===t)?o=1:o=Se(o);var l=Pe(r)?xC:GC;return l(r,o)}function n0(r){var o=Pe(r)?SC:JC;return o(r)}function r0(r){if(r==null)return 0;if(sn(r))return Ea(r)?zi(r):r.length;var o=jt(r);return o==gt||o==Pt?r.size:Ml(r).length}function i0(r,o,a){var l=Pe(r)?pl:XC;return a&&Kt(r,o,a)&&(o=t),l(r,le(o,3))}var o0=Te(function(r,o){if(r==null)return[];var a=o.length;return a>1&&Kt(r,o[0],o[1])?o=[]:a>2&&Kt(o[0],o[1],o[2])&&(o=[o[0]]),Ip(r,Ot(o,1),[])}),Ra=BS||function(){return At.Date.now()};function s0(r,o){if(typeof o!="function")throw new En(s);return r=Se(r),function(){if(--r<1)return o.apply(this,arguments)}}function Sm(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Rr(r,te,t,t,t,t,o)}function Cm(r,o){var a;if(typeof o!="function")throw new En(s);return r=Se(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var rd=Te(function(r,o,a){var l=L;if(a.length){var d=jr(a,Yi(rd));l|=x}return Rr(r,l,o,a,d)}),km=Te(function(r,o,a){var l=L|B;if(a.length){var d=jr(a,Yi(km));l|=x}return Rr(o,l,r,a,d)});function Rm(r,o,a){o=a?t:o;var l=Rr(r,X,t,t,t,t,t,o);return l.placeholder=Rm.placeholder,l}function Tm(r,o,a){o=a?t:o;var l=Rr(r,D,t,t,t,t,t,o);return l.placeholder=Tm.placeholder,l}function Dm(r,o,a){var l,d,_,P,k,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new En(s);o=qn(o)||0,pt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?Ft(qn(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ce(St){var Xn=l,Fr=d;return l=d=t,V=St,P=r.apply(Fr,Xn),P}function de(St){return V=St,k=ns(Ee,o),Q?ce(St):P}function Ce(St){var Xn=St-M,Fr=St-V,Qm=o-Xn;return J?Wt(Qm,_-Fr):Qm}function fe(St){var Xn=St-M,Fr=St-V;return M===t||Xn>=o||Xn<0||J&&Fr>=_}function Ee(){var St=Ra();if(fe(St))return Ne(St);k=ns(Ee,Ce(St))}function Ne(St){return k=t,ne&&l?ce(St):(l=d=t,P)}function xn(){k!==t&&Bp(k),V=0,l=M=d=k=t}function Zt(){return k===t?P:Ne(Ra())}function Sn(){var St=Ra(),Xn=fe(St);if(l=arguments,d=this,M=St,Xn){if(k===t)return de(M);if(J)return Bp(k),k=ns(Ee,o),ce(M)}return k===t&&(k=ns(Ee,o)),P}return Sn.cancel=xn,Sn.flush=Zt,Sn}var a0=Te(function(r,o){return _p(r,1,o)}),c0=Te(function(r,o,a){return _p(r,qn(o)||0,a)});function u0(r){return Rr(r,Be)}function Ta(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new En(s);var a=function(){var l=arguments,d=o?o.apply(this,l):l[0],_=a.cache;if(_.has(d))return _.get(d);var P=r.apply(this,l);return a.cache=_.set(d,P)||_,P};return a.cache=new(Ta.Cache||Cr),a}Ta.Cache=Cr;function Da(r){if(typeof r!="function")throw new En(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function l0(r){return Cm(2,r)}var d0=YC(function(r,o){o=o.length==1&&Pe(o[0])?dt(o[0],yn(le())):dt(Ot(o,1),yn(le()));var a=o.length;return Te(function(l){for(var d=-1,_=Wt(l.length,a);++d<_;)l[d]=o[d].call(this,l[d]);return vn(r,this,l)})}),id=Te(function(r,o){var a=jr(o,Yi(id));return Rr(r,x,t,o,a)}),Im=Te(function(r,o){var a=jr(o,Yi(Im));return Rr(r,O,t,o,a)}),f0=Tr(function(r,o){return Rr(r,_e,t,t,t,o)});function h0(r,o){if(typeof r!="function")throw new En(s);return o=o===t?o:Se(o),Te(r,o)}function g0(r,o){if(typeof r!="function")throw new En(s);return o=o==null?0:Ft(Se(o),0),Te(function(a){var l=a[o],d=Jr(a,0,o);return l&&Wr(d,l),vn(r,this,d)})}function p0(r,o,a){var l=!0,d=!0;if(typeof r!="function")throw new En(s);return pt(a)&&(l="leading"in a?!!a.leading:l,d="trailing"in a?!!a.trailing:d),Dm(r,o,{leading:l,maxWait:o,trailing:d})}function m0(r){return Sm(r,1)}function b0(r,o){return id(Wl(o),r)}function _0(){if(!arguments.length)return[];var r=arguments[0];return Pe(r)?r:[r]}function v0(r){return Mn(r,T)}function y0(r,o){return o=typeof o=="function"?o:t,Mn(r,T,o)}function w0(r){return Mn(r,b|T)}function P0(r,o){return o=typeof o=="function"?o:t,Mn(r,b|T,o)}function x0(r,o){return o==null||bp(r,o,Nt(o))}function Jn(r,o){return r===o||r!==r&&o!==o}var S0=wa(Il),C0=wa(function(r,o){return r>=o}),Ci=xp(function(){return arguments}())?xp:function(r){return bt(r)&&Xe.call(r,"callee")&&!up.call(r,"callee")},Pe=U.isArray,k0=zg?yn(zg):AC;function sn(r){return r!=null&&Ia(r.length)&&!Ir(r)}function xt(r){return bt(r)&&sn(r)}function R0(r){return r===!0||r===!1||bt(r)&&Yt(r)==ar}var Xr=$S||pd,T0=Hg?yn(Hg):NC;function D0(r){return bt(r)&&r.nodeType===1&&!rs(r)}function I0(r){if(r==null)return!0;if(sn(r)&&(Pe(r)||typeof r=="string"||typeof r.splice=="function"||Xr(r)||Ki(r)||Ci(r)))return!r.length;var o=jt(r);if(o==gt||o==Pt)return!r.size;if(ts(r))return!Ml(r).length;for(var a in r)if(Xe.call(r,a))return!1;return!0}function E0(r,o){return Ko(r,o)}function F0(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?Ko(r,o,t,a):!!l}function od(r){if(!bt(r))return!1;var o=Yt(r);return o==vr||o==qi||typeof r.message=="string"&&typeof r.name=="string"&&!rs(r)}function M0(r){return typeof r=="number"&&dp(r)}function Ir(r){if(!pt(r))return!1;var o=Yt(r);return o==yr||o==wr||o==gi||o==Br}function Em(r){return typeof r=="number"&&r==Se(r)}function Ia(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function pt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function bt(r){return r!=null&&typeof r=="object"}var Fm=Vg?yn(Vg):LC;function A0(r,o){return r===o||Fl(r,o,Jl(o))}function N0(r,o,a){return a=typeof a=="function"?a:t,Fl(r,o,Jl(o),a)}function q0(r){return Mm(r)&&r!=+r}function L0(r){if(yk(r))throw new ve(i);return Sp(r)}function O0(r){return r===null}function B0(r){return r==null}function Mm(r){return typeof r=="number"||bt(r)&&Yt(r)==ur}function rs(r){if(!bt(r)||Yt(r)!=Lt)return!1;var o=ra(r);if(o===null)return!0;var a=Xe.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Zs.call(a)==NS}var sd=Gg?yn(Gg):OC;function U0(r){return Em(r)&&r>=-ge&&r<=ge}var Am=Qg?yn(Qg):BC;function Ea(r){return typeof r=="string"||!Pe(r)&&bt(r)&&Yt(r)==nn}function Pn(r){return typeof r=="symbol"||bt(r)&&Yt(r)==Pr}var Ki=Jg?yn(Jg):UC;function $0(r){return r===t}function W0(r){return bt(r)&&jt(r)==$t}function j0(r){return bt(r)&&Yt(r)==mi}var z0=wa(Al),H0=wa(function(r,o){return r<=o});function Nm(r){if(!r)return[];if(sn(r))return Ea(r)?Gn(r):on(r);if(zo&&r[zo])return xS(r[zo]());var o=jt(r),a=o==gt?wl:o==Pt?Xs:Zi;return a(r)}function Er(r){if(!r)return r===0?r:0;if(r=qn(r),r===ke||r===-ke){var o=r<0?-1:1;return o*pe}return r===r?r:0}function Se(r){var o=Er(r),a=o%1;return o===o?a?o-a:o:0}function qm(r){return r?wi(Se(r),0,We):0}function qn(r){if(typeof r=="number")return r;if(Pn(r))return wt;if(pt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=pt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=tp(r);var a=Vn.test(r);return a||Ur.test(r)?sS(r.slice(2),a?2:8):_n.test(r)?wt:+r}function Lm(r){return fr(r,an(r))}function V0(r){return r?wi(Se(r),-ge,ge):r===0?r:0}function Ge(r){return r==null?"":wn(r)}var G0=Ji(function(r,o){if(ts(o)||sn(o)){fr(o,Nt(o),r);return}for(var a in o)Xe.call(o,a)&&Jo(r,a,o[a])}),Om=Ji(function(r,o){fr(o,an(o),r)}),Fa=Ji(function(r,o,a,l){fr(o,an(o),r,l)}),Q0=Ji(function(r,o,a,l){fr(o,Nt(o),r,l)}),J0=Tr(Rl);function X0(r,o){var a=Qi(r);return o==null?a:mp(a,o)}var Y0=Te(function(r,o){r=Ze(r);var a=-1,l=o.length,d=l>2?o[2]:t;for(d&&Kt(o[0],o[1],d)&&(l=1);++a1),_}),fr(r,Gl(r),a),l&&(a=Mn(a,b|y|T,ck));for(var d=o.length;d--;)Bl(a,o[d]);return a});function pT(r,o){return Um(r,Da(le(o)))}var mT=Tr(function(r,o){return r==null?{}:jC(r,o)});function Um(r,o){if(r==null)return{};var a=dt(Gl(r),function(l){return[l]});return o=le(o),Ep(r,a,function(l,d){return o(l,d[0])})}function bT(r,o,a){o=Qr(o,r);var l=-1,d=o.length;for(d||(d=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var d=fp();return Wt(r+d*(o-r+oS("1e-"+((d+"").length-1))),o)}return ql(r,o)}var TT=Xi(function(r,o,a){return o=o.toLowerCase(),r+(a?jm(o):o)});function jm(r){return ud(Ge(r).toLowerCase())}function zm(r){return r=Ge(r),r&&r.replace(zs,_S).replace(Jx,"")}function DT(r,o,a){r=Ge(r),o=wn(o);var l=r.length;a=a===t?l:wi(Se(a),0,l);var d=a;return a-=o.length,a>=0&&r.slice(a,d)==o}function IT(r){return r=Ge(r),r&&Xt.test(r)?r.replace(it,vS):r}function ET(r){return r=Ge(r),r&&p.test(r)?r.replace(A,"\\$&"):r}var FT=Xi(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),MT=Xi(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),AT=Gp("toLowerCase");function NT(r,o,a){r=Ge(r),o=Se(o);var l=o?zi(r):0;if(!o||l>=o)return r;var d=(o-l)/2;return ya(aa(d),a)+r+ya(sa(d),a)}function qT(r,o,a){r=Ge(r),o=Se(o);var l=o?zi(r):0;return o&&l>>0,a?(r=Ge(r),r&&(typeof o=="string"||o!=null&&!sd(o))&&(o=wn(o),!o&&ji(r))?Jr(Gn(r),0,a):r.split(o,a)):[]}var jT=Xi(function(r,o,a){return r+(a?" ":"")+ud(o)});function zT(r,o,a){return r=Ge(r),a=a==null?0:wi(Se(a),0,r.length),o=wn(o),r.slice(a,a+o.length)==o}function HT(r,o,a){var l=m.templateSettings;a&&Kt(r,o,a)&&(o=t),r=Ge(r),o=Fa({},o,l,em);var d=Fa({},o.imports,l.imports,em),_=Nt(d),P=yl(d,_),k,M,V=0,Q=o.interpolate||Hs,J="__p += '",ne=Pl((o.escape||Hs).source+"|"+Q.source+"|"+(Q===Wo?Ke:Hs).source+"|"+(o.evaluate||Hs).source+"|$","g"),ce="//# sourceURL="+(Xe.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++eS+"]")+` -`;r.replace(ne,function(fe,Ee,Ne,xn,Zt,Sn){return Ne||(Ne=xn),J+=r.slice(V,Sn).replace(Ex,yS),Ee&&(k=!0,J+=`' + -__e(`+Ee+`) + -'`),Zt&&(M=!0,J+=`'; -`+Zt+`; -__p += '`),Ne&&(J+=`' + -((__t = (`+Ne+`)) == null ? '' : __t) + -'`),V=Sn+fe.length,fe}),J+=`'; -`;var de=Xe.call(o,"variable")&&o.variable;if(!de)J=`with (obj) { -`+J+` +`,"\r"];var xa;(function(p){function C(L,Q,be,ht){return new Vl(L,Q,be,ht)}p.create=C;function T(L){var Q=L;return!!(q.defined(Q)&&q.string(Q.uri)&&(q.undefined(Q.languageId)||q.string(Q.languageId))&&q.uinteger(Q.lineCount)&&q.func(Q.getText)&&q.func(Q.positionAt)&&q.func(Q.offsetAt))}p.is=T;function v(L,Q){for(var be=L.getText(),ht=h(Q,function(zr,Hi){var wa=zr.range.start.line-Hi.range.start.line;return wa===0?zr.range.start.character-Hi.range.start.character:wa}),Ye=be.length,an=ht.length-1;an>=0;an--){var yn=ht[an],Qn=L.offsetAt(yn.range.start),Fe=L.offsetAt(yn.range.end);if(Fe<=Ye)be=be.substring(0,Qn)+yn.newText+be.substring(Fe,be.length);else throw new Error("Overlapping edit");Ye=Qn}return be}p.applyEdits=v;function h(L,Q){if(L.length<=1)return L;var be=L.length/2|0,ht=L.slice(0,be),Ye=L.slice(be);h(ht,Q),h(Ye,Q);for(var an=0,yn=0,Qn=0;an0&&C.push(T.length),this._lineOffsets=C}return this._lineOffsets},p.prototype.positionAt=function(C){C=Math.max(Math.min(C,this._content.length),0);var T=this.getLineOffsets(),v=0,h=T.length;if(h===0)return u.create(0,C);for(;vC?h=L:v=L+1}var Q=v-1;return u.create(Q,C-T[Q])},p.prototype.offsetAt=function(C){var T=this.getLineOffsets();if(C.line>=T.length)return this._content.length;if(C.line<0)return 0;var v=T[C.line],h=C.line+1"u"}p.undefined=v;function h(Fe){return Fe===!0||Fe===!1}p.boolean=h;function L(Fe){return C.call(Fe)==="[object String]"}p.string=L;function Q(Fe){return C.call(Fe)==="[object Number]"}p.number=Q;function be(Fe,zr,Hi){return C.call(Fe)==="[object Number]"&&zr<=Fe&&Fe<=Hi}p.numberRange=be;function ht(Fe){return C.call(Fe)==="[object Number]"&&-2147483648<=Fe&&Fe<=2147483647}p.integer=ht;function Ye(Fe){return C.call(Fe)==="[object Number]"&&0<=Fe&&Fe<=2147483647}p.uinteger=Ye;function an(Fe){return C.call(Fe)==="[object Function]"}p.func=an;function yn(Fe){return Fe!==null&&typeof Fe=="object"}p.objectLiteral=yn;function Qn(Fe,zr){return Array.isArray(Fe)&&Fe.every(zr)}p.typedArray=Qn})(q||(q={}))})});var pt=F(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var go=Mi(),H_;(function(e){e.clientToServer="clientToServer",e.serverToClient="serverToClient",e.both="both"})(H_||(hn.MessageDirection=H_={}));var mh=class{constructor(t){this.method=t}};hn.RegistrationType=mh;var bh=class extends go.RequestType0{constructor(t){super(t)}};hn.ProtocolRequestType0=bh;var _h=class extends go.RequestType{constructor(t){super(t,go.ParameterStructures.byName)}};hn.ProtocolRequestType=_h;var vh=class extends go.NotificationType0{constructor(t){super(t)}};hn.ProtocolNotificationType0=vh;var yh=class extends go.NotificationType{constructor(t){super(t,go.ParameterStructures.byName)}};hn.ProtocolNotificationType=yh});var Oc=F(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.objectLiteral=Ft.typedArray=Ft.stringArray=Ft.array=Ft.func=Ft.error=Ft.number=Ft.string=Ft.boolean=void 0;function QN(e){return e===!0||e===!1}Ft.boolean=QN;function V_(e){return typeof e=="string"||e instanceof String}Ft.string=V_;function JN(e){return typeof e=="number"||e instanceof Number}Ft.number=JN;function XN(e){return e instanceof Error}Ft.error=XN;function KN(e){return typeof e=="function"}Ft.func=KN;function G_(e){return Array.isArray(e)}Ft.array=G_;function YN(e){return G_(e)&&e.every(t=>V_(t))}Ft.stringArray=YN;function ZN(e,t){return Array.isArray(e)&&e.every(t)}Ft.typedArray=ZN;function e1(e){return e!==null&&typeof e=="object"}Ft.objectLiteral=e1});var X_=F(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.ImplementationRequest=void 0;var Q_=pt(),J_;(function(e){e.method="textDocument/implementation",e.messageDirection=Q_.MessageDirection.clientToServer,e.type=new Q_.ProtocolRequestType(e.method)})(J_||(Bc.ImplementationRequest=J_={}))});var Z_=F(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Uc.TypeDefinitionRequest=void 0;var K_=pt(),Y_;(function(e){e.method="textDocument/typeDefinition",e.messageDirection=K_.MessageDirection.clientToServer,e.type=new K_.ProtocolRequestType(e.method)})(Y_||(Uc.TypeDefinitionRequest=Y_={}))});var nv=F(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.DidChangeWorkspaceFoldersNotification=po.WorkspaceFoldersRequest=void 0;var $c=pt(),ev;(function(e){e.method="workspace/workspaceFolders",e.messageDirection=$c.MessageDirection.serverToClient,e.type=new $c.ProtocolRequestType0(e.method)})(ev||(po.WorkspaceFoldersRequest=ev={}));var tv;(function(e){e.method="workspace/didChangeWorkspaceFolders",e.messageDirection=$c.MessageDirection.clientToServer,e.type=new $c.ProtocolNotificationType(e.method)})(tv||(po.DidChangeWorkspaceFoldersNotification=tv={}))});var ov=F(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ConfigurationRequest=void 0;var rv=pt(),iv;(function(e){e.method="workspace/configuration",e.messageDirection=rv.MessageDirection.serverToClient,e.type=new rv.ProtocolRequestType(e.method)})(iv||(Wc.ConfigurationRequest=iv={}))});var cv=F(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.ColorPresentationRequest=mo.DocumentColorRequest=void 0;var jc=pt(),sv;(function(e){e.method="textDocument/documentColor",e.messageDirection=jc.MessageDirection.clientToServer,e.type=new jc.ProtocolRequestType(e.method)})(sv||(mo.DocumentColorRequest=sv={}));var av;(function(e){e.method="textDocument/colorPresentation",e.messageDirection=jc.MessageDirection.clientToServer,e.type=new jc.ProtocolRequestType(e.method)})(av||(mo.ColorPresentationRequest=av={}))});var dv=F(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.FoldingRangeRefreshRequest=bo.FoldingRangeRequest=void 0;var zc=pt(),uv;(function(e){e.method="textDocument/foldingRange",e.messageDirection=zc.MessageDirection.clientToServer,e.type=new zc.ProtocolRequestType(e.method)})(uv||(bo.FoldingRangeRequest=uv={}));var lv;(function(e){e.method="workspace/foldingRange/refresh",e.messageDirection=zc.MessageDirection.serverToClient,e.type=new zc.ProtocolRequestType0(e.method)})(lv||(bo.FoldingRangeRefreshRequest=lv={}))});var gv=F(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.DeclarationRequest=void 0;var fv=pt(),hv;(function(e){e.method="textDocument/declaration",e.messageDirection=fv.MessageDirection.clientToServer,e.type=new fv.ProtocolRequestType(e.method)})(hv||(Hc.DeclarationRequest=hv={}))});var bv=F(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});Vc.SelectionRangeRequest=void 0;var pv=pt(),mv;(function(e){e.method="textDocument/selectionRange",e.messageDirection=pv.MessageDirection.clientToServer,e.type=new pv.ProtocolRequestType(e.method)})(mv||(Vc.SelectionRangeRequest=mv={}))});var xv=F(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.WorkDoneProgressCancelNotification=oi.WorkDoneProgressCreateRequest=oi.WorkDoneProgress=void 0;var t1=Mi(),Gc=pt(),_v;(function(e){e.type=new t1.ProgressType;function t(n){return n===e.type}e.is=t})(_v||(oi.WorkDoneProgress=_v={}));var vv;(function(e){e.method="window/workDoneProgress/create",e.messageDirection=Gc.MessageDirection.serverToClient,e.type=new Gc.ProtocolRequestType(e.method)})(vv||(oi.WorkDoneProgressCreateRequest=vv={}));var yv;(function(e){e.method="window/workDoneProgress/cancel",e.messageDirection=Gc.MessageDirection.clientToServer,e.type=new Gc.ProtocolNotificationType(e.method)})(yv||(oi.WorkDoneProgressCancelNotification=yv={}))});var Cv=F(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.CallHierarchyOutgoingCallsRequest=si.CallHierarchyIncomingCallsRequest=si.CallHierarchyPrepareRequest=void 0;var _o=pt(),wv;(function(e){e.method="textDocument/prepareCallHierarchy",e.messageDirection=_o.MessageDirection.clientToServer,e.type=new _o.ProtocolRequestType(e.method)})(wv||(si.CallHierarchyPrepareRequest=wv={}));var Pv;(function(e){e.method="callHierarchy/incomingCalls",e.messageDirection=_o.MessageDirection.clientToServer,e.type=new _o.ProtocolRequestType(e.method)})(Pv||(si.CallHierarchyIncomingCallsRequest=Pv={}));var Sv;(function(e){e.method="callHierarchy/outgoingCalls",e.messageDirection=_o.MessageDirection.clientToServer,e.type=new _o.ProtocolRequestType(e.method)})(Sv||(si.CallHierarchyOutgoingCallsRequest=Sv={}))});var Iv=F(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Lr=pt(),kv;(function(e){e.Relative="relative"})(kv||(gn.TokenFormat=kv={}));var ks;(function(e){e.method="textDocument/semanticTokens",e.type=new Lr.RegistrationType(e.method)})(ks||(gn.SemanticTokensRegistrationType=ks={}));var Rv;(function(e){e.method="textDocument/semanticTokens/full",e.messageDirection=Lr.MessageDirection.clientToServer,e.type=new Lr.ProtocolRequestType(e.method),e.registrationMethod=ks.method})(Rv||(gn.SemanticTokensRequest=Rv={}));var Tv;(function(e){e.method="textDocument/semanticTokens/full/delta",e.messageDirection=Lr.MessageDirection.clientToServer,e.type=new Lr.ProtocolRequestType(e.method),e.registrationMethod=ks.method})(Tv||(gn.SemanticTokensDeltaRequest=Tv={}));var Dv;(function(e){e.method="textDocument/semanticTokens/range",e.messageDirection=Lr.MessageDirection.clientToServer,e.type=new Lr.ProtocolRequestType(e.method),e.registrationMethod=ks.method})(Dv||(gn.SemanticTokensRangeRequest=Dv={}));var Ev;(function(e){e.method="workspace/semanticTokens/refresh",e.messageDirection=Lr.MessageDirection.serverToClient,e.type=new Lr.ProtocolRequestType0(e.method)})(Ev||(gn.SemanticTokensRefreshRequest=Ev={}))});var Mv=F(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.ShowDocumentRequest=void 0;var Fv=pt(),Av;(function(e){e.method="window/showDocument",e.messageDirection=Fv.MessageDirection.serverToClient,e.type=new Fv.ProtocolRequestType(e.method)})(Av||(Qc.ShowDocumentRequest=Av={}))});var Lv=F(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});Jc.LinkedEditingRangeRequest=void 0;var Nv=pt(),qv;(function(e){e.method="textDocument/linkedEditingRange",e.messageDirection=Nv.MessageDirection.clientToServer,e.type=new Nv.ProtocolRequestType(e.method)})(qv||(Jc.LinkedEditingRangeRequest=qv={}))});var Hv=F(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.WillDeleteFilesRequest=Xt.DidDeleteFilesNotification=Xt.DidRenameFilesNotification=Xt.WillRenameFilesRequest=Xt.DidCreateFilesNotification=Xt.WillCreateFilesRequest=Xt.FileOperationPatternKind=void 0;var Bn=pt(),Ov;(function(e){e.file="file",e.folder="folder"})(Ov||(Xt.FileOperationPatternKind=Ov={}));var Bv;(function(e){e.method="workspace/willCreateFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolRequestType(e.method)})(Bv||(Xt.WillCreateFilesRequest=Bv={}));var Uv;(function(e){e.method="workspace/didCreateFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolNotificationType(e.method)})(Uv||(Xt.DidCreateFilesNotification=Uv={}));var $v;(function(e){e.method="workspace/willRenameFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolRequestType(e.method)})($v||(Xt.WillRenameFilesRequest=$v={}));var Wv;(function(e){e.method="workspace/didRenameFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolNotificationType(e.method)})(Wv||(Xt.DidRenameFilesNotification=Wv={}));var jv;(function(e){e.method="workspace/didDeleteFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolNotificationType(e.method)})(jv||(Xt.DidDeleteFilesNotification=jv={}));var zv;(function(e){e.method="workspace/willDeleteFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolRequestType(e.method)})(zv||(Xt.WillDeleteFilesRequest=zv={}))});var Xv=F(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.MonikerRequest=ai.MonikerKind=ai.UniquenessLevel=void 0;var Vv=pt(),Gv;(function(e){e.document="document",e.project="project",e.group="group",e.scheme="scheme",e.global="global"})(Gv||(ai.UniquenessLevel=Gv={}));var Qv;(function(e){e.$import="import",e.$export="export",e.local="local"})(Qv||(ai.MonikerKind=Qv={}));var Jv;(function(e){e.method="textDocument/moniker",e.messageDirection=Vv.MessageDirection.clientToServer,e.type=new Vv.ProtocolRequestType(e.method)})(Jv||(ai.MonikerRequest=Jv={}))});var ey=F(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.TypeHierarchySubtypesRequest=ci.TypeHierarchySupertypesRequest=ci.TypeHierarchyPrepareRequest=void 0;var vo=pt(),Kv;(function(e){e.method="textDocument/prepareTypeHierarchy",e.messageDirection=vo.MessageDirection.clientToServer,e.type=new vo.ProtocolRequestType(e.method)})(Kv||(ci.TypeHierarchyPrepareRequest=Kv={}));var Yv;(function(e){e.method="typeHierarchy/supertypes",e.messageDirection=vo.MessageDirection.clientToServer,e.type=new vo.ProtocolRequestType(e.method)})(Yv||(ci.TypeHierarchySupertypesRequest=Yv={}));var Zv;(function(e){e.method="typeHierarchy/subtypes",e.messageDirection=vo.MessageDirection.clientToServer,e.type=new vo.ProtocolRequestType(e.method)})(Zv||(ci.TypeHierarchySubtypesRequest=Zv={}))});var ry=F(yo=>{"use strict";Object.defineProperty(yo,"__esModule",{value:!0});yo.InlineValueRefreshRequest=yo.InlineValueRequest=void 0;var Xc=pt(),ty;(function(e){e.method="textDocument/inlineValue",e.messageDirection=Xc.MessageDirection.clientToServer,e.type=new Xc.ProtocolRequestType(e.method)})(ty||(yo.InlineValueRequest=ty={}));var ny;(function(e){e.method="workspace/inlineValue/refresh",e.messageDirection=Xc.MessageDirection.serverToClient,e.type=new Xc.ProtocolRequestType0(e.method)})(ny||(yo.InlineValueRefreshRequest=ny={}))});var ay=F(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.InlayHintRefreshRequest=ui.InlayHintResolveRequest=ui.InlayHintRequest=void 0;var xo=pt(),iy;(function(e){e.method="textDocument/inlayHint",e.messageDirection=xo.MessageDirection.clientToServer,e.type=new xo.ProtocolRequestType(e.method)})(iy||(ui.InlayHintRequest=iy={}));var oy;(function(e){e.method="inlayHint/resolve",e.messageDirection=xo.MessageDirection.clientToServer,e.type=new xo.ProtocolRequestType(e.method)})(oy||(ui.InlayHintResolveRequest=oy={}));var sy;(function(e){e.method="workspace/inlayHint/refresh",e.messageDirection=xo.MessageDirection.serverToClient,e.type=new xo.ProtocolRequestType0(e.method)})(sy||(ui.InlayHintRefreshRequest=sy={}))});var gy=F(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var hy=Mi(),n1=Oc(),wo=pt(),cy;(function(e){function t(n){let i=n;return i&&n1.boolean(i.retriggerRequest)}e.is=t})(cy||(Un.DiagnosticServerCancellationData=cy={}));var uy;(function(e){e.Full="full",e.Unchanged="unchanged"})(uy||(Un.DocumentDiagnosticReportKind=uy={}));var ly;(function(e){e.method="textDocument/diagnostic",e.messageDirection=wo.MessageDirection.clientToServer,e.type=new wo.ProtocolRequestType(e.method),e.partialResult=new hy.ProgressType})(ly||(Un.DocumentDiagnosticRequest=ly={}));var dy;(function(e){e.method="workspace/diagnostic",e.messageDirection=wo.MessageDirection.clientToServer,e.type=new wo.ProtocolRequestType(e.method),e.partialResult=new hy.ProgressType})(dy||(Un.WorkspaceDiagnosticRequest=dy={}));var fy;(function(e){e.method="workspace/diagnostic/refresh",e.messageDirection=wo.MessageDirection.serverToClient,e.type=new wo.ProtocolRequestType0(e.method)})(fy||(Un.DiagnosticRefreshRequest=fy={}))});var xy=F(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.DidCloseNotebookDocumentNotification=xt.DidSaveNotebookDocumentNotification=xt.DidChangeNotebookDocumentNotification=xt.NotebookCellArrayChange=xt.DidOpenNotebookDocumentNotification=xt.NotebookDocumentSyncRegistrationType=xt.NotebookDocument=xt.NotebookCell=xt.ExecutionSummary=xt.NotebookCellKind=void 0;var Rs=Lc(),er=Oc(),br=pt(),xh;(function(e){e.Markup=1,e.Code=2;function t(n){return n===1||n===2}e.is=t})(xh||(xt.NotebookCellKind=xh={}));var wh;(function(e){function t(o,c){let u={executionOrder:o};return(c===!0||c===!1)&&(u.success=c),u}e.create=t;function n(o){let c=o;return er.objectLiteral(c)&&Rs.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}e.is=n;function i(o,c){return o===c?!0:o==null||c===null||c===void 0?!1:o.executionOrder===c.executionOrder&&o.success===c.success}e.equals=i})(wh||(xt.ExecutionSummary=wh={}));var Kc;(function(e){function t(c,u){return{kind:c,document:u}}e.create=t;function n(c){let u=c;return er.objectLiteral(u)&&xh.is(u.kind)&&Rs.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}e.is=n;function i(c,u){let f=new Set;return c.document!==u.document&&f.add("document"),c.kind!==u.kind&&f.add("kind"),c.executionSummary!==u.executionSummary&&f.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!o(c.metadata,u.metadata)&&f.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&f.add("executionSummary"),f}e.diff=i;function o(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let f=Array.isArray(c),g=Array.isArray(u);if(f!==g)return!1;if(f&&g){if(c.length!==u.length)return!1;for(let b=0;b{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.InlineCompletionRequest=void 0;var wy=pt(),Py;(function(e){e.method="textDocument/inlineCompletion",e.messageDirection=wy.MessageDirection.clientToServer,e.type=new wy.ProtocolRequestType(e.method)})(Py||(Yc.InlineCompletionRequest=Py={}))});var Lx=F(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.WorkspaceSymbolRequest=y.CodeActionResolveRequest=y.CodeActionRequest=y.DocumentSymbolRequest=y.DocumentHighlightRequest=y.ReferencesRequest=y.DefinitionRequest=y.SignatureHelpRequest=y.SignatureHelpTriggerKind=y.HoverRequest=y.CompletionResolveRequest=y.CompletionRequest=y.CompletionTriggerKind=y.PublishDiagnosticsNotification=y.WatchKind=y.RelativePattern=y.FileChangeType=y.DidChangeWatchedFilesNotification=y.WillSaveTextDocumentWaitUntilRequest=y.WillSaveTextDocumentNotification=y.TextDocumentSaveReason=y.DidSaveTextDocumentNotification=y.DidCloseTextDocumentNotification=y.DidChangeTextDocumentNotification=y.TextDocumentContentChangeEvent=y.DidOpenTextDocumentNotification=y.TextDocumentSyncKind=y.TelemetryEventNotification=y.LogMessageNotification=y.ShowMessageRequest=y.ShowMessageNotification=y.MessageType=y.DidChangeConfigurationNotification=y.ExitNotification=y.ShutdownRequest=y.InitializedNotification=y.InitializeErrorCodes=y.InitializeRequest=y.WorkDoneProgressOptions=y.TextDocumentRegistrationOptions=y.StaticRegistrationOptions=y.PositionEncodingKind=y.FailureHandlingKind=y.ResourceOperationKind=y.UnregistrationRequest=y.RegistrationRequest=y.DocumentSelector=y.NotebookCellTextDocumentFilter=y.NotebookDocumentFilter=y.TextDocumentFilter=void 0;y.MonikerRequest=y.MonikerKind=y.UniquenessLevel=y.WillDeleteFilesRequest=y.DidDeleteFilesNotification=y.WillRenameFilesRequest=y.DidRenameFilesNotification=y.WillCreateFilesRequest=y.DidCreateFilesNotification=y.FileOperationPatternKind=y.LinkedEditingRangeRequest=y.ShowDocumentRequest=y.SemanticTokensRegistrationType=y.SemanticTokensRefreshRequest=y.SemanticTokensRangeRequest=y.SemanticTokensDeltaRequest=y.SemanticTokensRequest=y.TokenFormat=y.CallHierarchyPrepareRequest=y.CallHierarchyOutgoingCallsRequest=y.CallHierarchyIncomingCallsRequest=y.WorkDoneProgressCancelNotification=y.WorkDoneProgressCreateRequest=y.WorkDoneProgress=y.SelectionRangeRequest=y.DeclarationRequest=y.FoldingRangeRefreshRequest=y.FoldingRangeRequest=y.ColorPresentationRequest=y.DocumentColorRequest=y.ConfigurationRequest=y.DidChangeWorkspaceFoldersNotification=y.WorkspaceFoldersRequest=y.TypeDefinitionRequest=y.ImplementationRequest=y.ApplyWorkspaceEditRequest=y.ExecuteCommandRequest=y.PrepareRenameRequest=y.RenameRequest=y.PrepareSupportDefaultBehavior=y.DocumentOnTypeFormattingRequest=y.DocumentRangesFormattingRequest=y.DocumentRangeFormattingRequest=y.DocumentFormattingRequest=y.DocumentLinkResolveRequest=y.DocumentLinkRequest=y.CodeLensRefreshRequest=y.CodeLensResolveRequest=y.CodeLensRequest=y.WorkspaceSymbolResolveRequest=void 0;y.InlineCompletionRequest=y.DidCloseNotebookDocumentNotification=y.DidSaveNotebookDocumentNotification=y.DidChangeNotebookDocumentNotification=y.NotebookCellArrayChange=y.DidOpenNotebookDocumentNotification=y.NotebookDocumentSyncRegistrationType=y.NotebookDocument=y.NotebookCell=y.ExecutionSummary=y.NotebookCellKind=y.DiagnosticRefreshRequest=y.WorkspaceDiagnosticRequest=y.DocumentDiagnosticRequest=y.DocumentDiagnosticReportKind=y.DiagnosticServerCancellationData=y.InlayHintRefreshRequest=y.InlayHintResolveRequest=y.InlayHintRequest=y.InlineValueRefreshRequest=y.InlineValueRequest=y.TypeHierarchySupertypesRequest=y.TypeHierarchySubtypesRequest=y.TypeHierarchyPrepareRequest=void 0;var Z=pt(),Cy=Lc(),Ot=Oc(),r1=X_();Object.defineProperty(y,"ImplementationRequest",{enumerable:!0,get:function(){return r1.ImplementationRequest}});var i1=Z_();Object.defineProperty(y,"TypeDefinitionRequest",{enumerable:!0,get:function(){return i1.TypeDefinitionRequest}});var Ax=nv();Object.defineProperty(y,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Ax.WorkspaceFoldersRequest}});Object.defineProperty(y,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Ax.DidChangeWorkspaceFoldersNotification}});var o1=ov();Object.defineProperty(y,"ConfigurationRequest",{enumerable:!0,get:function(){return o1.ConfigurationRequest}});var Mx=cv();Object.defineProperty(y,"DocumentColorRequest",{enumerable:!0,get:function(){return Mx.DocumentColorRequest}});Object.defineProperty(y,"ColorPresentationRequest",{enumerable:!0,get:function(){return Mx.ColorPresentationRequest}});var Nx=dv();Object.defineProperty(y,"FoldingRangeRequest",{enumerable:!0,get:function(){return Nx.FoldingRangeRequest}});Object.defineProperty(y,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Nx.FoldingRangeRefreshRequest}});var s1=gv();Object.defineProperty(y,"DeclarationRequest",{enumerable:!0,get:function(){return s1.DeclarationRequest}});var a1=bv();Object.defineProperty(y,"SelectionRangeRequest",{enumerable:!0,get:function(){return a1.SelectionRangeRequest}});var Rh=xv();Object.defineProperty(y,"WorkDoneProgress",{enumerable:!0,get:function(){return Rh.WorkDoneProgress}});Object.defineProperty(y,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return Rh.WorkDoneProgressCreateRequest}});Object.defineProperty(y,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return Rh.WorkDoneProgressCancelNotification}});var Th=Cv();Object.defineProperty(y,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(y,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(y,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var So=Iv();Object.defineProperty(y,"TokenFormat",{enumerable:!0,get:function(){return So.TokenFormat}});Object.defineProperty(y,"SemanticTokensRequest",{enumerable:!0,get:function(){return So.SemanticTokensRequest}});Object.defineProperty(y,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return So.SemanticTokensDeltaRequest}});Object.defineProperty(y,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return So.SemanticTokensRangeRequest}});Object.defineProperty(y,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return So.SemanticTokensRefreshRequest}});Object.defineProperty(y,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return So.SemanticTokensRegistrationType}});var c1=Mv();Object.defineProperty(y,"ShowDocumentRequest",{enumerable:!0,get:function(){return c1.ShowDocumentRequest}});var u1=Lv();Object.defineProperty(y,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return u1.LinkedEditingRangeRequest}});var Ni=Hv();Object.defineProperty(y,"FileOperationPatternKind",{enumerable:!0,get:function(){return Ni.FileOperationPatternKind}});Object.defineProperty(y,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Ni.DidCreateFilesNotification}});Object.defineProperty(y,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Ni.WillCreateFilesRequest}});Object.defineProperty(y,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Ni.DidRenameFilesNotification}});Object.defineProperty(y,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Ni.WillRenameFilesRequest}});Object.defineProperty(y,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Ni.DidDeleteFilesNotification}});Object.defineProperty(y,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Ni.WillDeleteFilesRequest}});var Dh=Xv();Object.defineProperty(y,"UniquenessLevel",{enumerable:!0,get:function(){return Dh.UniquenessLevel}});Object.defineProperty(y,"MonikerKind",{enumerable:!0,get:function(){return Dh.MonikerKind}});Object.defineProperty(y,"MonikerRequest",{enumerable:!0,get:function(){return Dh.MonikerRequest}});var Eh=ey();Object.defineProperty(y,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Eh.TypeHierarchyPrepareRequest}});Object.defineProperty(y,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Eh.TypeHierarchySubtypesRequest}});Object.defineProperty(y,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Eh.TypeHierarchySupertypesRequest}});var qx=ry();Object.defineProperty(y,"InlineValueRequest",{enumerable:!0,get:function(){return qx.InlineValueRequest}});Object.defineProperty(y,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return qx.InlineValueRefreshRequest}});var Ih=ay();Object.defineProperty(y,"InlayHintRequest",{enumerable:!0,get:function(){return Ih.InlayHintRequest}});Object.defineProperty(y,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Ih.InlayHintResolveRequest}});Object.defineProperty(y,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Ih.InlayHintRefreshRequest}});var Ts=gy();Object.defineProperty(y,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Ts.DiagnosticServerCancellationData}});Object.defineProperty(y,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Ts.DocumentDiagnosticReportKind}});Object.defineProperty(y,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Ts.DocumentDiagnosticRequest}});Object.defineProperty(y,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Ts.WorkspaceDiagnosticRequest}});Object.defineProperty(y,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Ts.DiagnosticRefreshRequest}});var _r=xy();Object.defineProperty(y,"NotebookCellKind",{enumerable:!0,get:function(){return _r.NotebookCellKind}});Object.defineProperty(y,"ExecutionSummary",{enumerable:!0,get:function(){return _r.ExecutionSummary}});Object.defineProperty(y,"NotebookCell",{enumerable:!0,get:function(){return _r.NotebookCell}});Object.defineProperty(y,"NotebookDocument",{enumerable:!0,get:function(){return _r.NotebookDocument}});Object.defineProperty(y,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return _r.NotebookDocumentSyncRegistrationType}});Object.defineProperty(y,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidOpenNotebookDocumentNotification}});Object.defineProperty(y,"NotebookCellArrayChange",{enumerable:!0,get:function(){return _r.NotebookCellArrayChange}});Object.defineProperty(y,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidChangeNotebookDocumentNotification}});Object.defineProperty(y,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidSaveNotebookDocumentNotification}});Object.defineProperty(y,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidCloseNotebookDocumentNotification}});var l1=Sy();Object.defineProperty(y,"InlineCompletionRequest",{enumerable:!0,get:function(){return l1.InlineCompletionRequest}});var Ph;(function(e){function t(n){let i=n;return Ot.string(i)||Ot.string(i.language)||Ot.string(i.scheme)||Ot.string(i.pattern)}e.is=t})(Ph||(y.TextDocumentFilter=Ph={}));var Sh;(function(e){function t(n){let i=n;return Ot.objectLiteral(i)&&(Ot.string(i.notebookType)||Ot.string(i.scheme)||Ot.string(i.pattern))}e.is=t})(Sh||(y.NotebookDocumentFilter=Sh={}));var Ch;(function(e){function t(n){let i=n;return Ot.objectLiteral(i)&&(Ot.string(i.notebook)||Sh.is(i.notebook))&&(i.language===void 0||Ot.string(i.language))}e.is=t})(Ch||(y.NotebookCellTextDocumentFilter=Ch={}));var kh;(function(e){function t(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Ot.string(i)&&!Ph.is(i)&&!Ch.is(i))return!1;return!0}e.is=t})(kh||(y.DocumentSelector=kh={}));var ky;(function(e){e.method="client/registerCapability",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType(e.method)})(ky||(y.RegistrationRequest=ky={}));var Ry;(function(e){e.method="client/unregisterCapability",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType(e.method)})(Ry||(y.UnregistrationRequest=Ry={}));var Ty;(function(e){e.Create="create",e.Rename="rename",e.Delete="delete"})(Ty||(y.ResourceOperationKind=Ty={}));var Dy;(function(e){e.Abort="abort",e.Transactional="transactional",e.TextOnlyTransactional="textOnlyTransactional",e.Undo="undo"})(Dy||(y.FailureHandlingKind=Dy={}));var Ey;(function(e){e.UTF8="utf-8",e.UTF16="utf-16",e.UTF32="utf-32"})(Ey||(y.PositionEncodingKind=Ey={}));var Iy;(function(e){function t(n){let i=n;return i&&Ot.string(i.id)&&i.id.length>0}e.hasId=t})(Iy||(y.StaticRegistrationOptions=Iy={}));var Fy;(function(e){function t(n){let i=n;return i&&(i.documentSelector===null||kh.is(i.documentSelector))}e.is=t})(Fy||(y.TextDocumentRegistrationOptions=Fy={}));var Ay;(function(e){function t(i){let o=i;return Ot.objectLiteral(o)&&(o.workDoneProgress===void 0||Ot.boolean(o.workDoneProgress))}e.is=t;function n(i){let o=i;return o&&Ot.boolean(o.workDoneProgress)}e.hasWorkDoneProgress=n})(Ay||(y.WorkDoneProgressOptions=Ay={}));var My;(function(e){e.method="initialize",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(My||(y.InitializeRequest=My={}));var Ny;(function(e){e.unknownProtocolVersion=1})(Ny||(y.InitializeErrorCodes=Ny={}));var qy;(function(e){e.method="initialized",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(qy||(y.InitializedNotification=qy={}));var Ly;(function(e){e.method="shutdown",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType0(e.method)})(Ly||(y.ShutdownRequest=Ly={}));var Oy;(function(e){e.method="exit",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType0(e.method)})(Oy||(y.ExitNotification=Oy={}));var By;(function(e){e.method="workspace/didChangeConfiguration",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(By||(y.DidChangeConfigurationNotification=By={}));var Uy;(function(e){e.Error=1,e.Warning=2,e.Info=3,e.Log=4,e.Debug=5})(Uy||(y.MessageType=Uy={}));var $y;(function(e){e.method="window/showMessage",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolNotificationType(e.method)})($y||(y.ShowMessageNotification=$y={}));var Wy;(function(e){e.method="window/showMessageRequest",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType(e.method)})(Wy||(y.ShowMessageRequest=Wy={}));var jy;(function(e){e.method="window/logMessage",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolNotificationType(e.method)})(jy||(y.LogMessageNotification=jy={}));var zy;(function(e){e.method="telemetry/event",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolNotificationType(e.method)})(zy||(y.TelemetryEventNotification=zy={}));var Hy;(function(e){e.None=0,e.Full=1,e.Incremental=2})(Hy||(y.TextDocumentSyncKind=Hy={}));var Vy;(function(e){e.method="textDocument/didOpen",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Vy||(y.DidOpenTextDocumentNotification=Vy={}));var Gy;(function(e){function t(i){let o=i;return o!=null&&typeof o.text=="string"&&o.range!==void 0&&(o.rangeLength===void 0||typeof o.rangeLength=="number")}e.isIncremental=t;function n(i){let o=i;return o!=null&&typeof o.text=="string"&&o.range===void 0&&o.rangeLength===void 0}e.isFull=n})(Gy||(y.TextDocumentContentChangeEvent=Gy={}));var Qy;(function(e){e.method="textDocument/didChange",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Qy||(y.DidChangeTextDocumentNotification=Qy={}));var Jy;(function(e){e.method="textDocument/didClose",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Jy||(y.DidCloseTextDocumentNotification=Jy={}));var Xy;(function(e){e.method="textDocument/didSave",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Xy||(y.DidSaveTextDocumentNotification=Xy={}));var Ky;(function(e){e.Manual=1,e.AfterDelay=2,e.FocusOut=3})(Ky||(y.TextDocumentSaveReason=Ky={}));var Yy;(function(e){e.method="textDocument/willSave",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Yy||(y.WillSaveTextDocumentNotification=Yy={}));var Zy;(function(e){e.method="textDocument/willSaveWaitUntil",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Zy||(y.WillSaveTextDocumentWaitUntilRequest=Zy={}));var ex;(function(e){e.method="workspace/didChangeWatchedFiles",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(ex||(y.DidChangeWatchedFilesNotification=ex={}));var tx;(function(e){e.Created=1,e.Changed=2,e.Deleted=3})(tx||(y.FileChangeType=tx={}));var nx;(function(e){function t(n){let i=n;return Ot.objectLiteral(i)&&(Cy.URI.is(i.baseUri)||Cy.WorkspaceFolder.is(i.baseUri))&&Ot.string(i.pattern)}e.is=t})(nx||(y.RelativePattern=nx={}));var rx;(function(e){e.Create=1,e.Change=2,e.Delete=4})(rx||(y.WatchKind=rx={}));var ix;(function(e){e.method="textDocument/publishDiagnostics",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolNotificationType(e.method)})(ix||(y.PublishDiagnosticsNotification=ix={}));var ox;(function(e){e.Invoked=1,e.TriggerCharacter=2,e.TriggerForIncompleteCompletions=3})(ox||(y.CompletionTriggerKind=ox={}));var sx;(function(e){e.method="textDocument/completion",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(sx||(y.CompletionRequest=sx={}));var ax;(function(e){e.method="completionItem/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(ax||(y.CompletionResolveRequest=ax={}));var cx;(function(e){e.method="textDocument/hover",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(cx||(y.HoverRequest=cx={}));var ux;(function(e){e.Invoked=1,e.TriggerCharacter=2,e.ContentChange=3})(ux||(y.SignatureHelpTriggerKind=ux={}));var lx;(function(e){e.method="textDocument/signatureHelp",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(lx||(y.SignatureHelpRequest=lx={}));var dx;(function(e){e.method="textDocument/definition",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(dx||(y.DefinitionRequest=dx={}));var fx;(function(e){e.method="textDocument/references",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(fx||(y.ReferencesRequest=fx={}));var hx;(function(e){e.method="textDocument/documentHighlight",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(hx||(y.DocumentHighlightRequest=hx={}));var gx;(function(e){e.method="textDocument/documentSymbol",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(gx||(y.DocumentSymbolRequest=gx={}));var px;(function(e){e.method="textDocument/codeAction",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(px||(y.CodeActionRequest=px={}));var mx;(function(e){e.method="codeAction/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(mx||(y.CodeActionResolveRequest=mx={}));var bx;(function(e){e.method="workspace/symbol",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(bx||(y.WorkspaceSymbolRequest=bx={}));var _x;(function(e){e.method="workspaceSymbol/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(_x||(y.WorkspaceSymbolResolveRequest=_x={}));var vx;(function(e){e.method="textDocument/codeLens",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(vx||(y.CodeLensRequest=vx={}));var yx;(function(e){e.method="codeLens/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(yx||(y.CodeLensResolveRequest=yx={}));var xx;(function(e){e.method="workspace/codeLens/refresh",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType0(e.method)})(xx||(y.CodeLensRefreshRequest=xx={}));var wx;(function(e){e.method="textDocument/documentLink",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(wx||(y.DocumentLinkRequest=wx={}));var Px;(function(e){e.method="documentLink/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Px||(y.DocumentLinkResolveRequest=Px={}));var Sx;(function(e){e.method="textDocument/formatting",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Sx||(y.DocumentFormattingRequest=Sx={}));var Cx;(function(e){e.method="textDocument/rangeFormatting",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Cx||(y.DocumentRangeFormattingRequest=Cx={}));var kx;(function(e){e.method="textDocument/rangesFormatting",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(kx||(y.DocumentRangesFormattingRequest=kx={}));var Rx;(function(e){e.method="textDocument/onTypeFormatting",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Rx||(y.DocumentOnTypeFormattingRequest=Rx={}));var Tx;(function(e){e.Identifier=1})(Tx||(y.PrepareSupportDefaultBehavior=Tx={}));var Dx;(function(e){e.method="textDocument/rename",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Dx||(y.RenameRequest=Dx={}));var Ex;(function(e){e.method="textDocument/prepareRename",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Ex||(y.PrepareRenameRequest=Ex={}));var Ix;(function(e){e.method="workspace/executeCommand",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Ix||(y.ExecuteCommandRequest=Ix={}));var Fx;(function(e){e.method="workspace/applyEdit",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType("workspace/applyEdit")})(Fx||(y.ApplyWorkspaceEditRequest=Fx={}))});var Bx=F(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});Zc.createProtocolConnection=void 0;var Ox=Mi();function d1(e,t,n,i){return Ox.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Ox.createMessageConnection)(e,t,n,i)}Zc.createProtocolConnection=d1});var $x=F(pn=>{"use strict";var f1=pn&&pn.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),eu=pn&&pn.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&f1(t,e,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;eu(Mi(),pn);eu(Lc(),pn);eu(pt(),pn);eu(Lx(),pn);var h1=Bx();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return h1.createProtocolConnection}});var Ux;(function(e){e.lspReservedErrorRangeStart=-32899,e.RequestFailed=-32803,e.ServerCancelled=-32802,e.ContentModified=-32801,e.RequestCancelled=-32800,e.lspReservedErrorRangeEnd=-32800})(Ux||(pn.LSPErrorCodes=Ux={}))});var Rt=F(vr=>{"use strict";var g1=vr&&vr.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),Wx=vr&&vr.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&g1(t,e,n)};Object.defineProperty(vr,"__esModule",{value:!0});vr.createProtocolConnection=void 0;var p1=ph();Wx(ph(),vr);Wx($x(),vr);function m1(e,t,n,i){return(0,p1.createMessageConnection)(e,t,n,i)}vr.createProtocolConnection=m1});var Fh=F($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var Ds=class{constructor(t){this._value=t}asHex(){return this._value}equals(t){return this.asHex()===t.asHex()}},Es=class e extends Ds{static _oneOf(t){return t[Math.floor(t.length*Math.random())]}static _randomHex(){return e._oneOf(e._chars)}constructor(){super([e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),"-",e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),"-","4",e._randomHex(),e._randomHex(),e._randomHex(),"-",e._oneOf(e._timeHighBits),e._randomHex(),e._randomHex(),e._randomHex(),"-",e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex()].join(""))}};Es._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];Es._timeHighBits=["8","9","a","b"];$n.empty=new Ds("00000000-0000-0000-0000-000000000000");function jx(){return new Es}$n.v4=jx;var b1=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function zx(e){return b1.test(e)}$n.isUUID=zx;function _1(e){if(!zx(e))throw new Error("invalid uuid");return new Ds(e)}$n.parse=_1;function v1(){return jx().asHex()}$n.generateUuid=v1});var Hx=F(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.attachPartialResult=di.ProgressFeature=di.attachWorkDone=void 0;var li=Rt(),y1=Fh(),qi=class e{constructor(t,n){this._connection=t,this._token=n,e.Instances.set(this._token,this)}begin(t,n,i,o){let c={kind:"begin",title:t,percentage:n,message:i,cancellable:o};this._connection.sendProgress(li.WorkDoneProgress.type,this._token,c)}report(t,n){let i={kind:"report"};typeof t=="number"?(i.percentage=t,n!==void 0&&(i.message=n)):i.message=t,this._connection.sendProgress(li.WorkDoneProgress.type,this._token,i)}done(){e.Instances.delete(this._token),this._connection.sendProgress(li.WorkDoneProgress.type,this._token,{kind:"end"})}};qi.Instances=new Map;var tu=class extends qi{constructor(t,n){super(t,n),this._source=new li.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Is=class{constructor(){}begin(){}report(){}done(){}},nu=class extends Is{constructor(){super(),this._source=new li.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function x1(e,t){if(t===void 0||t.workDoneToken===void 0)return new Is;let n=t.workDoneToken;return delete t.workDoneToken,new qi(e,n)}di.attachWorkDone=x1;var w1=e=>class extends e{constructor(){super(),this._progressSupported=!1}initialize(t){super.initialize(t),t?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(li.WorkDoneProgressCancelNotification.type,n=>{let i=qi.Instances.get(n.token);(i instanceof tu||i instanceof nu)&&i.cancel()}))}attachWorkDoneProgress(t){return t===void 0?new Is:new qi(this.connection,t)}createWorkDoneProgress(){if(this._progressSupported){let t=(0,y1.generateUuid)();return this.connection.sendRequest(li.WorkDoneProgressCreateRequest.type,{token:t}).then(()=>new tu(this.connection,t))}else return Promise.resolve(new nu)}};di.ProgressFeature=w1;var Ah;(function(e){e.type=new li.ProgressType})(Ah||(Ah={}));var Mh=class{constructor(t,n){this._connection=t,this._token=n}report(t){this._connection.sendProgress(Ah.type,this._token,t)}};function P1(e,t){if(t===void 0||t.partialResultToken===void 0)return;let n=t.partialResultToken;return delete t.partialResultToken,new Mh(e,n)}di.attachPartialResult=P1});var Vx=F(ru=>{"use strict";Object.defineProperty(ru,"__esModule",{value:!0});ru.ConfigurationFeature=void 0;var S1=Rt(),C1=gc(),k1=e=>class extends e{getConfiguration(t){return t?C1.string(t)?this._getConfiguration({section:t}):this._getConfiguration(t):this._getConfiguration({})}_getConfiguration(t){let n={items:Array.isArray(t)?t:[t]};return this.connection.sendRequest(S1.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(t)?i:i[0]:Array.isArray(t)?[]:null)}};ru.ConfigurationFeature=k1});var Gx=F(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.WorkspaceFoldersFeature=void 0;var iu=Rt(),R1=e=>class extends e{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(t){super.initialize(t);let n=t.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new iu.Emitter,this.connection.onNotification(iu.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(t){super.fillServerCapabilities(t);let n=t.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(iu.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(iu.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};ou.WorkspaceFoldersFeature=R1});var Qx=F(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.CallHierarchyFeature=void 0;var Nh=Rt(),T1=e=>class extends e{get callHierarchy(){return{onPrepare:t=>this.connection.onRequest(Nh.CallHierarchyPrepareRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:t=>{let n=Nh.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:t=>{let n=Nh.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};su.CallHierarchyFeature=T1});var Lh=F(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.SemanticTokensBuilder=fi.SemanticTokensDiff=fi.SemanticTokensFeature=void 0;var au=Rt(),D1=e=>class extends e{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(au.SemanticTokensRefreshRequest.type),on:t=>{let n=au.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:t=>{let n=au.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:t=>{let n=au.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};fi.SemanticTokensFeature=D1;var cu=class{constructor(t,n){this.originalSequence=t,this.modifiedSequence=n}computeDiff(){let t=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[o]===this.modifiedSequence[c];)o--,c--;(o0&&(u-=this._prevLine,u===0&&(f-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=f,this._data[this._dataLen++]=i,this._data[this._dataLen++]=o,this._data[this._dataLen++]=c,this._prevLine=t,this._prevChar=n}get id(){return this._id.toString()}previousResult(t){this.id===t&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new cu(this._prevData,this._data).computeDiff()}:this.build()}};fi.SemanticTokensBuilder=qh});var Jx=F(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.ShowDocumentFeature=void 0;var E1=Rt(),I1=e=>class extends e{showDocument(t){return this.connection.sendRequest(E1.ShowDocumentRequest.type,t)}};uu.ShowDocumentFeature=I1});var Xx=F(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.FileOperationsFeature=void 0;var Co=Rt(),F1=e=>class extends e{onDidCreateFiles(t){return this.connection.onNotification(Co.DidCreateFilesNotification.type,n=>{t(n)})}onDidRenameFiles(t){return this.connection.onNotification(Co.DidRenameFilesNotification.type,n=>{t(n)})}onDidDeleteFiles(t){return this.connection.onNotification(Co.DidDeleteFilesNotification.type,n=>{t(n)})}onWillCreateFiles(t){return this.connection.onRequest(Co.WillCreateFilesRequest.type,(n,i)=>t(n,i))}onWillRenameFiles(t){return this.connection.onRequest(Co.WillRenameFilesRequest.type,(n,i)=>t(n,i))}onWillDeleteFiles(t){return this.connection.onRequest(Co.WillDeleteFilesRequest.type,(n,i)=>t(n,i))}};lu.FileOperationsFeature=F1});var Kx=F(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.LinkedEditingRangeFeature=void 0;var A1=Rt(),M1=e=>class extends e{onLinkedEditingRange(t){return this.connection.onRequest(A1.LinkedEditingRangeRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0))}};du.LinkedEditingRangeFeature=M1});var Yx=F(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.TypeHierarchyFeature=void 0;var Oh=Rt(),N1=e=>class extends e{get typeHierarchy(){return{onPrepare:t=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:t=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:t=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};fu.TypeHierarchyFeature=N1});var ew=F(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.InlineValueFeature=void 0;var Zx=Rt(),q1=e=>class extends e{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Zx.InlineValueRefreshRequest.type),on:t=>this.connection.onRequest(Zx.InlineValueRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n)))}}};hu.InlineValueFeature=q1});var nw=F(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.FoldingRangeFeature=void 0;var tw=Rt(),L1=e=>class extends e{get foldingRange(){return{refresh:()=>this.connection.sendRequest(tw.FoldingRangeRefreshRequest.type),on:t=>{let n=tw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gu.FoldingRangeFeature=L1});var rw=F(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.InlayHintFeature=void 0;var Bh=Rt(),O1=e=>class extends e{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Bh.InlayHintRefreshRequest.type),on:t=>this.connection.onRequest(Bh.InlayHintRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n))),resolve:t=>this.connection.onRequest(Bh.InlayHintResolveRequest.type,(n,i)=>t(n,i))}}};pu.InlayHintFeature=O1});var iw=F(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.DiagnosticFeature=void 0;var Fs=Rt(),B1=e=>class extends e{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Fs.DiagnosticRefreshRequest.type),on:t=>this.connection.onRequest(Fs.DocumentDiagnosticRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Fs.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:t=>this.connection.onRequest(Fs.WorkspaceDiagnosticRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Fs.WorkspaceDiagnosticRequest.partialResult,n)))}}};mu.DiagnosticFeature=B1});var $h=F(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.TextDocuments=void 0;var Li=Rt(),Uh=class{constructor(t){this._configuration=t,this._syncedDocuments=new Map,this._onDidChangeContent=new Li.Emitter,this._onDidOpen=new Li.Emitter,this._onDidClose=new Li.Emitter,this._onDidSave=new Li.Emitter,this._onWillSave=new Li.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(t){this._willSaveWaitUntil=t}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(t){return this._syncedDocuments.get(t)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(t){t.__textDocumentSync=Li.TextDocumentSyncKind.Incremental;let n=[];return n.push(t.onDidOpenTextDocument(i=>{let o=i.textDocument,c=this._configuration.create(o.uri,o.languageId,o.version,o.text);this._syncedDocuments.set(o.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(t.onDidChangeTextDocument(i=>{let o=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=o;if(u==null)throw new Error(`Received document change event for ${o.uri} without valid version identifier`);let f=this._syncedDocuments.get(o.uri);f!==void 0&&(f=this._configuration.update(f,c,u),this._syncedDocuments.set(o.uri,f),this._onDidChangeContent.fire(Object.freeze({document:f})))})),n.push(t.onDidCloseTextDocument(i=>{let o=this._syncedDocuments.get(i.textDocument.uri);o!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:o})))})),n.push(t.onWillSaveTextDocument(i=>{let o=this._syncedDocuments.get(i.textDocument.uri);o!==void 0&&this._onWillSave.fire(Object.freeze({document:o,reason:i.reason}))})),n.push(t.onWillSaveTextDocumentWaitUntil((i,o)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),o):[]})),n.push(t.onDidSaveTextDocument(i=>{let o=this._syncedDocuments.get(i.textDocument.uri);o!==void 0&&this._onDidSave.fire(Object.freeze({document:o}))})),Li.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};bu.TextDocuments=Uh});var jh=F(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.NotebookDocuments=ko.NotebookSyncFeature=void 0;var Wn=Rt(),ow=$h(),U1=e=>class extends e{get synchronization(){return{onDidOpenNotebookDocument:t=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{t(n)}),onDidChangeNotebookDocument:t=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{t(n)}),onDidSaveNotebookDocument:t=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{t(n)}),onDidCloseNotebookDocument:t=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{t(n)})}}};ko.NotebookSyncFeature=U1;var _u=class e{onDidOpenTextDocument(t){return this.openHandler=t,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(t){this.openHandler&&this.openHandler(t)}onDidChangeTextDocument(t){return this.changeHandler=t,Wn.Disposable.create(()=>{this.changeHandler=t})}changeTextDocument(t){this.changeHandler&&this.changeHandler(t)}onDidCloseTextDocument(t){return this.closeHandler=t,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(t){this.closeHandler&&this.closeHandler(t)}onWillSaveTextDocument(){return e.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return e.NULL_DISPOSE}onDidSaveTextDocument(){return e.NULL_DISPOSE}};_u.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var Wh=class{constructor(t){t instanceof ow.TextDocuments?this._cellTextDocuments=t:this._cellTextDocuments=new ow.TextDocuments(t),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(t){return this._cellTextDocuments.get(t.document)}getNotebookDocument(t){return this.notebookDocuments.get(t)}getNotebookCell(t){let n=this.notebookCellMap.get(t);return n&&n[0]}findNotebookDocumentForCell(t){let n=typeof t=="string"?t:t.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(t){let n=new _u,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(t.notebooks.synchronization.onDidOpenNotebookDocument(o=>{this.notebookDocuments.set(o.notebookDocument.uri,o.notebookDocument);for(let c of o.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(o.notebookDocument),this._onDidOpen.fire(o.notebookDocument)})),i.push(t.notebooks.synchronization.onDidChangeNotebookDocument(o=>{let c=this.notebookDocuments.get(o.notebookDocument.uri);if(c===void 0)return;c.version=o.notebookDocument.version;let u=c.metadata,f=!1,g=o.change;g.metadata!==void 0&&(f=!0,c.metadata=g.metadata);let b=[],x=[],k=[],I=[];if(g.cells!==void 0){let X=g.cells;if(X.structure!==void 0){let D=X.structure.array;if(c.cells.splice(D.start,D.deleteCount,...D.cells!==void 0?D.cells:[]),X.structure.didOpen!==void 0)for(let P of X.structure.didOpen)n.openTextDocument({textDocument:P}),b.push(P.uri);if(X.structure.didClose)for(let P of X.structure.didClose)n.closeTextDocument({textDocument:P}),x.push(P.uri)}if(X.data!==void 0){let D=new Map(X.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=D.get(c.cells[P].document);if(U!==void 0){let ne=c.cells.splice(P,1,U);if(k.push({old:ne[0],new:U}),D.delete(U.document),D.size===0)break}}}if(X.textContent!==void 0)for(let D of X.textContent)n.changeTextDocument({textDocument:D.document,contentChanges:D.changes}),I.push(D.document.uri)}this.updateCellMap(c);let M={notebookDocument:c};f&&(M.metadata={old:u,new:c.metadata});let N=[];for(let X of b)N.push(this.getNotebookCell(X));let B=[];for(let X of x)B.push(this.getNotebookCell(X));let W=[];for(let X of I)W.push(this.getNotebookCell(X));(N.length>0||B.length>0||k.length>0||W.length>0)&&(M.cells={added:N,removed:B,changed:{data:k,textContent:W}}),(M.metadata!==void 0||M.cells!==void 0)&&this._onDidChange.fire(M)})),i.push(t.notebooks.synchronization.onDidSaveNotebookDocument(o=>{let c=this.notebookDocuments.get(o.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(t.notebooks.synchronization.onDidCloseNotebookDocument(o=>{let c=this.notebookDocuments.get(o.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of o.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(o.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(o=>o.dispose())})}updateCellMap(t){for(let n of t.cells)this.notebookCellMap.set(n.document,[n,t])}};ko.NotebookDocuments=Wh});var sw=F(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.MonikerFeature=void 0;var $1=Rt(),W1=e=>class extends e{get moniker(){return{on:t=>{let n=$1.MonikerRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};vu.MonikerFeature=W1});var Jh=F(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.createConnection=We.combineFeatures=We.combineNotebooksFeatures=We.combineLanguagesFeatures=We.combineWorkspaceFeatures=We.combineWindowFeatures=We.combineClientFeatures=We.combineTracerFeatures=We.combineTelemetryFeatures=We.combineConsoleFeatures=We._NotebooksImpl=We._LanguagesImpl=We.BulkUnregistration=We.BulkRegistration=We.ErrorMessageTracker=void 0;var te=Rt(),jn=gc(),Hh=Fh(),ye=Hx(),j1=Vx(),z1=Gx(),H1=Qx(),V1=Lh(),G1=Jx(),Q1=Xx(),J1=Kx(),X1=Yx(),K1=ew(),Y1=nw(),Z1=rw(),eq=iw(),tq=jh(),nq=sw();function zh(e){if(e!==null)return e}var Vh=class{constructor(){this._messages=Object.create(null)}add(t){let n=this._messages[t];n||(n=0),n++,this._messages[t]=n}sendErrors(t){Object.keys(this._messages).forEach(n=>{t.window.showErrorMessage(n)})}};We.ErrorMessageTracker=Vh;var yu=class{constructor(){}rawAttach(t){this._rawConnection=t}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(t){}initialize(t){}error(t){this.send(te.MessageType.Error,t)}warn(t){this.send(te.MessageType.Warning,t)}info(t){this.send(te.MessageType.Info,t)}log(t){this.send(te.MessageType.Log,t)}debug(t){this.send(te.MessageType.Debug,t)}send(t,n){this._rawConnection&&this._rawConnection.sendNotification(te.LogMessageNotification.type,{type:t,message:n}).catch(()=>{(0,te.RAL)().console.error("Sending log message failed")})}},Gh=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}showErrorMessage(t,...n){let i={type:te.MessageType.Error,message:t,actions:n};return this.connection.sendRequest(te.ShowMessageRequest.type,i).then(zh)}showWarningMessage(t,...n){let i={type:te.MessageType.Warning,message:t,actions:n};return this.connection.sendRequest(te.ShowMessageRequest.type,i).then(zh)}showInformationMessage(t,...n){let i={type:te.MessageType.Info,message:t,actions:n};return this.connection.sendRequest(te.ShowMessageRequest.type,i).then(zh)}},aw=(0,G1.ShowDocumentFeature)((0,ye.ProgressFeature)(Gh)),cw;(function(e){function t(){return new xu}e.create=t})(cw||(We.BulkRegistration=cw={}));var xu=class{constructor(){this._registrations=[],this._registered=new Set}add(t,n){let i=jn.string(t)?t:t.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let o=Hh.generateUuid();this._registrations.push({id:o,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},uw;(function(e){function t(){return new As(void 0,[])}e.create=t})(uw||(We.BulkUnregistration=uw={}));var As=class{constructor(t,n){this._connection=t,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(t){this._connection=t}add(t){this._unregistrations.set(t.method,t)}dispose(){let t=[];for(let i of this._unregistrations.values())t.push(i);let n={unregisterations:t};this._connection.sendRequest(te.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(t){let n=jn.string(t)?t:t.method,i=this._unregistrations.get(n);if(!i)return!1;let o={unregisterations:[i]};return this._connection.sendRequest(te.UnregistrationRequest.type,o).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},wu=class{attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}register(t,n,i){return t instanceof xu?this.registerMany(t):t instanceof As?this.registerSingle1(t,n,i):this.registerSingle2(t,n)}registerSingle1(t,n,i){let o=jn.string(n)?n:n.method,c=Hh.generateUuid(),u={registrations:[{id:c,method:o,registerOptions:i||{}}]};return t.isAttached||t.attach(this.connection),this.connection.sendRequest(te.RegistrationRequest.type,u).then(f=>(t.add({id:c,method:o}),t),f=>(this.connection.console.info(`Registering request handler for ${o} failed.`),Promise.reject(f)))}registerSingle2(t,n){let i=jn.string(t)?t:t.method,o=Hh.generateUuid(),c={registrations:[{id:o,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(te.RegistrationRequest.type,c).then(u=>te.Disposable.create(()=>{this.unregisterSingle(o,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${o} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(t,n){let i={unregisterations:[{id:t,method:n}]};return this.connection.sendRequest(te.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${t} failed.`)})}registerMany(t){let n=t.asRegistrationParams();return this.connection.sendRequest(te.RegistrationRequest.type,n).then(()=>new As(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Qh=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}applyEdit(t){function n(o){return o&&!!o.edit}let i=n(t)?t:{edit:t};return this.connection.sendRequest(te.ApplyWorkspaceEditRequest.type,i)}},lw=(0,Q1.FileOperationsFeature)((0,z1.WorkspaceFoldersFeature)((0,j1.ConfigurationFeature)(Qh))),Pu=class{constructor(){this._trace=te.Trace.Off}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}set trace(t){this._trace=t}log(t,n){this._trace!==te.Trace.Off&&this.connection.sendNotification(te.LogTraceNotification.type,{message:t,verbose:this._trace===te.Trace.Verbose?n:void 0}).catch(()=>{})}},Su=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}logEvent(t){this.connection.sendNotification(te.TelemetryEventNotification.type,t).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Cu=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}attachWorkDoneProgress(t){return(0,ye.attachWorkDone)(this.connection,t)}attachPartialResultProgress(t,n){return(0,ye.attachPartialResult)(this.connection,n)}};We._LanguagesImpl=Cu;var dw=(0,Y1.FoldingRangeFeature)((0,nq.MonikerFeature)((0,eq.DiagnosticFeature)((0,Z1.InlayHintFeature)((0,K1.InlineValueFeature)((0,X1.TypeHierarchyFeature)((0,J1.LinkedEditingRangeFeature)((0,V1.SemanticTokensFeature)((0,H1.CallHierarchyFeature)(Cu))))))))),ku=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}attachWorkDoneProgress(t){return(0,ye.attachWorkDone)(this.connection,t)}attachPartialResultProgress(t,n){return(0,ye.attachPartialResult)(this.connection,n)}};We._NotebooksImpl=ku;var fw=(0,tq.NotebookSyncFeature)(ku);function hw(e,t){return function(n){return t(e(n))}}We.combineConsoleFeatures=hw;function gw(e,t){return function(n){return t(e(n))}}We.combineTelemetryFeatures=gw;function pw(e,t){return function(n){return t(e(n))}}We.combineTracerFeatures=pw;function mw(e,t){return function(n){return t(e(n))}}We.combineClientFeatures=mw;function bw(e,t){return function(n){return t(e(n))}}We.combineWindowFeatures=bw;function _w(e,t){return function(n){return t(e(n))}}We.combineWorkspaceFeatures=_w;function vw(e,t){return function(n){return t(e(n))}}We.combineLanguagesFeatures=vw;function yw(e,t){return function(n){return t(e(n))}}We.combineNotebooksFeatures=yw;function rq(e,t){function n(o,c,u){return o&&c?u(o,c):o||c}return{__brand:"features",console:n(e.console,t.console,hw),tracer:n(e.tracer,t.tracer,pw),telemetry:n(e.telemetry,t.telemetry,gw),client:n(e.client,t.client,mw),window:n(e.window,t.window,bw),workspace:n(e.workspace,t.workspace,_w),languages:n(e.languages,t.languages,vw),notebooks:n(e.notebooks,t.notebooks,yw)}}We.combineFeatures=rq;function iq(e,t,n){let i=n&&n.console?new(n.console(yu)):new yu,o=e(i);i.rawAttach(o);let c=n&&n.tracer?new(n.tracer(Pu)):new Pu,u=n&&n.telemetry?new(n.telemetry(Su)):new Su,f=n&&n.client?new(n.client(wu)):new wu,g=n&&n.window?new(n.window(aw)):new aw,b=n&&n.workspace?new(n.workspace(lw)):new lw,x=n&&n.languages?new(n.languages(dw)):new dw,k=n&&n.notebooks?new(n.notebooks(fw)):new fw,I=[i,c,u,f,g,b,x,k];function M(D){return D instanceof Promise?D:jn.thenable(D)?new Promise((P,U)=>{D.then(ne=>P(ne),ne=>U(ne))}):Promise.resolve(D)}let N,B,W,X={listen:()=>o.listen(),sendRequest:(D,...P)=>o.sendRequest(jn.string(D)?D:D.method,...P),onRequest:(D,P)=>o.onRequest(D,P),sendNotification:(D,P)=>{let U=jn.string(D)?D:D.method;return o.sendNotification(U,P)},onNotification:(D,P)=>o.onNotification(D,P),onProgress:o.onProgress,sendProgress:o.sendProgress,onInitialize:D=>(B=D,{dispose:()=>{B=void 0}}),onInitialized:D=>o.onNotification(te.InitializedNotification.type,D),onShutdown:D=>(N=D,{dispose:()=>{N=void 0}}),onExit:D=>(W=D,{dispose:()=>{W=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return f},get window(){return g},get workspace(){return b},get languages(){return x},get notebooks(){return k},onDidChangeConfiguration:D=>o.onNotification(te.DidChangeConfigurationNotification.type,D),onDidChangeWatchedFiles:D=>o.onNotification(te.DidChangeWatchedFilesNotification.type,D),__textDocumentSync:void 0,onDidOpenTextDocument:D=>o.onNotification(te.DidOpenTextDocumentNotification.type,D),onDidChangeTextDocument:D=>o.onNotification(te.DidChangeTextDocumentNotification.type,D),onDidCloseTextDocument:D=>o.onNotification(te.DidCloseTextDocumentNotification.type,D),onWillSaveTextDocument:D=>o.onNotification(te.WillSaveTextDocumentNotification.type,D),onWillSaveTextDocumentWaitUntil:D=>o.onRequest(te.WillSaveTextDocumentWaitUntilRequest.type,D),onDidSaveTextDocument:D=>o.onNotification(te.DidSaveTextDocumentNotification.type,D),sendDiagnostics:D=>o.sendNotification(te.PublishDiagnosticsNotification.type,D),onHover:D=>o.onRequest(te.HoverRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onCompletion:D=>o.onRequest(te.CompletionRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onCompletionResolve:D=>o.onRequest(te.CompletionResolveRequest.type,D),onSignatureHelp:D=>o.onRequest(te.SignatureHelpRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onDeclaration:D=>o.onRequest(te.DeclarationRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onDefinition:D=>o.onRequest(te.DefinitionRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onTypeDefinition:D=>o.onRequest(te.TypeDefinitionRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onImplementation:D=>o.onRequest(te.ImplementationRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onReferences:D=>o.onRequest(te.ReferencesRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onDocumentHighlight:D=>o.onRequest(te.DocumentHighlightRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onDocumentSymbol:D=>o.onRequest(te.DocumentSymbolRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onWorkspaceSymbol:D=>o.onRequest(te.WorkspaceSymbolRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onWorkspaceSymbolResolve:D=>o.onRequest(te.WorkspaceSymbolResolveRequest.type,D),onCodeAction:D=>o.onRequest(te.CodeActionRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onCodeActionResolve:D=>o.onRequest(te.CodeActionResolveRequest.type,(P,U)=>D(P,U)),onCodeLens:D=>o.onRequest(te.CodeLensRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onCodeLensResolve:D=>o.onRequest(te.CodeLensResolveRequest.type,(P,U)=>D(P,U)),onDocumentFormatting:D=>o.onRequest(te.DocumentFormattingRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onDocumentRangeFormatting:D=>o.onRequest(te.DocumentRangeFormattingRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onDocumentOnTypeFormatting:D=>o.onRequest(te.DocumentOnTypeFormattingRequest.type,(P,U)=>D(P,U)),onRenameRequest:D=>o.onRequest(te.RenameRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onPrepareRename:D=>o.onRequest(te.PrepareRenameRequest.type,(P,U)=>D(P,U)),onDocumentLinks:D=>o.onRequest(te.DocumentLinkRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onDocumentLinkResolve:D=>o.onRequest(te.DocumentLinkResolveRequest.type,(P,U)=>D(P,U)),onDocumentColor:D=>o.onRequest(te.DocumentColorRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onColorPresentation:D=>o.onRequest(te.ColorPresentationRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onFoldingRanges:D=>o.onRequest(te.FoldingRangeRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onSelectionRanges:D=>o.onRequest(te.SelectionRangeRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onExecuteCommand:D=>o.onRequest(te.ExecuteCommandRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),dispose:()=>o.dispose()};for(let D of I)D.attach(X);return o.onRequest(te.InitializeRequest.type,D=>{t.initialize(D),jn.string(D.trace)&&(c.trace=te.Trace.fromString(D.trace));for(let P of I)P.initialize(D.capabilities);if(B){let P=B(D,new te.CancellationTokenSource().token,(0,ye.attachWorkDone)(o,D),void 0);return M(P).then(U=>{if(U instanceof te.ResponseError)return U;let ne=U;ne||(ne={capabilities:{}});let _e=ne.capabilities;_e||(_e={},ne.capabilities=_e),_e.textDocumentSync===void 0||_e.textDocumentSync===null?_e.textDocumentSync=jn.number(X.__textDocumentSync)?X.__textDocumentSync:te.TextDocumentSyncKind.None:!jn.number(_e.textDocumentSync)&&!jn.number(_e.textDocumentSync.change)&&(_e.textDocumentSync.change=jn.number(X.__textDocumentSync)?X.__textDocumentSync:te.TextDocumentSyncKind.None);for(let Ue of I)Ue.fillServerCapabilities(_e);return ne})}else{let P={capabilities:{textDocumentSync:te.TextDocumentSyncKind.None}};for(let U of I)U.fillServerCapabilities(P.capabilities);return P}}),o.onRequest(te.ShutdownRequest.type,()=>{if(t.shutdownReceived=!0,N)return N(new te.CancellationTokenSource().token)}),o.onNotification(te.ExitNotification.type,()=>{try{W&&W()}finally{t.shutdownReceived?t.exit(0):t.exit(1)}}),o.onNotification(te.SetTraceNotification.type,D=>{c.trace=te.Trace.fromString(D.value)}),X}We.createConnection=iq});var xw=F(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var oq=require("url"),tr=require("path"),Xh=require("fs"),eg=require("child_process");function sq(e){let t=oq.parse(e);if(t.protocol!=="file:"||!t.path)return;let n=t.path.split("/");for(var i=0,o=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=sq;function Kh(){return process.platform==="win32"}function Ru(e,t,n,i){let o="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,f)=>{let g=process.env,b=Object.create(null);Object.keys(g).forEach(x=>b[x]=g[x]),t&&Xh.existsSync(t)&&(b[o]?b[o]=t+tr.delimiter+b[o]:b[o]=t,i&&i(`NODE_PATH value is: ${b[o]}`)),b.ELECTRON_RUN_AS_NODE="1";try{let x=(0,eg.fork)("",[],{cwd:n,env:b,execArgv:["-e",c]});if(x.pid===void 0){f(new Error(`Starting process to resolve node module ${e} failed`));return}x.on("error",I=>{f(I)}),x.on("message",I=>{I.c==="r"&&(x.send({c:"e"}),I.s?u(I.r):f(new Error(`Failed to resolve module: ${e}`)))});let k={c:"rs",a:e};x.send(k)}catch(x){f(x)}})}mn.resolve=Ru;function Yh(e){let t="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Kh()&&(t="npm.cmd",i.shell=!0);let o=()=>{};try{process.on("SIGPIPE",o);let c=(0,eg.spawnSync)(t,["config","get","prefix"],i).stdout;if(!c){e&&e("'npm config get prefix' didn't return a value.");return}let u=c.trim();return e&&e(`'npm config get prefix' value is: ${u}`),u.length>0?Kh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",o)}}mn.resolveGlobalNodePath=Yh;function aq(e){let t="yarn",n={encoding:"utf8"};Kh()&&(t="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let o=(0,eg.spawnSync)(t,["global","dir","--json"],n),c=o.stdout;if(!c){e&&(e("'yarn global dir' didn't return a value."),o.stderr&&e(o.stderr));return}let u=c.trim().split(/\r?\n/);for(let f of u)try{let g=JSON.parse(f);if(g.type==="log")return tr.join(g.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=aq;var Zh;(function(e){let t;function n(){return t!==void 0||(process.platform==="win32"?t=!1:t=!Xh.existsSync(__filename.toUpperCase())||!Xh.existsSync(__filename.toLowerCase())),t}e.isCaseSensitive=n;function i(o,c){return n()?tr.normalize(c).indexOf(tr.normalize(o))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(o).toLowerCase())===0}e.isParent=i})(Zh||(mn.FileSystem=Zh={}));function cq(e,t,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(e,n)),Ru(t,n,n,i).then(o=>Zh.isParent(n,o)?o:Promise.reject(new Error(`Failed to load ${t} from node path location.`))).then(void 0,o=>Ru(t,Yh(i),e,i))):Ru(t,Yh(i),e,i)}mn.resolveModulePath=cq});var tg=F((TH,ww)=>{"use strict";ww.exports=Rt()});var Pw=F(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.InlineCompletionFeature=void 0;var uq=Rt(),lq=e=>class extends e{get inlineCompletion(){return{on:t=>this.connection.onRequest(uq.InlineCompletionRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n)))}}};Tu.InlineCompletionFeature=lq});var kw=F(Kt=>{"use strict";var dq=Kt&&Kt.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),Cw=Kt&&Kt.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&dq(t,e,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var fq=Lh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return fq.SemanticTokensBuilder}});var hq=Pw();Cw(Rt(),Kt);var gq=$h();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return gq.TextDocuments}});var pq=jh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return pq.NotebookDocuments}});Cw(Jh(),Kt);var Sw;(function(e){e.all={__brand:"features",languages:hq.InlineCompletionFeature}})(Sw||(Kt.ProposedFeatures=Sw={}))});var Fw=F(zn=>{"use strict";var mq=zn&&zn.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),Ew=zn&&zn.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&mq(t,e,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var Rw=require("node:util"),ng=gc(),bq=Jh(),Ms=xw(),Oi=tg();Ew(tg(),zn);Ew(kw(),zn);var Tw;(function(e){e.uriToFilePath=Ms.uriToFilePath,e.resolveGlobalNodePath=Ms.resolveGlobalNodePath,e.resolveGlobalYarnPath=Ms.resolveGlobalYarnPath,e.resolve=Ms.resolve,e.resolveModulePath=Ms.resolveModulePath})(Tw||(zn.Files=Tw={}));var Dw;function Du(){if(Dw!==void 0)try{Dw.end()}catch{}}var Ro=!1,Iw;function _q(){let e="--clientProcessId";function t(n){try{let i=parseInt(n);isNaN(i)||(Iw=setInterval(()=>{try{process.kill(i,0)}catch{Du(),process.exit(Ro?0:1)}},3e3))}catch{}}for(let n=2;n{let t=e.processId;ng.number(t)&&Iw===void 0&&setInterval(()=>{try{process.kill(t,0)}catch{process.exit(Ro?0:1)}},3e3)},get shutdownReceived(){return Ro},set shutdownReceived(e){Ro=e},exit:e=>{Du(),process.exit(e)}};function yq(e,t,n,i){let o,c,u,f;return e!==void 0&&e.__brand==="features"&&(o=e,e=t,t=n,n=i),Oi.ConnectionStrategy.is(e)||Oi.ConnectionOptions.is(e)?f=e:(c=e,u=t,f=n),xq(c,u,f,o)}zn.createConnection=yq;function xq(e,t,n,i){let o=!1;if(!e&&!t&&process.argv.length>2){let g,b,x=process.argv.slice(2);for(let k=0;k{Du(),process.exit(Ro?0:1)}),g.on("close",()=>{Du(),process.exit(Ro?0:1)})}let f=g=>{let b=(0,Oi.createProtocolConnection)(e,t,g,n);return o&&wq(g),b};return(0,bq.createConnection)(f,vq,i)}function wq(e){function t(i){return i.map(o=>typeof o=="string"?o:(0,Rw.inspect)(o)).join(" ")}let n=new Map;console.assert=function(o,...c){if(!o)if(c.length===0)e.error("Assertion failed");else{let[u,...f]=c;e.error(`Assertion failed: ${u} ${t(f)}`)}},console.count=function(o="default"){let c=String(o),u=n.get(c)??0;u+=1,n.set(c,u),e.log(`${c}: ${c}`)},console.countReset=function(o){o===void 0?n.clear():n.delete(String(o))},console.debug=function(...o){e.log(t(o))},console.dir=function(o,c){e.log((0,Rw.inspect)(o,c))},console.log=function(...o){e.log(t(o))},console.error=function(...o){e.error(t(o))},console.trace=function(...o){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";o.length!==0&&(u+=`: ${t(o)}`),e.log(`${u} +${c}`)},console.warn=function(...o){e.warn(t(o))}}});var Mw=F((AH,Aw)=>{"use strict";Aw.exports=Fw()});var Uw=F((QH,Bw)=>{"use strict";function Tq(){this.__data__=[],this.size=0}Bw.exports=Tq});var sg=F((JH,$w)=>{"use strict";function Dq(e,t){return e===t||e!==e&&t!==t}$w.exports=Dq});var qs=F((XH,Ww)=>{"use strict";var Eq=sg();function Iq(e,t){for(var n=e.length;n--;)if(Eq(e[n][0],t))return n;return-1}Ww.exports=Iq});var zw=F((KH,jw)=>{"use strict";var Fq=qs(),Aq=Array.prototype,Mq=Aq.splice;function Nq(e){var t=this.__data__,n=Fq(t,e);if(n<0)return!1;var i=t.length-1;return n==i?t.pop():Mq.call(t,n,1),--this.size,!0}jw.exports=Nq});var Vw=F((YH,Hw)=>{"use strict";var qq=qs();function Lq(e){var t=this.__data__,n=qq(t,e);return n<0?void 0:t[n][1]}Hw.exports=Lq});var Qw=F((ZH,Gw)=>{"use strict";var Oq=qs();function Bq(e){return Oq(this.__data__,e)>-1}Gw.exports=Bq});var Xw=F((e3,Jw)=>{"use strict";var Uq=qs();function $q(e,t){var n=this.__data__,i=Uq(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}Jw.exports=$q});var Ls=F((t3,Kw)=>{"use strict";var Wq=Uw(),jq=zw(),zq=Vw(),Hq=Qw(),Vq=Xw();function Io(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t{"use strict";var Gq=Ls();function Qq(){this.__data__=new Gq,this.size=0}Yw.exports=Qq});var tP=F((r3,eP)=>{"use strict";function Jq(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}eP.exports=Jq});var rP=F((i3,nP)=>{"use strict";function Xq(e){return this.__data__.get(e)}nP.exports=Xq});var oP=F((o3,iP)=>{"use strict";function Kq(e){return this.__data__.has(e)}iP.exports=Kq});var ag=F((s3,sP)=>{"use strict";var Yq=typeof global=="object"&&global&&global.Object===Object&&global;sP.exports=Yq});var nr=F((a3,aP)=>{"use strict";var Zq=ag(),eL=typeof self=="object"&&self&&self.Object===Object&&self,tL=Zq||eL||Function("return this")();aP.exports=tL});var Fu=F((c3,cP)=>{"use strict";var nL=nr(),rL=nL.Symbol;cP.exports=rL});var fP=F((u3,dP)=>{"use strict";var uP=Fu(),lP=Object.prototype,iL=lP.hasOwnProperty,oL=lP.toString,Os=uP?uP.toStringTag:void 0;function sL(e){var t=iL.call(e,Os),n=e[Os];try{e[Os]=void 0;var i=!0}catch{}var o=oL.call(e);return i&&(t?e[Os]=n:delete e[Os]),o}dP.exports=sL});var gP=F((l3,hP)=>{"use strict";var aL=Object.prototype,cL=aL.toString;function uL(e){return cL.call(e)}hP.exports=uL});var Bs=F((d3,bP)=>{"use strict";var pP=Fu(),lL=fP(),dL=gP(),fL="[object Null]",hL="[object Undefined]",mP=pP?pP.toStringTag:void 0;function gL(e){return e==null?e===void 0?hL:fL:mP&&mP in Object(e)?lL(e):dL(e)}bP.exports=gL});var Fo=F((f3,_P)=>{"use strict";function pL(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}_P.exports=pL});var cg=F((h3,vP)=>{"use strict";var mL=Bs(),bL=Fo(),_L="[object AsyncFunction]",vL="[object Function]",yL="[object GeneratorFunction]",xL="[object Proxy]";function wL(e){if(!bL(e))return!1;var t=mL(e);return t==vL||t==yL||t==_L||t==xL}vP.exports=wL});var xP=F((g3,yP)=>{"use strict";var PL=nr(),SL=PL["__core-js_shared__"];yP.exports=SL});var SP=F((p3,PP)=>{"use strict";var ug=xP(),wP=function(){var e=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function CL(e){return!!wP&&wP in e}PP.exports=CL});var lg=F((m3,CP)=>{"use strict";var kL=Function.prototype,RL=kL.toString;function TL(e){if(e!=null){try{return RL.call(e)}catch{}try{return e+""}catch{}}return""}CP.exports=TL});var RP=F((b3,kP)=>{"use strict";var DL=cg(),EL=SP(),IL=Fo(),FL=lg(),AL=/[\\^$.*+?()[\]{}|]/g,ML=/^\[object .+?Constructor\]$/,NL=Function.prototype,qL=Object.prototype,LL=NL.toString,OL=qL.hasOwnProperty,BL=RegExp("^"+LL.call(OL).replace(AL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function UL(e){if(!IL(e)||EL(e))return!1;var t=DL(e)?BL:ML;return t.test(FL(e))}kP.exports=UL});var DP=F((_3,TP)=>{"use strict";function $L(e,t){return e?.[t]}TP.exports=$L});var hi=F((v3,EP)=>{"use strict";var WL=RP(),jL=DP();function zL(e,t){var n=jL(e,t);return WL(n)?n:void 0}EP.exports=zL});var Au=F((y3,IP)=>{"use strict";var HL=hi(),VL=nr(),GL=HL(VL,"Map");IP.exports=GL});var Us=F((x3,FP)=>{"use strict";var QL=hi(),JL=QL(Object,"create");FP.exports=JL});var NP=F((w3,MP)=>{"use strict";var AP=Us();function XL(){this.__data__=AP?AP(null):{},this.size=0}MP.exports=XL});var LP=F((P3,qP)=>{"use strict";function KL(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}qP.exports=KL});var BP=F((S3,OP)=>{"use strict";var YL=Us(),ZL="__lodash_hash_undefined__",eO=Object.prototype,tO=eO.hasOwnProperty;function nO(e){var t=this.__data__;if(YL){var n=t[e];return n===ZL?void 0:n}return tO.call(t,e)?t[e]:void 0}OP.exports=nO});var $P=F((C3,UP)=>{"use strict";var rO=Us(),iO=Object.prototype,oO=iO.hasOwnProperty;function sO(e){var t=this.__data__;return rO?t[e]!==void 0:oO.call(t,e)}UP.exports=sO});var jP=F((k3,WP)=>{"use strict";var aO=Us(),cO="__lodash_hash_undefined__";function uO(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=aO&&t===void 0?cO:t,this}WP.exports=uO});var HP=F((R3,zP)=>{"use strict";var lO=NP(),dO=LP(),fO=BP(),hO=$P(),gO=jP();function Ao(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t{"use strict";var VP=HP(),pO=Ls(),mO=Au();function bO(){this.size=0,this.__data__={hash:new VP,map:new(mO||pO),string:new VP}}GP.exports=bO});var XP=F((D3,JP)=>{"use strict";function _O(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}JP.exports=_O});var $s=F((E3,KP)=>{"use strict";var vO=XP();function yO(e,t){var n=e.__data__;return vO(t)?n[typeof t=="string"?"string":"hash"]:n.map}KP.exports=yO});var ZP=F((I3,YP)=>{"use strict";var xO=$s();function wO(e){var t=xO(this,e).delete(e);return this.size-=t?1:0,t}YP.exports=wO});var tS=F((F3,eS)=>{"use strict";var PO=$s();function SO(e){return PO(this,e).get(e)}eS.exports=SO});var rS=F((A3,nS)=>{"use strict";var CO=$s();function kO(e){return CO(this,e).has(e)}nS.exports=kO});var oS=F((M3,iS)=>{"use strict";var RO=$s();function TO(e,t){var n=RO(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}iS.exports=TO});var aS=F((N3,sS)=>{"use strict";var DO=QP(),EO=ZP(),IO=tS(),FO=rS(),AO=oS();function Mo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t{"use strict";var MO=Ls(),NO=Au(),qO=aS(),LO=200;function OO(e,t){var n=this.__data__;if(n instanceof MO){var i=n.__data__;if(!NO||i.length{"use strict";var BO=Ls(),UO=Zw(),$O=tP(),WO=rP(),jO=oP(),zO=uS();function No(e){var t=this.__data__=new BO(e);this.size=t.size}No.prototype.clear=UO;No.prototype.delete=$O;No.prototype.get=WO;No.prototype.has=jO;No.prototype.set=zO;lS.exports=No});var hS=F((O3,fS)=>{"use strict";function HO(e,t){for(var n=-1,i=e==null?0:e.length;++n{"use strict";var VO=hi(),GO=function(){try{var e=VO(Object,"defineProperty");return e({},"",{}),e}catch{}}();gS.exports=GO});var dg=F((U3,bS)=>{"use strict";var mS=pS();function QO(e,t,n){t=="__proto__"&&mS?mS(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}bS.exports=QO});var fg=F(($3,_S)=>{"use strict";var JO=dg(),XO=sg(),KO=Object.prototype,YO=KO.hasOwnProperty;function ZO(e,t,n){var i=e[t];(!(YO.call(e,t)&&XO(i,n))||n===void 0&&!(t in e))&&JO(e,t,n)}_S.exports=ZO});var Ws=F((W3,vS)=>{"use strict";var eB=fg(),tB=dg();function nB(e,t,n,i){var o=!n;n||(n={});for(var c=-1,u=t.length;++c{"use strict";function rB(e,t){for(var n=-1,i=Array(e);++n{"use strict";function iB(e){return e!=null&&typeof e=="object"}wS.exports=iB});var SS=F((H3,PS)=>{"use strict";var oB=Bs(),sB=qo(),aB="[object Arguments]";function cB(e){return sB(e)&&oB(e)==aB}PS.exports=cB});var TS=F((V3,RS)=>{"use strict";var CS=SS(),uB=qo(),kS=Object.prototype,lB=kS.hasOwnProperty,dB=kS.propertyIsEnumerable,fB=CS(function(){return arguments}())?CS:function(e){return uB(e)&&lB.call(e,"callee")&&!dB.call(e,"callee")};RS.exports=fB});var Mu=F((G3,DS)=>{"use strict";var hB=Array.isArray;DS.exports=hB});var IS=F((Q3,ES)=>{"use strict";function gB(){return!1}ES.exports=gB});var hg=F((js,Lo)=>{"use strict";var pB=nr(),mB=IS(),MS=typeof js=="object"&&js&&!js.nodeType&&js,FS=MS&&typeof Lo=="object"&&Lo&&!Lo.nodeType&&Lo,bB=FS&&FS.exports===MS,AS=bB?pB.Buffer:void 0,_B=AS?AS.isBuffer:void 0,vB=_B||mB;Lo.exports=vB});var qS=F((J3,NS)=>{"use strict";var yB=9007199254740991,xB=/^(?:0|[1-9]\d*)$/;function wB(e,t){var n=typeof e;return t=t??yB,!!t&&(n=="number"||n!="symbol"&&xB.test(e))&&e>-1&&e%1==0&&e{"use strict";var PB=9007199254740991;function SB(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=PB}LS.exports=SB});var BS=F((K3,OS)=>{"use strict";var CB=Bs(),kB=gg(),RB=qo(),TB="[object Arguments]",DB="[object Array]",EB="[object Boolean]",IB="[object Date]",FB="[object Error]",AB="[object Function]",MB="[object Map]",NB="[object Number]",qB="[object Object]",LB="[object RegExp]",OB="[object Set]",BB="[object String]",UB="[object WeakMap]",$B="[object ArrayBuffer]",WB="[object DataView]",jB="[object Float32Array]",zB="[object Float64Array]",HB="[object Int8Array]",VB="[object Int16Array]",GB="[object Int32Array]",QB="[object Uint8Array]",JB="[object Uint8ClampedArray]",XB="[object Uint16Array]",KB="[object Uint32Array]",lt={};lt[jB]=lt[zB]=lt[HB]=lt[VB]=lt[GB]=lt[QB]=lt[JB]=lt[XB]=lt[KB]=!0;lt[TB]=lt[DB]=lt[$B]=lt[EB]=lt[WB]=lt[IB]=lt[FB]=lt[AB]=lt[MB]=lt[NB]=lt[qB]=lt[LB]=lt[OB]=lt[BB]=lt[UB]=!1;function YB(e){return RB(e)&&kB(e.length)&&!!lt[CB(e)]}OS.exports=YB});var Nu=F((Y3,US)=>{"use strict";function ZB(e){return function(t){return e(t)}}US.exports=ZB});var qu=F((zs,Oo)=>{"use strict";var eU=ag(),$S=typeof zs=="object"&&zs&&!zs.nodeType&&zs,Hs=$S&&typeof Oo=="object"&&Oo&&!Oo.nodeType&&Oo,tU=Hs&&Hs.exports===$S,pg=tU&&eU.process,nU=function(){try{var e=Hs&&Hs.require&&Hs.require("util").types;return e||pg&&pg.binding&&pg.binding("util")}catch{}}();Oo.exports=nU});var HS=F((Z3,zS)=>{"use strict";var rU=BS(),iU=Nu(),WS=qu(),jS=WS&&WS.isTypedArray,oU=jS?iU(jS):rU;zS.exports=oU});var mg=F((e4,VS)=>{"use strict";var sU=xS(),aU=TS(),cU=Mu(),uU=hg(),lU=qS(),dU=HS(),fU=Object.prototype,hU=fU.hasOwnProperty;function gU(e,t){var n=cU(e),i=!n&&aU(e),o=!n&&!i&&uU(e),c=!n&&!i&&!o&&dU(e),u=n||i||o||c,f=u?sU(e.length,String):[],g=f.length;for(var b in e)(t||hU.call(e,b))&&!(u&&(b=="length"||o&&(b=="offset"||b=="parent")||c&&(b=="buffer"||b=="byteLength"||b=="byteOffset")||lU(b,g)))&&f.push(b);return f}VS.exports=gU});var Lu=F((t4,GS)=>{"use strict";var pU=Object.prototype;function mU(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||pU;return e===n}GS.exports=mU});var bg=F((n4,QS)=>{"use strict";function bU(e,t){return function(n){return e(t(n))}}QS.exports=bU});var XS=F((r4,JS)=>{"use strict";var _U=bg(),vU=_U(Object.keys,Object);JS.exports=vU});var YS=F((i4,KS)=>{"use strict";var yU=Lu(),xU=XS(),wU=Object.prototype,PU=wU.hasOwnProperty;function SU(e){if(!yU(e))return xU(e);var t=[];for(var n in Object(e))PU.call(e,n)&&n!="constructor"&&t.push(n);return t}KS.exports=SU});var _g=F((o4,ZS)=>{"use strict";var CU=cg(),kU=gg();function RU(e){return e!=null&&kU(e.length)&&!CU(e)}ZS.exports=RU});var Ou=F((s4,eC)=>{"use strict";var TU=mg(),DU=YS(),EU=_g();function IU(e){return EU(e)?TU(e):DU(e)}eC.exports=IU});var nC=F((a4,tC)=>{"use strict";var FU=Ws(),AU=Ou();function MU(e,t){return e&&FU(t,AU(t),e)}tC.exports=MU});var iC=F((c4,rC)=>{"use strict";function NU(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}rC.exports=NU});var sC=F((u4,oC)=>{"use strict";var qU=Fo(),LU=Lu(),OU=iC(),BU=Object.prototype,UU=BU.hasOwnProperty;function $U(e){if(!qU(e))return OU(e);var t=LU(e),n=[];for(var i in e)i=="constructor"&&(t||!UU.call(e,i))||n.push(i);return n}oC.exports=$U});var Bu=F((l4,aC)=>{"use strict";var WU=mg(),jU=sC(),zU=_g();function HU(e){return zU(e)?WU(e,!0):jU(e)}aC.exports=HU});var uC=F((d4,cC)=>{"use strict";var VU=Ws(),GU=Bu();function QU(e,t){return e&&VU(t,GU(t),e)}cC.exports=QU});var gC=F((Vs,Bo)=>{"use strict";var JU=nr(),hC=typeof Vs=="object"&&Vs&&!Vs.nodeType&&Vs,lC=hC&&typeof Bo=="object"&&Bo&&!Bo.nodeType&&Bo,XU=lC&&lC.exports===hC,dC=XU?JU.Buffer:void 0,fC=dC?dC.allocUnsafe:void 0;function KU(e,t){if(t)return e.slice();var n=e.length,i=fC?fC(n):new e.constructor(n);return e.copy(i),i}Bo.exports=KU});var mC=F((f4,pC)=>{"use strict";function YU(e,t){var n=-1,i=e.length;for(t||(t=Array(i));++n{"use strict";function ZU(e,t){for(var n=-1,i=e==null?0:e.length,o=0,c=[];++n{"use strict";function e$(){return[]}vC.exports=e$});var Uu=F((p4,xC)=>{"use strict";var t$=_C(),n$=vg(),r$=Object.prototype,i$=r$.propertyIsEnumerable,yC=Object.getOwnPropertySymbols,o$=yC?function(e){return e==null?[]:(e=Object(e),t$(yC(e),function(t){return i$.call(e,t)}))}:n$;xC.exports=o$});var PC=F((m4,wC)=>{"use strict";var s$=Ws(),a$=Uu();function c$(e,t){return s$(e,a$(e),t)}wC.exports=c$});var yg=F((b4,SC)=>{"use strict";function u$(e,t){for(var n=-1,i=t.length,o=e.length;++n{"use strict";var l$=bg(),d$=l$(Object.getPrototypeOf,Object);CC.exports=d$});var wg=F((v4,kC)=>{"use strict";var f$=yg(),h$=xg(),g$=Uu(),p$=vg(),m$=Object.getOwnPropertySymbols,b$=m$?function(e){for(var t=[];e;)f$(t,g$(e)),e=h$(e);return t}:p$;kC.exports=b$});var TC=F((y4,RC)=>{"use strict";var _$=Ws(),v$=wg();function y$(e,t){return _$(e,v$(e),t)}RC.exports=y$});var Pg=F((x4,DC)=>{"use strict";var x$=yg(),w$=Mu();function P$(e,t,n){var i=t(e);return w$(e)?i:x$(i,n(e))}DC.exports=P$});var IC=F((w4,EC)=>{"use strict";var S$=Pg(),C$=Uu(),k$=Ou();function R$(e){return S$(e,k$,C$)}EC.exports=R$});var AC=F((P4,FC)=>{"use strict";var T$=Pg(),D$=wg(),E$=Bu();function I$(e){return T$(e,E$,D$)}FC.exports=I$});var NC=F((S4,MC)=>{"use strict";var F$=hi(),A$=nr(),M$=F$(A$,"DataView");MC.exports=M$});var LC=F((C4,qC)=>{"use strict";var N$=hi(),q$=nr(),L$=N$(q$,"Promise");qC.exports=L$});var BC=F((k4,OC)=>{"use strict";var O$=hi(),B$=nr(),U$=O$(B$,"Set");OC.exports=U$});var $C=F((R4,UC)=>{"use strict";var $$=hi(),W$=nr(),j$=$$(W$,"WeakMap");UC.exports=j$});var $u=F((T4,QC)=>{"use strict";var Sg=NC(),Cg=Au(),kg=LC(),Rg=BC(),Tg=$C(),GC=Bs(),Uo=lg(),WC="[object Map]",z$="[object Object]",jC="[object Promise]",zC="[object Set]",HC="[object WeakMap]",VC="[object DataView]",H$=Uo(Sg),V$=Uo(Cg),G$=Uo(kg),Q$=Uo(Rg),J$=Uo(Tg),Bi=GC;(Sg&&Bi(new Sg(new ArrayBuffer(1)))!=VC||Cg&&Bi(new Cg)!=WC||kg&&Bi(kg.resolve())!=jC||Rg&&Bi(new Rg)!=zC||Tg&&Bi(new Tg)!=HC)&&(Bi=function(e){var t=GC(e),n=t==z$?e.constructor:void 0,i=n?Uo(n):"";if(i)switch(i){case H$:return VC;case V$:return WC;case G$:return jC;case Q$:return zC;case J$:return HC}return t});QC.exports=Bi});var XC=F((D4,JC)=>{"use strict";var X$=Object.prototype,K$=X$.hasOwnProperty;function Y$(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]=="string"&&K$.call(e,"index")&&(n.index=e.index,n.input=e.input),n}JC.exports=Y$});var YC=F((E4,KC)=>{"use strict";var Z$=nr(),eW=Z$.Uint8Array;KC.exports=eW});var Wu=F((I4,ek)=>{"use strict";var ZC=YC();function tW(e){var t=new e.constructor(e.byteLength);return new ZC(t).set(new ZC(e)),t}ek.exports=tW});var nk=F((F4,tk)=>{"use strict";var nW=Wu();function rW(e,t){var n=t?nW(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}tk.exports=rW});var ik=F((A4,rk)=>{"use strict";var iW=/\w*$/;function oW(e){var t=new e.constructor(e.source,iW.exec(e));return t.lastIndex=e.lastIndex,t}rk.exports=oW});var uk=F((M4,ck)=>{"use strict";var ok=Fu(),sk=ok?ok.prototype:void 0,ak=sk?sk.valueOf:void 0;function sW(e){return ak?Object(ak.call(e)):{}}ck.exports=sW});var dk=F((N4,lk)=>{"use strict";var aW=Wu();function cW(e,t){var n=t?aW(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}lk.exports=cW});var hk=F((q4,fk)=>{"use strict";var uW=Wu(),lW=nk(),dW=ik(),fW=uk(),hW=dk(),gW="[object Boolean]",pW="[object Date]",mW="[object Map]",bW="[object Number]",_W="[object RegExp]",vW="[object Set]",yW="[object String]",xW="[object Symbol]",wW="[object ArrayBuffer]",PW="[object DataView]",SW="[object Float32Array]",CW="[object Float64Array]",kW="[object Int8Array]",RW="[object Int16Array]",TW="[object Int32Array]",DW="[object Uint8Array]",EW="[object Uint8ClampedArray]",IW="[object Uint16Array]",FW="[object Uint32Array]";function AW(e,t,n){var i=e.constructor;switch(t){case wW:return uW(e);case gW:case pW:return new i(+e);case PW:return lW(e,n);case SW:case CW:case kW:case RW:case TW:case DW:case EW:case IW:case FW:return hW(e,n);case mW:return new i;case bW:case yW:return new i(e);case _W:return dW(e);case vW:return new i;case xW:return fW(e)}}fk.exports=AW});var mk=F((L4,pk)=>{"use strict";var MW=Fo(),gk=Object.create,NW=function(){function e(){}return function(t){if(!MW(t))return{};if(gk)return gk(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();pk.exports=NW});var _k=F((O4,bk)=>{"use strict";var qW=mk(),LW=xg(),OW=Lu();function BW(e){return typeof e.constructor=="function"&&!OW(e)?qW(LW(e)):{}}bk.exports=BW});var yk=F((B4,vk)=>{"use strict";var UW=$u(),$W=qo(),WW="[object Map]";function jW(e){return $W(e)&&UW(e)==WW}vk.exports=jW});var Sk=F((U4,Pk)=>{"use strict";var zW=yk(),HW=Nu(),xk=qu(),wk=xk&&xk.isMap,VW=wk?HW(wk):zW;Pk.exports=VW});var kk=F(($4,Ck)=>{"use strict";var GW=$u(),QW=qo(),JW="[object Set]";function XW(e){return QW(e)&&GW(e)==JW}Ck.exports=XW});var Ek=F((W4,Dk)=>{"use strict";var KW=kk(),YW=Nu(),Rk=qu(),Tk=Rk&&Rk.isSet,ZW=Tk?YW(Tk):KW;Dk.exports=ZW});var Nk=F((j4,Mk)=>{"use strict";var ej=dS(),tj=hS(),nj=fg(),rj=nC(),ij=uC(),oj=gC(),sj=mC(),aj=PC(),cj=TC(),uj=IC(),lj=AC(),dj=$u(),fj=XC(),hj=hk(),gj=_k(),pj=Mu(),mj=hg(),bj=Sk(),_j=Fo(),vj=Ek(),yj=Ou(),xj=Bu(),wj=1,Pj=2,Sj=4,Ik="[object Arguments]",Cj="[object Array]",kj="[object Boolean]",Rj="[object Date]",Tj="[object Error]",Fk="[object Function]",Dj="[object GeneratorFunction]",Ej="[object Map]",Ij="[object Number]",Ak="[object Object]",Fj="[object RegExp]",Aj="[object Set]",Mj="[object String]",Nj="[object Symbol]",qj="[object WeakMap]",Lj="[object ArrayBuffer]",Oj="[object DataView]",Bj="[object Float32Array]",Uj="[object Float64Array]",$j="[object Int8Array]",Wj="[object Int16Array]",jj="[object Int32Array]",zj="[object Uint8Array]",Hj="[object Uint8ClampedArray]",Vj="[object Uint16Array]",Gj="[object Uint32Array]",ot={};ot[Ik]=ot[Cj]=ot[Lj]=ot[Oj]=ot[kj]=ot[Rj]=ot[Bj]=ot[Uj]=ot[$j]=ot[Wj]=ot[jj]=ot[Ej]=ot[Ij]=ot[Ak]=ot[Fj]=ot[Aj]=ot[Mj]=ot[Nj]=ot[zj]=ot[Hj]=ot[Vj]=ot[Gj]=!0;ot[Tj]=ot[Fk]=ot[qj]=!1;function ju(e,t,n,i,o,c){var u,f=t&wj,g=t&Pj,b=t&Sj;if(n&&(u=o?n(e,i,o,c):n(e)),u!==void 0)return u;if(!_j(e))return e;var x=pj(e);if(x){if(u=fj(e),!f)return sj(e,u)}else{var k=dj(e),I=k==Fk||k==Dj;if(mj(e))return oj(e,f);if(k==Ak||k==Ik||I&&!o){if(u=g||I?{}:gj(e),!f)return g?cj(e,ij(u,e)):aj(e,rj(u,e))}else{if(!ot[k])return o?e:{};u=hj(e,k,f)}}c||(c=new ej);var M=c.get(e);if(M)return M;c.set(e,u),vj(e)?e.forEach(function(W){u.add(ju(W,t,n,W,e,c))}):bj(e)&&e.forEach(function(W,X){u.set(X,ju(W,t,n,X,e,c))});var N=b?g?lj:uj:g?xj:yj,B=x?void 0:N(e);return tj(B||e,function(W,X){B&&(X=W,W=e[X]),nj(u,X,ju(W,t,n,X,e,c))}),u}Mk.exports=ju});var Lk=F((z4,qk)=>{"use strict";var Qj=Nk(),Jj=1,Xj=4;function Kj(e){return Qj(e,Jj|Xj)}qk.exports=Kj});var Bk=F((Ok,zu)=>{"use strict";(function(e,t){"use strict";typeof define=="function"&&define.amd?define(t):typeof zu=="object"&&zu.exports?zu.exports=t():e.log=t()})(Ok,function(){"use strict";var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],o={},c=null;function u(N,B){var W=N[B];if(typeof W.bind=="function")return W.bind(N);try{return Function.prototype.bind.call(W,N)}catch{return function(){return Function.prototype.apply.apply(W,[N,arguments])}}}function f(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function g(N){return N==="debug"&&(N="log"),typeof console===t?!1:N==="trace"&&n?f:console[N]!==void 0?u(console,N):console.log!==void 0?u(console,"log"):e}function b(){for(var N=this.getLevel(),B=0;B=0&&Y<=W.levels.SILENT)return Y;throw new TypeError("log.setLevel() called with invalid level: "+xe)}W.name=N,W.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},W.methodFactory=B||k,W.getLevel=function(){return P??D??X},W.setLevel=function(xe,Y){return P=Ke(xe),Y!==!1&&ne(P),b.call(W)},W.setDefaultLevel=function(xe){D=Ke(xe),_e()||W.setLevel(xe,!1)},W.resetLevel=function(){P=null,Ue(),b.call(W)},W.enableAll=function(xe){W.setLevel(W.levels.TRACE,xe)},W.disableAll=function(xe){W.setLevel(W.levels.SILENT,xe)},W.rebuild=function(){if(c!==W&&(X=Ke(c.getLevel())),b.call(W),c===W)for(var xe in o)o[xe].rebuild()},X=Ke(c?c.getLevel():"WARN");var Dt=_e();Dt!=null&&(P=Ke(Dt)),b.call(W)}c=new I,c.getLogger=function(B){if(typeof B!="symbol"&&typeof B!="string"||B==="")throw new TypeError("You must supply a name when creating a logger.");var W=o[B];return W||(W=o[B]=new I(B,c.methodFactory)),W};var M=typeof window!==t?window.log:void 0;return c.noConflict=function(){return typeof window!==t&&window.log===c&&(window.log=M),c},c.getLoggers=function(){return o},c.default=c,c})});var Vu=F(($o,Xs)=>{"use strict";(function(){var e,t="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",f=500,g="__lodash_placeholder__",b=1,x=2,k=4,I=1,M=2,N=1,B=2,W=4,X=8,D=16,P=32,U=64,ne=128,_e=256,Ue=512,Ke=30,Dt="...",xe=800,Y=16,H=1,ae=2,ie=3,ke=1/0,ge=9007199254740991,pe=17976931348623157e292,wt=NaN,je=4294967295,ze=je-1,bn=je>>>1,xr=[["ary",ne],["bind",N],["bindKey",B],["curry",X],["curryRight",D],["flip",Ue],["partial",P],["partialRight",U],["rearg",_e]],Vn="[object Arguments]",ur="[object Array]",vi="[object AsyncFunction]",lr="[object Boolean]",dr="[object Date]",$i="[object DOMException]",wr="[object Error]",Pr="[object Function]",Sr="[object GeneratorFunction]",bt="[object Map]",fr="[object Number]",Wi="[object Null]",Ut="[object Object]",yi="[object Promise]",jr="[object Proxy]",hr="[object RegExp]",Pt="[object Set]",sn="[object String]",Cr="[object Symbol]",ji="[object Undefined]",Ht="[object WeakMap]",xi="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",S="[object Int8Array]",V="[object Int16Array]",ee="[object Int32Array]",oe="[object Uint8Array]",$e="[object Uint8ClampedArray]",Be="[object Uint16Array]",Qe="[object Uint32Array]",nt=/\b__p \+= '';/g,Re=/\b(__p \+=) '' \+/g,Je=/(__e\(.*?\)|\b__t\)) \+\n'';/g,qe=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Et=RegExp(qe.source),Zt=RegExp(at.source),zi=/<%-([\s\S]+?)%>/g,va=/<%([\s\S]+?)%>/g,is=/<%=([\s\S]+?)%>/g,ya=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xa=/^\w*$/,Vl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),C=/^\s+/,T=/\s/,v=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,h=/\{\n\/\* \[wrapped with (.+)\] \*/,L=/,? & /,Q=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,Ye=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Fe=/^\[object .+?Constructor\]$/,zr=/^0o[0-7]+$/i,Hi=/^(?:0|[1-9]\d*)$/,wa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pa=/($^)/,VT=/['\n\r\u2028\u2029\\]/g,Sa="\\ud800-\\udfff",GT="\\u0300-\\u036f",QT="\\ufe20-\\ufe2f",JT="\\u20d0-\\u20ff",qp=GT+QT+JT,Lp="\\u2700-\\u27bf",Op="a-z\\xdf-\\xf6\\xf8-\\xff",XT="\\xac\\xb1\\xd7\\xf7",KT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",YT="\\u2000-\\u206f",ZT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Bp="A-Z\\xc0-\\xd6\\xd8-\\xde",Up="\\ufe0e\\ufe0f",$p=XT+KT+YT+ZT,Gl="['\u2019]",e0="["+Sa+"]",Wp="["+$p+"]",Ca="["+qp+"]",jp="\\d+",t0="["+Lp+"]",zp="["+Op+"]",Hp="[^"+Sa+$p+jp+Lp+Op+Bp+"]",Ql="\\ud83c[\\udffb-\\udfff]",n0="(?:"+Ca+"|"+Ql+")",Vp="[^"+Sa+"]",Jl="(?:\\ud83c[\\udde6-\\uddff]){2}",Xl="[\\ud800-\\udbff][\\udc00-\\udfff]",Vi="["+Bp+"]",Gp="\\u200d",Qp="(?:"+zp+"|"+Hp+")",r0="(?:"+Vi+"|"+Hp+")",Jp="(?:"+Gl+"(?:d|ll|m|re|s|t|ve))?",Xp="(?:"+Gl+"(?:D|LL|M|RE|S|T|VE))?",Kp=n0+"?",Yp="["+Up+"]?",i0="(?:"+Gp+"(?:"+[Vp,Jl,Xl].join("|")+")"+Yp+Kp+")*",o0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",s0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Zp=Yp+Kp+i0,a0="(?:"+[t0,Jl,Xl].join("|")+")"+Zp,c0="(?:"+[Vp+Ca+"?",Ca,Jl,Xl,e0].join("|")+")",u0=RegExp(Gl,"g"),l0=RegExp(Ca,"g"),Kl=RegExp(Ql+"(?="+Ql+")|"+c0+Zp,"g"),d0=RegExp([Vi+"?"+zp+"+"+Jp+"(?="+[Wp,Vi,"$"].join("|")+")",r0+"+"+Xp+"(?="+[Wp,Vi+Qp,"$"].join("|")+")",Vi+"?"+Qp+"+"+Jp,Vi+"+"+Xp,s0,o0,jp,a0].join("|"),"g"),f0=RegExp("["+Gp+Sa+qp+Up+"]"),h0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,g0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],p0=-1,ct={};ct[kr]=ct[vn]=ct[S]=ct[V]=ct[ee]=ct[oe]=ct[$e]=ct[Be]=ct[Qe]=!0,ct[Vn]=ct[ur]=ct[Gn]=ct[lr]=ct[_n]=ct[dr]=ct[wr]=ct[Pr]=ct[bt]=ct[fr]=ct[Ut]=ct[hr]=ct[Pt]=ct[sn]=ct[Ht]=!1;var rt={};rt[Vn]=rt[ur]=rt[Gn]=rt[_n]=rt[lr]=rt[dr]=rt[kr]=rt[vn]=rt[S]=rt[V]=rt[ee]=rt[bt]=rt[fr]=rt[Ut]=rt[hr]=rt[Pt]=rt[sn]=rt[Cr]=rt[oe]=rt[$e]=rt[Be]=rt[Qe]=!0,rt[wr]=rt[Pr]=rt[Ht]=!1;var m0={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},b0={"&":"&","<":"<",">":">",'"':""","'":"'"},_0={"&":"&","<":"<",">":">",""":'"',"'":"'"},v0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},y0=parseFloat,x0=parseInt,em=typeof global=="object"&&global&&global.Object===Object&&global,w0=typeof self=="object"&&self&&self.Object===Object&&self,qt=em||w0||Function("return this")(),Yl=typeof $o=="object"&&$o&&!$o.nodeType&&$o,wi=Yl&&typeof Xs=="object"&&Xs&&!Xs.nodeType&&Xs,tm=wi&&wi.exports===Yl,Zl=tm&&em.process,In=function(){try{var E=wi&&wi.require&&wi.require("util").types;return E||Zl&&Zl.binding&&Zl.binding("util")}catch{}}(),nm=In&&In.isArrayBuffer,rm=In&&In.isDate,im=In&&In.isMap,om=In&&In.isRegExp,sm=In&&In.isSet,am=In&&In.isTypedArray;function xn(E,j,$){switch($.length){case 0:return E.call(j);case 1:return E.call(j,$[0]);case 2:return E.call(j,$[0],$[1]);case 3:return E.call(j,$[0],$[1],$[2])}return E.apply(j,$)}function P0(E,j,$,se){for(var ve=-1,He=E==null?0:E.length;++ve-1}function ed(E,j,$){for(var se=-1,ve=E==null?0:E.length;++se-1;);return $}function pm(E,j){for(var $=E.length;$--&&Gi(j,E[$],0)>-1;);return $}function F0(E,j){for(var $=E.length,se=0;$--;)E[$]===j&&++se;return se}var A0=id(m0),M0=id(b0);function N0(E){return"\\"+v0[E]}function q0(E,j){return E==null?e:E[j]}function Qi(E){return f0.test(E)}function L0(E){return h0.test(E)}function O0(E){for(var j,$=[];!(j=E.next()).done;)$.push(j.value);return $}function cd(E){var j=-1,$=Array(E.size);return E.forEach(function(se,ve){$[++j]=[ve,se]}),$}function mm(E,j){return function($){return E(j($))}}function Gr(E,j){for(var $=-1,se=E.length,ve=0,He=[];++$-1}function CD(r,s){var a=this.__data__,l=ja(a,r);return l<0?(++this.size,a.push([r,s])):a[l][1]=s,this}Rr.prototype.clear=xD,Rr.prototype.delete=wD,Rr.prototype.get=PD,Rr.prototype.has=SD,Rr.prototype.set=CD;function Tr(r){var s=-1,a=r==null?0:r.length;for(this.clear();++s=s?r:s)),r}function Nn(r,s,a,l,d,_){var w,R=s&b,A=s&x,G=s&k;if(a&&(w=d?a(r,l,d,_):a(r)),w!==e)return w;if(!_t(r))return r;var J=we(r);if(J){if(w=DE(r),!R)return cn(r,w)}else{var K=Gt(r),re=K==Pr||K==Sr;if(ei(r))return Ym(r,R);if(K==Ut||K==Vn||re&&!d){if(w=A||re?{}:bb(r),!R)return A?_E(r,$D(w,r)):bE(r,Tm(w,r))}else{if(!rt[K])return d?r:{};w=EE(r,K,R)}}_||(_=new Xn);var ce=_.get(r);if(ce)return ce;_.set(r,w),Vb(r)?r.forEach(function(fe){w.add(Nn(fe,s,a,fe,r,_))}):zb(r)&&r.forEach(function(fe,Ae){w.set(Ae,Nn(fe,s,a,Ae,r,_))});var de=G?A?Md:Ad:A?ln:Lt,Ce=J?e:de(r);return Fn(Ce||r,function(fe,Ae){Ce&&(Ae=fe,fe=r[Ae]),ds(w,Ae,Nn(fe,s,a,Ae,r,_))}),w}function WD(r){var s=Lt(r);return function(a){return Dm(a,r,s)}}function Dm(r,s,a){var l=a.length;if(r==null)return!l;for(r=et(r);l--;){var d=a[l],_=s[d],w=r[d];if(w===e&&!(d in r)||!_(w))return!1}return!0}function Em(r,s,a){if(typeof r!="function")throw new An(o);return _s(function(){r.apply(e,a)},s)}function fs(r,s,a,l){var d=-1,_=ka,w=!0,R=r.length,A=[],G=s.length;if(!R)return A;a&&(s=gt(s,wn(a))),l?(_=ed,w=!1):s.length>=n&&(_=os,w=!1,s=new Ci(s));e:for(;++dd?0:d+a),l=l===e||l>d?d:Se(l),l<0&&(l+=d),l=a>l?0:Qb(l);a0&&a(R)?s>1?$t(R,s-1,a,l,d):Vr(d,R):l||(d[d.length]=R)}return d}var pd=ib(),Am=ib(!0);function gr(r,s){return r&&pd(r,s,Lt)}function md(r,s){return r&&Am(r,s,Lt)}function Ha(r,s){return Hr(s,function(a){return Ar(r[a])})}function Ri(r,s){s=Yr(s,r);for(var a=0,l=s.length;r!=null&&as}function HD(r,s){return r!=null&&Xe.call(r,s)}function VD(r,s){return r!=null&&s in et(r)}function GD(r,s,a){return r>=Vt(s,a)&&r=120&&J.length>=120)?new Ci(w&&J):e}J=r[0];var K=-1,re=R[0];e:for(;++K-1;)R!==r&&qa.call(R,A,1),qa.call(r,A,1);return r}function zm(r,s){for(var a=r?s.length:0,l=a-1;a--;){var d=s[a];if(a==l||d!==_){var _=d;Fr(d)?qa.call(r,d,1):kd(r,d)}}return r}function Pd(r,s){return r+Ba(Sm()*(s-r+1))}function sE(r,s,a,l){for(var d=-1,_=Mt(Oa((s-r)/(a||1)),0),w=$(_);_--;)w[l?_:++d]=r,r+=a;return w}function Sd(r,s){var a="";if(!r||s<1||s>ge)return a;do s%2&&(a+=r),s=Ba(s/2),s&&(r+=r);while(s);return a}function Te(r,s){return $d(yb(r,s,dn),r+"")}function aE(r){return Rm(io(r))}function cE(r,s){var a=io(r);return nc(a,ki(s,0,a.length))}function ps(r,s,a,l){if(!_t(r))return r;s=Yr(s,r);for(var d=-1,_=s.length,w=_-1,R=r;R!=null&&++d<_;){var A=mr(s[d]),G=a;if(A==="__proto__"||A==="constructor"||A==="prototype")return r;if(d!=w){var J=R[A];G=l?l(J,A,R):e,G===e&&(G=_t(J)?J:Fr(s[d+1])?[]:{})}ds(R,A,G),R=R[A]}return r}var Hm=Ua?function(r,s){return Ua.set(r,s),r}:dn,uE=La?function(r,s){return La(r,"toString",{configurable:!0,enumerable:!1,value:Kd(s),writable:!0})}:dn;function lE(r){return nc(io(r))}function qn(r,s,a){var l=-1,d=r.length;s<0&&(s=-s>d?0:d+s),a=a>d?d:a,a<0&&(a+=d),d=s>a?0:a-s>>>0,s>>>=0;for(var _=$(d);++l>>1,w=r[_];w!==null&&!Sn(w)&&(a?w<=s:w=n){var G=s?null:wE(r);if(G)return Ta(G);w=!1,d=os,A=new Ci}else A=s?[]:R;e:for(;++l<_;){var J=r[l],K=s?s(J):J;if(J=a||J!==0?J:0,w&&K===K){for(var re=A.length;re--;)if(A[re]===K)continue e;s&&A.push(K),R.push(J)}else d(A,K,a)||(A!==R&&A.push(K),R.push(J))}return R}function kd(r,s){return s=Yr(s,r),r=xb(r,s),r==null||delete r[mr(Ln(s))]}function Qm(r,s,a,l){return ps(r,s,a(Ri(r,s)),l)}function Qa(r,s,a,l){for(var d=r.length,_=l?d:-1;(l?_--:++_=l?r:qn(r,s,a)}var Km=Z0||function(r){return qt.clearTimeout(r)};function Ym(r,s){if(s)return r.slice();var a=r.length,l=vm?vm(a):new r.constructor(a);return r.copy(l),l}function Ed(r){var s=new r.constructor(r.byteLength);return new Ma(s).set(new Ma(r)),s}function hE(r,s){var a=s?Ed(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function gE(r){var s=new r.constructor(r.source,an.exec(r));return s.lastIndex=r.lastIndex,s}function pE(r){return ls?et(ls.call(r)):{}}function Zm(r,s){var a=s?Ed(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function eb(r,s){if(r!==s){var a=r!==e,l=r===null,d=r===r,_=Sn(r),w=s!==e,R=s===null,A=s===s,G=Sn(s);if(!R&&!G&&!_&&r>s||_&&w&&A&&!R&&!G||l&&w&&A||!a&&A||!d)return 1;if(!l&&!_&&!G&&r=R)return A;var G=a[l];return A*(G=="desc"?-1:1)}}return r.index-s.index}function tb(r,s,a,l){for(var d=-1,_=r.length,w=a.length,R=-1,A=s.length,G=Mt(_-w,0),J=$(A+G),K=!l;++R1?a[d-1]:e,w=d>2?a[2]:e;for(_=r.length>3&&typeof _=="function"?(d--,_):e,w&&tn(a[0],a[1],w)&&(_=d<3?e:_,d=1),s=et(s);++l-1?d[_?s[w]:w]:e}}function ab(r){return Ir(function(s){var a=s.length,l=a,d=Mn.prototype.thru;for(r&&s.reverse();l--;){var _=s[l];if(typeof _!="function")throw new An(o);if(d&&!w&&ec(_)=="wrapper")var w=new Mn([],!0)}for(l=w?l:a;++l1&&Le.reverse(),J&&AR))return!1;var G=_.get(r),J=_.get(s);if(G&&J)return G==s&&J==r;var K=-1,re=!0,ce=a&M?new Ci:e;for(_.set(r,s),_.set(s,r);++K1?"& ":"")+s[l],s=s.join(a>2?", ":" "),r.replace(v,`{ +/* [wrapped with `+s+`] */ +`)}function FE(r){return we(r)||Ei(r)||!!(wm&&r&&r[wm])}function Fr(r,s){var a=typeof r;return s=s??ge,!!s&&(a=="number"||a!="symbol"&&Hi.test(r))&&r>-1&&r%1==0&&r0){if(++s>=xe)return arguments[0]}else s=0;return r.apply(e,arguments)}}function nc(r,s){var a=-1,l=r.length,d=l-1;for(s=s===e?l:s;++a1?r[s-1]:e;return a=typeof a=="function"?(r.pop(),a):e,Fb(r,a)});function Ab(r){var s=m(r);return s.__chain__=!0,s}function jI(r,s){return s(r),r}function rc(r,s){return s(r)}var zI=Ir(function(r){var s=r.length,a=s?r[0]:0,l=this.__wrapped__,d=function(_){return gd(_,r)};return s>1||this.__actions__.length||!(l instanceof Me)||!Fr(a)?this.thru(d):(l=l.slice(a,+a+(s?1:0)),l.__actions__.push({func:rc,args:[d],thisArg:e}),new Mn(l,this.__chain__).thru(function(_){return s&&!_.length&&_.push(e),_}))});function HI(){return Ab(this)}function VI(){return new Mn(this.value(),this.__chain__)}function GI(){this.__values__===e&&(this.__values__=Gb(this.value()));var r=this.__index__>=this.__values__.length,s=r?e:this.__values__[this.__index__++];return{done:r,value:s}}function QI(){return this}function JI(r){for(var s,a=this;a instanceof Wa;){var l=kb(a);l.__index__=0,l.__values__=e,s?d.__wrapped__=l:s=l;var d=l;a=a.__wrapped__}return d.__wrapped__=r,s}function XI(){var r=this.__wrapped__;if(r instanceof Me){var s=r;return this.__actions__.length&&(s=new Me(this)),s=s.reverse(),s.__actions__.push({func:rc,args:[Wd],thisArg:e}),new Mn(s,this.__chain__)}return this.thru(Wd)}function KI(){return Jm(this.__wrapped__,this.__actions__)}var YI=Ja(function(r,s,a){Xe.call(r,a)?++r[a]:Dr(r,a,1)});function ZI(r,s,a){var l=we(r)?cm:jD;return a&&tn(r,s,a)&&(s=e),l(r,le(s,3))}function eF(r,s){var a=we(r)?Hr:Fm;return a(r,le(s,3))}var tF=sb(Rb),nF=sb(Tb);function rF(r,s){return $t(ic(r,s),1)}function iF(r,s){return $t(ic(r,s),ke)}function oF(r,s,a){return a=a===e?1:Se(a),$t(ic(r,s),a)}function Mb(r,s){var a=we(r)?Fn:Xr;return a(r,le(s,3))}function Nb(r,s){var a=we(r)?S0:Im;return a(r,le(s,3))}var sF=Ja(function(r,s,a){Xe.call(r,a)?r[a].push(s):Dr(r,a,[s])});function aF(r,s,a,l){r=un(r)?r:io(r),a=a&&!l?Se(a):0;var d=r.length;return a<0&&(a=Mt(d+a,0)),uc(r)?a<=d&&r.indexOf(s,a)>-1:!!d&&Gi(r,s,a)>-1}var cF=Te(function(r,s,a){var l=-1,d=typeof s=="function",_=un(r)?$(r.length):[];return Xr(r,function(w){_[++l]=d?xn(s,w,a):hs(w,s,a)}),_}),uF=Ja(function(r,s,a){Dr(r,a,s)});function ic(r,s){var a=we(r)?gt:Om;return a(r,le(s,3))}function lF(r,s,a,l){return r==null?[]:(we(s)||(s=s==null?[]:[s]),a=l?e:a,we(a)||(a=a==null?[]:[a]),Wm(r,s,a))}var dF=Ja(function(r,s,a){r[a?0:1].push(s)},function(){return[[],[]]});function fF(r,s,a){var l=we(r)?td:fm,d=arguments.length<3;return l(r,le(s,4),a,d,Xr)}function hF(r,s,a){var l=we(r)?C0:fm,d=arguments.length<3;return l(r,le(s,4),a,d,Im)}function gF(r,s){var a=we(r)?Hr:Fm;return a(r,ac(le(s,3)))}function pF(r){var s=we(r)?Rm:aE;return s(r)}function mF(r,s,a){(a?tn(r,s,a):s===e)?s=1:s=Se(s);var l=we(r)?OD:cE;return l(r,s)}function bF(r){var s=we(r)?BD:lE;return s(r)}function _F(r){if(r==null)return 0;if(un(r))return uc(r)?Ji(r):r.length;var s=Gt(r);return s==bt||s==Pt?r.size:yd(r).length}function vF(r,s,a){var l=we(r)?nd:dE;return a&&tn(r,s,a)&&(s=e),l(r,le(s,3))}var yF=Te(function(r,s){if(r==null)return[];var a=s.length;return a>1&&tn(r,s[0],s[1])?s=[]:a>2&&tn(s[0],s[1],s[2])&&(s=[s[0]]),Wm(r,$t(s,1),[])}),oc=eD||function(){return qt.Date.now()};function xF(r,s){if(typeof s!="function")throw new An(o);return r=Se(r),function(){if(--r<1)return s.apply(this,arguments)}}function qb(r,s,a){return s=a?e:s,s=r&&s==null?r.length:s,Er(r,ne,e,e,e,e,s)}function Lb(r,s){var a;if(typeof s!="function")throw new An(o);return r=Se(r),function(){return--r>0&&(a=s.apply(this,arguments)),r<=1&&(s=e),a}}var zd=Te(function(r,s,a){var l=N;if(a.length){var d=Gr(a,no(zd));l|=P}return Er(r,l,s,a,d)}),Ob=Te(function(r,s,a){var l=N|B;if(a.length){var d=Gr(a,no(Ob));l|=P}return Er(s,l,r,a,d)});function Bb(r,s,a){s=a?e:s;var l=Er(r,X,e,e,e,e,e,s);return l.placeholder=Bb.placeholder,l}function Ub(r,s,a){s=a?e:s;var l=Er(r,D,e,e,e,e,e,s);return l.placeholder=Ub.placeholder,l}function $b(r,s,a){var l,d,_,w,R,A,G=0,J=!1,K=!1,re=!0;if(typeof r!="function")throw new An(o);s=On(s)||0,_t(a)&&(J=!!a.leading,K="maxWait"in a,_=K?Mt(On(a.maxWait)||0,s):_,re="trailing"in a?!!a.trailing:re);function ce(Ct){var Yn=l,Nr=d;return l=d=e,G=Ct,w=r.apply(Nr,Yn),w}function de(Ct){return G=Ct,R=_s(Ae,s),J?ce(Ct):w}function Ce(Ct){var Yn=Ct-A,Nr=Ct-G,s_=s-Yn;return K?Vt(s_,_-Nr):s_}function fe(Ct){var Yn=Ct-A,Nr=Ct-G;return A===e||Yn>=s||Yn<0||K&&Nr>=_}function Ae(){var Ct=oc();if(fe(Ct))return Le(Ct);R=_s(Ae,Ce(Ct))}function Le(Ct){return R=e,re&&l?ce(Ct):(l=d=e,w)}function Cn(){R!==e&&Km(R),G=0,l=A=d=R=e}function nn(){return R===e?w:Le(oc())}function kn(){var Ct=oc(),Yn=fe(Ct);if(l=arguments,d=this,A=Ct,Yn){if(R===e)return de(A);if(K)return Km(R),R=_s(Ae,s),ce(A)}return R===e&&(R=_s(Ae,s)),w}return kn.cancel=Cn,kn.flush=nn,kn}var wF=Te(function(r,s){return Em(r,1,s)}),PF=Te(function(r,s,a){return Em(r,On(s)||0,a)});function SF(r){return Er(r,Ue)}function sc(r,s){if(typeof r!="function"||s!=null&&typeof s!="function")throw new An(o);var a=function(){var l=arguments,d=s?s.apply(this,l):l[0],_=a.cache;if(_.has(d))return _.get(d);var w=r.apply(this,l);return a.cache=_.set(d,w)||_,w};return a.cache=new(sc.Cache||Tr),a}sc.Cache=Tr;function ac(r){if(typeof r!="function")throw new An(o);return function(){var s=arguments;switch(s.length){case 0:return!r.call(this);case 1:return!r.call(this,s[0]);case 2:return!r.call(this,s[0],s[1]);case 3:return!r.call(this,s[0],s[1],s[2])}return!r.apply(this,s)}}function CF(r){return Lb(2,r)}var kF=fE(function(r,s){s=s.length==1&&we(s[0])?gt(s[0],wn(le())):gt($t(s,1),wn(le()));var a=s.length;return Te(function(l){for(var d=-1,_=Vt(l.length,a);++d<_;)l[d]=s[d].call(this,l[d]);return xn(r,this,l)})}),Hd=Te(function(r,s){var a=Gr(s,no(Hd));return Er(r,P,e,s,a)}),Wb=Te(function(r,s){var a=Gr(s,no(Wb));return Er(r,U,e,s,a)}),RF=Ir(function(r,s){return Er(r,_e,e,e,e,s)});function TF(r,s){if(typeof r!="function")throw new An(o);return s=s===e?s:Se(s),Te(r,s)}function DF(r,s){if(typeof r!="function")throw new An(o);return s=s==null?0:Mt(Se(s),0),Te(function(a){var l=a[s],d=Zr(a,0,s);return l&&Vr(d,l),xn(r,this,d)})}function EF(r,s,a){var l=!0,d=!0;if(typeof r!="function")throw new An(o);return _t(a)&&(l="leading"in a?!!a.leading:l,d="trailing"in a?!!a.trailing:d),$b(r,s,{leading:l,maxWait:s,trailing:d})}function IF(r){return qb(r,1)}function FF(r,s){return Hd(Dd(s),r)}function AF(){if(!arguments.length)return[];var r=arguments[0];return we(r)?r:[r]}function MF(r){return Nn(r,k)}function NF(r,s){return s=typeof s=="function"?s:e,Nn(r,k,s)}function qF(r){return Nn(r,b|k)}function LF(r,s){return s=typeof s=="function"?s:e,Nn(r,b|k,s)}function OF(r,s){return s==null||Dm(r,s,Lt(s))}function Kn(r,s){return r===s||r!==r&&s!==s}var BF=Za(bd),UF=Za(function(r,s){return r>=s}),Ei=Nm(function(){return arguments}())?Nm:function(r){return yt(r)&&Xe.call(r,"callee")&&!xm.call(r,"callee")},we=$.isArray,$F=nm?wn(nm):JD;function un(r){return r!=null&&cc(r.length)&&!Ar(r)}function St(r){return yt(r)&&un(r)}function WF(r){return r===!0||r===!1||yt(r)&&en(r)==lr}var ei=nD||nf,jF=rm?wn(rm):XD;function zF(r){return yt(r)&&r.nodeType===1&&!vs(r)}function HF(r){if(r==null)return!0;if(un(r)&&(we(r)||typeof r=="string"||typeof r.splice=="function"||ei(r)||ro(r)||Ei(r)))return!r.length;var s=Gt(r);if(s==bt||s==Pt)return!r.size;if(bs(r))return!yd(r).length;for(var a in r)if(Xe.call(r,a))return!1;return!0}function VF(r,s){return gs(r,s)}function GF(r,s,a){a=typeof a=="function"?a:e;var l=a?a(r,s):e;return l===e?gs(r,s,e,a):!!l}function Vd(r){if(!yt(r))return!1;var s=en(r);return s==wr||s==$i||typeof r.message=="string"&&typeof r.name=="string"&&!vs(r)}function QF(r){return typeof r=="number"&&Pm(r)}function Ar(r){if(!_t(r))return!1;var s=en(r);return s==Pr||s==Sr||s==vi||s==jr}function jb(r){return typeof r=="number"&&r==Se(r)}function cc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function _t(r){var s=typeof r;return r!=null&&(s=="object"||s=="function")}function yt(r){return r!=null&&typeof r=="object"}var zb=im?wn(im):YD;function JF(r,s){return r===s||vd(r,s,qd(s))}function XF(r,s,a){return a=typeof a=="function"?a:e,vd(r,s,qd(s),a)}function KF(r){return Hb(r)&&r!=+r}function YF(r){if(NE(r))throw new ve(i);return qm(r)}function ZF(r){return r===null}function eA(r){return r==null}function Hb(r){return typeof r=="number"||yt(r)&&en(r)==fr}function vs(r){if(!yt(r)||en(r)!=Ut)return!1;var s=Na(r);if(s===null)return!0;var a=Xe.call(s,"constructor")&&s.constructor;return typeof a=="function"&&a instanceof a&&Ia.call(a)==X0}var Gd=om?wn(om):ZD;function tA(r){return jb(r)&&r>=-ge&&r<=ge}var Vb=sm?wn(sm):eE;function uc(r){return typeof r=="string"||!we(r)&&yt(r)&&en(r)==sn}function Sn(r){return typeof r=="symbol"||yt(r)&&en(r)==Cr}var ro=am?wn(am):tE;function nA(r){return r===e}function rA(r){return yt(r)&&Gt(r)==Ht}function iA(r){return yt(r)&&en(r)==xi}var oA=Za(xd),sA=Za(function(r,s){return r<=s});function Gb(r){if(!r)return[];if(un(r))return uc(r)?Jn(r):cn(r);if(ss&&r[ss])return O0(r[ss]());var s=Gt(r),a=s==bt?cd:s==Pt?Ta:io;return a(r)}function Mr(r){if(!r)return r===0?r:0;if(r=On(r),r===ke||r===-ke){var s=r<0?-1:1;return s*pe}return r===r?r:0}function Se(r){var s=Mr(r),a=s%1;return s===s?a?s-a:s:0}function Qb(r){return r?ki(Se(r),0,je):0}function On(r){if(typeof r=="number")return r;if(Sn(r))return wt;if(_t(r)){var s=typeof r.valueOf=="function"?r.valueOf():r;r=_t(s)?s+"":s}if(typeof r!="string")return r===0?r:+r;r=hm(r);var a=Qn.test(r);return a||zr.test(r)?x0(r.slice(2),a?2:8):yn.test(r)?wt:+r}function Jb(r){return pr(r,ln(r))}function aA(r){return r?ki(Se(r),-ge,ge):r===0?r:0}function Ge(r){return r==null?"":Pn(r)}var cA=eo(function(r,s){if(bs(s)||un(s)){pr(s,Lt(s),r);return}for(var a in s)Xe.call(s,a)&&ds(r,a,s[a])}),Xb=eo(function(r,s){pr(s,ln(s),r)}),lc=eo(function(r,s,a,l){pr(s,ln(s),r,l)}),uA=eo(function(r,s,a,l){pr(s,Lt(s),r,l)}),lA=Ir(gd);function dA(r,s){var a=Zi(r);return s==null?a:Tm(a,s)}var fA=Te(function(r,s){r=et(r);var a=-1,l=s.length,d=l>2?s[2]:e;for(d&&tn(s[0],s[1],d)&&(l=1);++a1),_}),pr(r,Md(r),a),l&&(a=Nn(a,b|x|k,PE));for(var d=s.length;d--;)kd(a,s[d]);return a});function EA(r,s){return Yb(r,ac(le(s)))}var IA=Ir(function(r,s){return r==null?{}:iE(r,s)});function Yb(r,s){if(r==null)return{};var a=gt(Md(r),function(l){return[l]});return s=le(s),jm(r,a,function(l,d){return s(l,d[0])})}function FA(r,s,a){s=Yr(s,r);var l=-1,d=s.length;for(d||(d=1,r=e);++ls){var l=r;r=s,s=l}if(a||r%1||s%1){var d=Sm();return Vt(r+d*(s-r+y0("1e-"+((d+"").length-1))),s)}return Pd(r,s)}var jA=to(function(r,s,a){return s=s.toLowerCase(),r+(a?t_(s):s)});function t_(r){return Xd(Ge(r).toLowerCase())}function n_(r){return r=Ge(r),r&&r.replace(wa,A0).replace(l0,"")}function zA(r,s,a){r=Ge(r),s=Pn(s);var l=r.length;a=a===e?l:ki(Se(a),0,l);var d=a;return a-=s.length,a>=0&&r.slice(a,d)==s}function HA(r){return r=Ge(r),r&&Zt.test(r)?r.replace(at,M0):r}function VA(r){return r=Ge(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var GA=to(function(r,s,a){return r+(a?"-":"")+s.toLowerCase()}),QA=to(function(r,s,a){return r+(a?" ":"")+s.toLowerCase()}),JA=ob("toLowerCase");function XA(r,s,a){r=Ge(r),s=Se(s);var l=s?Ji(r):0;if(!s||l>=s)return r;var d=(s-l)/2;return Ya(Ba(d),a)+r+Ya(Oa(d),a)}function KA(r,s,a){r=Ge(r),s=Se(s);var l=s?Ji(r):0;return s&&l>>0,a?(r=Ge(r),r&&(typeof s=="string"||s!=null&&!Gd(s))&&(s=Pn(s),!s&&Qi(r))?Zr(Jn(r),0,a):r.split(s,a)):[]}var iM=to(function(r,s,a){return r+(a?" ":"")+Xd(s)});function oM(r,s,a){return r=Ge(r),a=a==null?0:ki(Se(a),0,r.length),s=Pn(s),r.slice(a,a+s.length)==s}function sM(r,s,a){var l=m.templateSettings;a&&tn(r,s,a)&&(s=e),r=Ge(r),s=lc({},s,l,fb);var d=lc({},s.imports,l.imports,fb),_=Lt(d),w=ad(d,_),R,A,G=0,J=s.interpolate||Pa,K="__p += '",re=ud((s.escape||Pa).source+"|"+J.source+"|"+(J===is?Ye:Pa).source+"|"+(s.evaluate||Pa).source+"|$","g"),ce="//# sourceURL="+(Xe.call(s,"sourceURL")?(s.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++p0+"]")+` +`;r.replace(re,function(fe,Ae,Le,Cn,nn,kn){return Le||(Le=Cn),K+=r.slice(G,kn).replace(VT,N0),Ae&&(R=!0,K+=`' + +__e(`+Ae+`) + +'`),nn&&(A=!0,K+=`'; +`+nn+`; +__p += '`),Le&&(K+=`' + +((__t = (`+Le+`)) == null ? '' : __t) + +'`),G=kn+fe.length,fe}),K+=`'; +`;var de=Xe.call(s,"variable")&&s.variable;if(!de)K=`with (obj) { +`+K+` } -`;else if(be.test(de))throw new ve(c);J=(M?J.replace(et,""):J).replace(Re,"$1").replace(Je,"$1;"),J="function("+(de||"obj")+`) { +`;else if(be.test(de))throw new ve(c);K=(A?K.replace(nt,""):K).replace(Re,"$1").replace(Je,"$1;"),K="function("+(de||"obj")+`) { `+(de?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(k?", __e = _.escape":"")+(M?`, __j = Array.prototype.join; +`)+"var __t, __p = ''"+(R?", __e = _.escape":"")+(A?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; -`)+J+`return __p -}`;var Ce=Vm(function(){return ze(_,ce+"return "+J).apply(t,P)});if(Ce.source=J,od(Ce))throw Ce;return Ce}function VT(r){return Ge(r).toLowerCase()}function GT(r){return Ge(r).toUpperCase()}function QT(r,o,a){if(r=Ge(r),r&&(a||o===t))return tp(r);if(!r||!(o=wn(o)))return r;var l=Gn(r),d=Gn(o),_=np(l,d),P=rp(l,d)+1;return Jr(l,_,P).join("")}function JT(r,o,a){if(r=Ge(r),r&&(a||o===t))return r.slice(0,op(r)+1);if(!r||!(o=wn(o)))return r;var l=Gn(r),d=rp(l,Gn(o))+1;return Jr(l,0,d).join("")}function XT(r,o,a){if(r=Ge(r),r&&(a||o===t))return r.replace(C,"");if(!r||!(o=wn(o)))return r;var l=Gn(r),d=np(l,Gn(o));return Jr(l,d).join("")}function YT(r,o){var a=Ye,l=kt;if(pt(o)){var d="separator"in o?o.separator:d;a="length"in o?Se(o.length):a,l="omission"in o?wn(o.omission):l}r=Ge(r);var _=r.length;if(ji(r)){var P=Gn(r);_=P.length}if(a>=_)return r;var k=a-zi(l);if(k<1)return l;var M=P?Jr(P,0,k).join(""):r.slice(0,k);if(d===t)return M+l;if(P&&(k+=M.length-k),sd(d)){if(r.slice(k).search(d)){var V,Q=M;for(d.global||(d=Pl(d.source,Ge(rn.exec(d))+"g")),d.lastIndex=0;V=d.exec(Q);)var J=V.index;M=M.slice(0,J===t?k:J)}}else if(r.indexOf(wn(d),k)!=k){var ne=M.lastIndexOf(d);ne>-1&&(M=M.slice(0,ne))}return M+l}function KT(r){return r=Ge(r),r&&Rt.test(r)?r.replace(Ae,RS):r}var ZT=Xi(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),ud=Gp("toUpperCase");function Hm(r,o,a){return r=Ge(r),o=a?t:o,o===t?PS(r)?IS(r):hS(r):r.match(o)||[]}var Vm=Te(function(r,o){try{return vn(r,t,o)}catch(a){return od(a)?a:new ve(a)}}),eD=Tr(function(r,o){return In(o,function(a){a=hr(a),kr(r,a,rd(r[a],r))}),r});function tD(r){var o=r==null?0:r.length,a=le();return r=o?dt(r,function(l){if(typeof l[1]!="function")throw new En(s);return[a(l[0]),l[1]]}):[],Te(function(l){for(var d=-1;++dge)return[];var a=We,l=Wt(r,We);o=le(o),r-=We;for(var d=vl(l,o);++a0||o<0)?new Fe(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Se(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Fe.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Fe.prototype.toArray=function(){return this.take(We)},dr(Fe.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),d=m[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);d&&(m.prototype[o]=function(){var P=this.__wrapped__,k=l?[1]:arguments,M=P instanceof Fe,V=k[0],Q=M||Pe(P),J=function(Ee){var Ne=d.apply(m,Wr([Ee],k));return l&&ne?Ne[0]:Ne};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ce=!!this.__actions__.length,de=_&&!ne,Ce=M&&!ce;if(!_&&Q){P=Ce?P:new Fe(this);var fe=r.apply(P,k);return fe.__actions__.push({func:Ca,args:[J],thisArg:t}),new Fn(fe,ne)}return de&&Ce?r.apply(this,k):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ys[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);m.prototype[r]=function(){var d=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(Pe(_)?_:[],d)}return this[a](function(P){return o.apply(Pe(P)?P:[],d)})}}),dr(Fe.prototype,function(r,o){var a=m[o];if(a){var l=a.name+"";Xe.call(Gi,l)||(Gi[l]=[]),Gi[l].push({name:o,func:a})}}),Gi[_a(t,B).name]=[{name:"wrapper",func:t}],Fe.prototype.clone=KS,Fe.prototype.reverse=ZS,Fe.prototype.value=eC,m.prototype.at=DR,m.prototype.chain=IR,m.prototype.commit=ER,m.prototype.next=FR,m.prototype.plant=AR,m.prototype.reverse=NR,m.prototype.toJSON=m.prototype.valueOf=m.prototype.value=qR,m.prototype.first=m.prototype.head,zo&&(m.prototype[zo]=MR),m},zr=ES();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(At._=zr,define(function(){return zr})):bi?((bi.exports=zr)._=zr,dl._=zr):At._=zr}).call(Fo)});var rx=re((h1,nx)=>{"use strict";function QP(t){return Array.isArray(t)?t:[t]}var KP="",JP=" ",zh="\\",DF=/^\s+$/,IF=/(?:[^\\]|^)\\$/,EF=/^\\!/,FF=/^\\#/,MF=/\r?\n/g,AF=/^\.*\/|^\.+$/,Hh="/",ZP="node-ignore";typeof Symbol<"u"&&(ZP=Symbol.for("node-ignore"));var XP=ZP,NF=(t,e,n)=>Object.defineProperty(t,e,{value:n}),qF=/([0-z])-([0-z])/g,ex=()=>!1,LF=t=>t.replace(qF,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:KP),OF=t=>{let{length:e}=t;return t.slice(0,e-e%2)},BF=[[/\\?\s+$/,t=>t.indexOf("\\")===0?JP:KP],[/\\\s/g,()=>JP],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>zh],[/\\\\/g,()=>zh],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===zh?`\\[${n}${OF(i)}${s}`:s==="]"&&i.length%2===0?`[${LF(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],YP=Object.create(null),UF=(t,e)=>{let n=YP[t];return n||(n=BF.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),YP[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Qh=t=>typeof t=="string",$F=t=>t&&Qh(t)&&!DF.test(t)&&!IF.test(t)&&t.indexOf("#")!==0,WF=t=>t.split(MF),Vh=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},jF=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(EF,"!").replace(FF,"#");let s=UF(t,e);return new Vh(n,t,i,s)},zF=(t,e)=>{throw new e(t)},qr=(t,e,n)=>Qh(t)?t?qr.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),tx=t=>AF.test(t);qr.isNotRelative=tx;qr.convert=t=>t;var Gh=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){NF(this,XP,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[XP]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if($F(e)){let n=jF(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,QP(Qh(e)?WF(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&qr.convert(e);return qr(c,e,this._allowRelativePaths?ex:zF),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Hh)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Hh)+Hh,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return QP(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},Eu=t=>new Gh(t),HF=t=>qr(t&&qr.convert(t),t,ex);Eu.isPathValid=HF;Eu.default=Eu;nx.exports=Eu;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");qr.convert=t;let e=/^[a-z]:\//i;qr.isNotRelative=n=>e.test(n)||tx(n)}});var aM={};zD(aM,{API_ENDPOINT:()=>wg});module.exports=HD(aM);var il=Tt(require("fs")),Rx=Tt(require("os")),Us=Tt(require("path"));var Aa=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=Km(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let h=Math.max(s.start.line,0),g=Math.max(s.end.line,0),b=this._lineOffsets,y=Xm(i.text,!1,c);if(g-h===y.length)for(let F=0,E=y.length;Fe?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&Ym(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},Na;(function(t){function e(s,c,u,h){return new Aa(s,c,u,h)}t.create=e;function n(s,c,u){if(s instanceof Aa)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),h=md(c.map(VD),(y,T)=>{let F=y.range.start.line-T.range.start.line;return F===0?y.range.start.character-T.range.start.character:F}),g=0,b=[];for(let y of h){let T=s.offsetAt(y.range.start);if(Tg&&b.push(u.substring(g,T)),y.newText.length&&b.push(y.newText),g=s.offsetAt(y.range.end)}return b.push(u.substr(g)),b.join("")}t.applyEdits=i})(Na||(Na={}));function md(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);md(i,e),md(s,e);let c=0,u=0,h=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function VD(t){let e=Km(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Me=Tt(Pw());var xw=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function cF(t){return typeof t=="string"&&xw.test(t)}var mh=cF;var Ut=[];for(let t=0;t<256;++t)Ut.push((t+256).toString(16).slice(1));function Sw(t,e=0){return(Ut[t[e+0]]+Ut[t[e+1]]+Ut[t[e+2]]+Ut[t[e+3]]+"-"+Ut[t[e+4]]+Ut[t[e+5]]+"-"+Ut[t[e+6]]+Ut[t[e+7]]+"-"+Ut[t[e+8]]+Ut[t[e+9]]+"-"+Ut[t[e+10]]+Ut[t[e+11]]+Ut[t[e+12]]+Ut[t[e+13]]+Ut[t[e+14]]+Ut[t[e+15]]).toLowerCase()}var Cw=require("crypto"),Zc=new Uint8Array(256),Kc=Zc.length;function bh(){return Kc>Zc.length-16&&((0,Cw.randomFillSync)(Zc),Kc=0),Zc.slice(Kc,Kc+=16)}var kw=require("crypto"),_h={randomUUID:kw.randomUUID};function uF(t,e,n){if(_h.randomUUID&&!e&&!t)return _h.randomUUID();t=t||{};let i=t.random||(t.rng||bh)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return Sw(i)}var vs=uF;var xo=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var So=class extends Error{constructor(){super("No models available")}},Co=class extends Error{constructor(e="Skipping inline completion."){super(e)}},Mt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(lF(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?dF.has(n.status):!1}};function lF(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var dF=new Set([3,1]);function fF(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function De(t,e=!1){if(t instanceof Error){if(e){let n=fF(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var vh={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:131072,vscodeNextEditMinVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:""},eu=class{_flags;constructor(e){this._flags=e?.initialFlags??vh}get currentFlags(){return this._flags}update(e){this._flags=e}};var ru=Tt(require("fs")),iu=Tt(Tw()),Iw=Tt(require("os")),ys=Tt(require("path")),hF=process.env.TEST_TMPDIR?ys.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ys.default.join(Iw.default.homedir(),".local","state"),Dw=ys.default.join(hF,"augment","augment-server.log"),nu;function gF(){if(nu)return nu;let t=ys.default.dirname(Dw);return ru.default.existsSync(t)||ru.default.mkdirSync(t,{recursive:!0}),iu.default.setLevel("info"),iu.default.methodFactory=function(e){return function(n){let i=new Date().toISOString();ru.default.appendFileSync(Dw,`${i} [${e.toUpperCase()}] ${n} -`)}},nu=iu.default.getLogger("server"),nu}function Oe(t){let e=gF();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}function ws(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function ui(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function gn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function ko(t,e,n){ws(t,e,n);let i=[];for(let s of n)i.push(gn(t,e,s));return i}function yh(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ou(t,e=""){let n=[];if(typeof t!="object"||t===null)return Ew(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,h)=>{n.push(`${e} [${h}]: ${ou(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ou(s,e+" "))):n.push(`${e}${i}: ${Ew(s)}`);return n.join(` -`)}function Ew(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var UP=require("events");var Fw;(function(t){function e(n){return typeof n=="string"}t.is=e})(Fw||(Fw={}));var wh;(function(t){function e(n){return typeof n=="string"}t.is=e})(wh||(wh={}));var Mw;(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=e})(Mw||(Mw={}));var su;(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=e})(su||(su={}));var er;(function(t){function e(i,s){return i===Number.MAX_VALUE&&(i=su.MAX_VALUE),s===Number.MAX_VALUE&&(s=su.MAX_VALUE),{line:i,character:s}}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&q.uinteger(s.line)&&q.uinteger(s.character)}t.is=n})(er||(er={}));var at;(function(t){function e(i,s,c,u){if(q.uinteger(i)&&q.uinteger(s)&&q.uinteger(c)&&q.uinteger(u))return{start:er.create(i,s),end:er.create(c,u)};if(er.is(i)&&er.is(s))return{start:i,end:s};throw new Error(`Range#create called with invalid arguments[${i}, ${s}, ${c}, ${u}]`)}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&er.is(s.start)&&er.is(s.end)}t.is=n})(at||(at={}));var au;(function(t){function e(i,s){return{uri:i,range:s}}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&at.is(s.range)&&(q.string(s.uri)||q.undefined(s.uri))}t.is=n})(au||(au={}));var Aw;(function(t){function e(i,s,c,u){return{targetUri:i,targetRange:s,targetSelectionRange:c,originSelectionRange:u}}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&at.is(s.targetRange)&&q.string(s.targetUri)&&at.is(s.targetSelectionRange)&&(at.is(s.originSelectionRange)||q.undefined(s.originSelectionRange))}t.is=n})(Aw||(Aw={}));var Ph;(function(t){function e(i,s,c,u){return{red:i,green:s,blue:c,alpha:u}}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&q.numberRange(s.red,0,1)&&q.numberRange(s.green,0,1)&&q.numberRange(s.blue,0,1)&&q.numberRange(s.alpha,0,1)}t.is=n})(Ph||(Ph={}));var Nw;(function(t){function e(i,s){return{range:i,color:s}}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&at.is(s.range)&&Ph.is(s.color)}t.is=n})(Nw||(Nw={}));var qw;(function(t){function e(i,s,c){return{label:i,textEdit:s,additionalTextEdits:c}}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&q.string(s.label)&&(q.undefined(s.textEdit)||To.is(s))&&(q.undefined(s.additionalTextEdits)||q.typedArray(s.additionalTextEdits,To.is))}t.is=n})(qw||(qw={}));var Lw;(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(Lw||(Lw={}));var Ow;(function(t){function e(i,s,c,u,h,g){let b={startLine:i,endLine:s};return q.defined(c)&&(b.startCharacter=c),q.defined(u)&&(b.endCharacter=u),q.defined(h)&&(b.kind=h),q.defined(g)&&(b.collapsedText=g),b}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&q.uinteger(s.startLine)&&q.uinteger(s.startLine)&&(q.undefined(s.startCharacter)||q.uinteger(s.startCharacter))&&(q.undefined(s.endCharacter)||q.uinteger(s.endCharacter))&&(q.undefined(s.kind)||q.string(s.kind))}t.is=n})(Ow||(Ow={}));var xh;(function(t){function e(i,s){return{location:i,message:s}}t.create=e;function n(i){let s=i;return q.defined(s)&&au.is(s.location)&&q.string(s.message)}t.is=n})(xh||(xh={}));var Bw;(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(Bw||(Bw={}));var Uw;(function(t){t.Unnecessary=1,t.Deprecated=2})(Uw||(Uw={}));var $w;(function(t){function e(n){let i=n;return q.objectLiteral(i)&&q.string(i.href)}t.is=e})($w||($w={}));var cu;(function(t){function e(i,s,c,u,h,g){let b={range:i,message:s};return q.defined(c)&&(b.severity=c),q.defined(u)&&(b.code=u),q.defined(h)&&(b.source=h),q.defined(g)&&(b.relatedInformation=g),b}t.create=e;function n(i){var s;let c=i;return q.defined(c)&&at.is(c.range)&&q.string(c.message)&&(q.number(c.severity)||q.undefined(c.severity))&&(q.integer(c.code)||q.string(c.code)||q.undefined(c.code))&&(q.undefined(c.codeDescription)||q.string((s=c.codeDescription)===null||s===void 0?void 0:s.href))&&(q.string(c.source)||q.undefined(c.source))&&(q.undefined(c.relatedInformation)||q.typedArray(c.relatedInformation,xh.is))}t.is=n})(cu||(cu={}));var Ro;(function(t){function e(i,s,...c){let u={title:i,command:s};return q.defined(c)&&c.length>0&&(u.arguments=c),u}t.create=e;function n(i){let s=i;return q.defined(s)&&q.string(s.title)&&q.string(s.command)}t.is=n})(Ro||(Ro={}));var To;(function(t){function e(c,u){return{range:c,newText:u}}t.replace=e;function n(c,u){return{range:{start:c,end:c},newText:u}}t.insert=n;function i(c){return{range:c,newText:""}}t.del=i;function s(c){let u=c;return q.objectLiteral(u)&&q.string(u.newText)&&at.is(u.range)}t.is=s})(To||(To={}));var Sh;(function(t){function e(i,s,c){let u={label:i};return s!==void 0&&(u.needsConfirmation=s),c!==void 0&&(u.description=c),u}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&q.string(s.label)&&(q.boolean(s.needsConfirmation)||s.needsConfirmation===void 0)&&(q.string(s.description)||s.description===void 0)}t.is=n})(Sh||(Sh={}));var Do;(function(t){function e(n){let i=n;return q.string(i)}t.is=e})(Do||(Do={}));var Ww;(function(t){function e(c,u,h){return{range:c,newText:u,annotationId:h}}t.replace=e;function n(c,u,h){return{range:{start:c,end:c},newText:u,annotationId:h}}t.insert=n;function i(c,u){return{range:c,newText:"",annotationId:u}}t.del=i;function s(c){let u=c;return To.is(u)&&(Sh.is(u.annotationId)||Do.is(u.annotationId))}t.is=s})(Ww||(Ww={}));var Ch;(function(t){function e(i,s){return{textDocument:i,edits:s}}t.create=e;function n(i){let s=i;return q.defined(s)&&Ih.is(s.textDocument)&&Array.isArray(s.edits)}t.is=n})(Ch||(Ch={}));var kh;(function(t){function e(i,s,c){let u={kind:"create",uri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(u.options=s),c!==void 0&&(u.annotationId=c),u}t.create=e;function n(i){let s=i;return s&&s.kind==="create"&&q.string(s.uri)&&(s.options===void 0||(s.options.overwrite===void 0||q.boolean(s.options.overwrite))&&(s.options.ignoreIfExists===void 0||q.boolean(s.options.ignoreIfExists)))&&(s.annotationId===void 0||Do.is(s.annotationId))}t.is=n})(kh||(kh={}));var Rh;(function(t){function e(i,s,c,u){let h={kind:"rename",oldUri:i,newUri:s};return c!==void 0&&(c.overwrite!==void 0||c.ignoreIfExists!==void 0)&&(h.options=c),u!==void 0&&(h.annotationId=u),h}t.create=e;function n(i){let s=i;return s&&s.kind==="rename"&&q.string(s.oldUri)&&q.string(s.newUri)&&(s.options===void 0||(s.options.overwrite===void 0||q.boolean(s.options.overwrite))&&(s.options.ignoreIfExists===void 0||q.boolean(s.options.ignoreIfExists)))&&(s.annotationId===void 0||Do.is(s.annotationId))}t.is=n})(Rh||(Rh={}));var Th;(function(t){function e(i,s,c){let u={kind:"delete",uri:i};return s!==void 0&&(s.recursive!==void 0||s.ignoreIfNotExists!==void 0)&&(u.options=s),c!==void 0&&(u.annotationId=c),u}t.create=e;function n(i){let s=i;return s&&s.kind==="delete"&&q.string(s.uri)&&(s.options===void 0||(s.options.recursive===void 0||q.boolean(s.options.recursive))&&(s.options.ignoreIfNotExists===void 0||q.boolean(s.options.ignoreIfNotExists)))&&(s.annotationId===void 0||Do.is(s.annotationId))}t.is=n})(Th||(Th={}));var Dh;(function(t){function e(n){let i=n;return i&&(i.changes!==void 0||i.documentChanges!==void 0)&&(i.documentChanges===void 0||i.documentChanges.every(s=>q.string(s.kind)?kh.is(s)||Rh.is(s)||Th.is(s):Ch.is(s)))}t.is=e})(Dh||(Dh={}));var jw;(function(t){function e(i){return{uri:i}}t.create=e;function n(i){let s=i;return q.defined(s)&&q.string(s.uri)}t.is=n})(jw||(jw={}));var zw;(function(t){function e(i,s){return{uri:i,version:s}}t.create=e;function n(i){let s=i;return q.defined(s)&&q.string(s.uri)&&q.integer(s.version)}t.is=n})(zw||(zw={}));var Ih;(function(t){function e(i,s){return{uri:i,version:s}}t.create=e;function n(i){let s=i;return q.defined(s)&&q.string(s.uri)&&(s.version===null||q.integer(s.version))}t.is=n})(Ih||(Ih={}));var Hw;(function(t){function e(i,s,c,u){return{uri:i,languageId:s,version:c,text:u}}t.create=e;function n(i){let s=i;return q.defined(s)&&q.string(s.uri)&&q.string(s.languageId)&&q.integer(s.version)&&q.string(s.text)}t.is=n})(Hw||(Hw={}));var Eh;(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(n){let i=n;return i===t.PlainText||i===t.Markdown}t.is=e})(Eh||(Eh={}));var Ps;(function(t){function e(n){let i=n;return q.objectLiteral(n)&&Eh.is(i.kind)&&q.string(i.value)}t.is=e})(Ps||(Ps={}));var Vw;(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(Vw||(Vw={}));var Gw;(function(t){t.PlainText=1,t.Snippet=2})(Gw||(Gw={}));var Qw;(function(t){t.Deprecated=1})(Qw||(Qw={}));var Jw;(function(t){function e(i,s,c){return{newText:i,insert:s,replace:c}}t.create=e;function n(i){let s=i;return s&&q.string(s.newText)&&at.is(s.insert)&&at.is(s.replace)}t.is=n})(Jw||(Jw={}));var Xw;(function(t){t.asIs=1,t.adjustIndentation=2})(Xw||(Xw={}));var Yw;(function(t){function e(n){let i=n;return i&&(q.string(i.detail)||i.detail===void 0)&&(q.string(i.description)||i.description===void 0)}t.is=e})(Yw||(Yw={}));var Kw;(function(t){function e(n){return{label:n}}t.create=e})(Kw||(Kw={}));var Zw;(function(t){function e(n,i){return{items:n||[],isIncomplete:!!i}}t.create=e})(Zw||(Zw={}));var uu;(function(t){function e(i){return i.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}t.fromPlainText=e;function n(i){let s=i;return q.string(s)||q.objectLiteral(s)&&q.string(s.language)&&q.string(s.value)}t.is=n})(uu||(uu={}));var eP;(function(t){function e(n){let i=n;return!!i&&q.objectLiteral(i)&&(Ps.is(i.contents)||uu.is(i.contents)||q.typedArray(i.contents,uu.is))&&(n.range===void 0||at.is(n.range))}t.is=e})(eP||(eP={}));var tP;(function(t){function e(n,i){return i?{label:n,documentation:i}:{label:n}}t.create=e})(tP||(tP={}));var nP;(function(t){function e(n,i,...s){let c={label:n};return q.defined(i)&&(c.documentation=i),q.defined(s)?c.parameters=s:c.parameters=[],c}t.create=e})(nP||(nP={}));var rP;(function(t){t.Text=1,t.Read=2,t.Write=3})(rP||(rP={}));var iP;(function(t){function e(n,i){let s={range:n};return q.number(i)&&(s.kind=i),s}t.create=e})(iP||(iP={}));var oP;(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(oP||(oP={}));var sP;(function(t){t.Deprecated=1})(sP||(sP={}));var aP;(function(t){function e(n,i,s,c,u){let h={name:n,kind:i,location:{uri:c,range:s}};return u&&(h.containerName=u),h}t.create=e})(aP||(aP={}));var cP;(function(t){function e(n,i,s,c){return c!==void 0?{name:n,kind:i,location:{uri:s,range:c}}:{name:n,kind:i,location:{uri:s}}}t.create=e})(cP||(cP={}));var uP;(function(t){function e(i,s,c,u,h,g){let b={name:i,detail:s,kind:c,range:u,selectionRange:h};return g!==void 0&&(b.children=g),b}t.create=e;function n(i){let s=i;return s&&q.string(s.name)&&q.number(s.kind)&&at.is(s.range)&&at.is(s.selectionRange)&&(s.detail===void 0||q.string(s.detail))&&(s.deprecated===void 0||q.boolean(s.deprecated))&&(s.children===void 0||Array.isArray(s.children))&&(s.tags===void 0||Array.isArray(s.tags))}t.is=n})(uP||(uP={}));var lP;(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(lP||(lP={}));var lu;(function(t){t.Invoked=1,t.Automatic=2})(lu||(lu={}));var dP;(function(t){function e(i,s,c){let u={diagnostics:i};return s!=null&&(u.only=s),c!=null&&(u.triggerKind=c),u}t.create=e;function n(i){let s=i;return q.defined(s)&&q.typedArray(s.diagnostics,cu.is)&&(s.only===void 0||q.typedArray(s.only,q.string))&&(s.triggerKind===void 0||s.triggerKind===lu.Invoked||s.triggerKind===lu.Automatic)}t.is=n})(dP||(dP={}));var fP;(function(t){function e(i,s,c){let u={title:i},h=!0;return typeof s=="string"?(h=!1,u.kind=s):Ro.is(s)?u.command=s:u.edit=s,h&&c!==void 0&&(u.kind=c),u}t.create=e;function n(i){let s=i;return s&&q.string(s.title)&&(s.diagnostics===void 0||q.typedArray(s.diagnostics,cu.is))&&(s.kind===void 0||q.string(s.kind))&&(s.edit!==void 0||s.command!==void 0)&&(s.command===void 0||Ro.is(s.command))&&(s.isPreferred===void 0||q.boolean(s.isPreferred))&&(s.edit===void 0||Dh.is(s.edit))}t.is=n})(fP||(fP={}));var hP;(function(t){function e(i,s){let c={range:i};return q.defined(s)&&(c.data=s),c}t.create=e;function n(i){let s=i;return q.defined(s)&&at.is(s.range)&&(q.undefined(s.command)||Ro.is(s.command))}t.is=n})(hP||(hP={}));var gP;(function(t){function e(i,s){return{tabSize:i,insertSpaces:s}}t.create=e;function n(i){let s=i;return q.defined(s)&&q.uinteger(s.tabSize)&&q.boolean(s.insertSpaces)}t.is=n})(gP||(gP={}));var pP;(function(t){function e(i,s,c){return{range:i,target:s,data:c}}t.create=e;function n(i){let s=i;return q.defined(s)&&at.is(s.range)&&(q.undefined(s.target)||q.string(s.target))}t.is=n})(pP||(pP={}));var mP;(function(t){function e(i,s){return{range:i,parent:s}}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&at.is(s.range)&&(s.parent===void 0||t.is(s.parent))}t.is=n})(mP||(mP={}));var bP;(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(bP||(bP={}));var _P;(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(_P||(_P={}));var vP;(function(t){function e(n){let i=n;return q.objectLiteral(i)&&(i.resultId===void 0||typeof i.resultId=="string")&&Array.isArray(i.data)&&(i.data.length===0||typeof i.data[0]=="number")}t.is=e})(vP||(vP={}));var yP;(function(t){function e(i,s){return{range:i,text:s}}t.create=e;function n(i){let s=i;return s!=null&&at.is(s.range)&&q.string(s.text)}t.is=n})(yP||(yP={}));var wP;(function(t){function e(i,s,c){return{range:i,variableName:s,caseSensitiveLookup:c}}t.create=e;function n(i){let s=i;return s!=null&&at.is(s.range)&&q.boolean(s.caseSensitiveLookup)&&(q.string(s.variableName)||s.variableName===void 0)}t.is=n})(wP||(wP={}));var PP;(function(t){function e(i,s){return{range:i,expression:s}}t.create=e;function n(i){let s=i;return s!=null&&at.is(s.range)&&(q.string(s.expression)||s.expression===void 0)}t.is=n})(PP||(PP={}));var xP;(function(t){function e(i,s){return{frameId:i,stoppedLocation:s}}t.create=e;function n(i){let s=i;return q.defined(s)&&at.is(i.stoppedLocation)}t.is=n})(xP||(xP={}));var Fh;(function(t){t.Type=1,t.Parameter=2;function e(n){return n===1||n===2}t.is=e})(Fh||(Fh={}));var Mh;(function(t){function e(i){return{value:i}}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&(s.tooltip===void 0||q.string(s.tooltip)||Ps.is(s.tooltip))&&(s.location===void 0||au.is(s.location))&&(s.command===void 0||Ro.is(s.command))}t.is=n})(Mh||(Mh={}));var SP;(function(t){function e(i,s,c){let u={position:i,label:s};return c!==void 0&&(u.kind=c),u}t.create=e;function n(i){let s=i;return q.objectLiteral(s)&&er.is(s.position)&&(q.string(s.label)||q.typedArray(s.label,Mh.is))&&(s.kind===void 0||Fh.is(s.kind))&&s.textEdits===void 0||q.typedArray(s.textEdits,To.is)&&(s.tooltip===void 0||q.string(s.tooltip)||Ps.is(s.tooltip))&&(s.paddingLeft===void 0||q.boolean(s.paddingLeft))&&(s.paddingRight===void 0||q.boolean(s.paddingRight))}t.is=n})(SP||(SP={}));var CP;(function(t){function e(n){return{kind:"snippet",value:n}}t.createSnippet=e})(CP||(CP={}));var kP;(function(t){function e(n,i,s,c){return{insertText:n,filterText:i,range:s,command:c}}t.create=e})(kP||(kP={}));var RP;(function(t){function e(n){return{items:n}}t.create=e})(RP||(RP={}));var TP;(function(t){t.Invoked=0,t.Automatic=1})(TP||(TP={}));var DP;(function(t){function e(n,i){return{range:n,text:i}}t.create=e})(DP||(DP={}));var IP;(function(t){function e(n,i){return{triggerKind:n,selectedCompletionInfo:i}}t.create=e})(IP||(IP={}));var EP;(function(t){function e(n){let i=n;return q.objectLiteral(i)&&wh.is(i.uri)&&q.string(i.name)}t.is=e})(EP||(EP={}));var FP;(function(t){function e(c,u,h,g){return new Ah(c,u,h,g)}t.create=e;function n(c){let u=c;return!!(q.defined(u)&&q.string(u.uri)&&(q.undefined(u.languageId)||q.string(u.languageId))&&q.uinteger(u.lineCount)&&q.func(u.getText)&&q.func(u.positionAt)&&q.func(u.offsetAt))}t.is=n;function i(c,u){let h=c.getText(),g=s(u,(y,T)=>{let F=y.range.start.line-T.range.start.line;return F===0?y.range.start.character-T.range.start.character:F}),b=h.length;for(let y=g.length-1;y>=0;y--){let T=g[y],F=c.offsetAt(T.range.start),E=c.offsetAt(T.range.end);if(E<=b)h=h.substring(0,F)+T.newText+h.substring(E,h.length);else throw new Error("Overlapping edit");b=F}return h}t.applyEdits=i;function s(c,u){if(c.length<=1)return c;let h=c.length/2|0,g=c.slice(0,h),b=c.slice(h);s(g,u),s(b,u);let y=0,T=0,F=0;for(;y0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),i=0,s=n.length;if(s===0)return er.create(0,e);for(;ie?s=u:i=u+1}let c=i-1;return er.create(c,e-n[c])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line],s=e.line+1"u"}t.undefined=i;function s(E){return E===!0||E===!1}t.boolean=s;function c(E){return e.call(E)==="[object String]"}t.string=c;function u(E){return e.call(E)==="[object Number]"}t.number=u;function h(E,L,B){return e.call(E)==="[object Number]"&&L<=E&&E<=B}t.numberRange=h;function g(E){return e.call(E)==="[object Number]"&&-2147483648<=E&&E<=2147483647}t.integer=g;function b(E){return e.call(E)==="[object Number]"&&0<=E&&E<=2147483647}t.uinteger=b;function y(E){return e.call(E)==="[object Function]"}t.func=y;function T(E){return E!==null&&typeof E=="object"}t.objectLiteral=T;function F(E,L){return Array.isArray(E)&&E.every(L)}t.typedArray=F})(q||(q={}));var MP;(()=>{"use strict";var t={470:s=>{function c(g){if(typeof g!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(g))}function u(g,b){for(var y,T="",F=0,E=-1,L=0,B=0;B<=g.length;++B){if(B2){var $=T.lastIndexOf("/");if($!==T.length-1){$===-1?(T="",F=0):F=(T=T.slice(0,$)).length-1-T.lastIndexOf("/"),E=B,L=0;continue}}else if(T.length===2||T.length===1){T="",F=0,E=B,L=0;continue}}b&&(T.length>0?T+="/..":T="..",F=2)}else T.length>0?T+="/"+g.slice(E+1,B):T=g.slice(E+1,B),F=B-E-1;E=B,L=0}else y===46&&L!==-1?++L:L=-1}return T}var h={resolve:function(){for(var g,b="",y=!1,T=arguments.length-1;T>=-1&&!y;T--){var F;T>=0?F=arguments[T]:(g===void 0&&(g=process.cwd()),F=g),c(F),F.length!==0&&(b=F+"/"+b,y=F.charCodeAt(0)===47)}return b=u(b,!y),y?b.length>0?"/"+b:"/":b.length>0?b:"."},normalize:function(g){if(c(g),g.length===0)return".";var b=g.charCodeAt(0)===47,y=g.charCodeAt(g.length-1)===47;return(g=u(g,!b)).length!==0||b||(g="."),g.length>0&&y&&(g+="/"),b?"/"+g:g},isAbsolute:function(g){return c(g),g.length>0&&g.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var g,b=0;b0&&(g===void 0?g=y:g+="/"+y)}return g===void 0?".":h.normalize(g)},relative:function(g,b){if(c(g),c(b),g===b||(g=h.resolve(g))===(b=h.resolve(b)))return"";for(var y=1;yB){if(b.charCodeAt(E+X)===47)return b.slice(E+X+1);if(X===0)return b.slice(E+X)}else F>B&&(g.charCodeAt(y+X)===47?$=X:X===0&&($=0));break}var D=g.charCodeAt(y+X);if(D!==b.charCodeAt(E+X))break;D===47&&($=X)}var x="";for(X=y+$+1;X<=T;++X)X!==T&&g.charCodeAt(X)!==47||(x.length===0?x+="..":x+="/..");return x.length>0?x+b.slice(E+$):(E+=$,b.charCodeAt(E)===47&&++E,b.slice(E))},_makeLong:function(g){return g},dirname:function(g){if(c(g),g.length===0)return".";for(var b=g.charCodeAt(0),y=b===47,T=-1,F=!0,E=g.length-1;E>=1;--E)if((b=g.charCodeAt(E))===47){if(!F){T=E;break}}else F=!1;return T===-1?y?"/":".":y&&T===1?"//":g.slice(0,T)},basename:function(g,b){if(b!==void 0&&typeof b!="string")throw new TypeError('"ext" argument must be a string');c(g);var y,T=0,F=-1,E=!0;if(b!==void 0&&b.length>0&&b.length<=g.length){if(b.length===g.length&&b===g)return"";var L=b.length-1,B=-1;for(y=g.length-1;y>=0;--y){var $=g.charCodeAt(y);if($===47){if(!E){T=y+1;break}}else B===-1&&(E=!1,B=y+1),L>=0&&($===b.charCodeAt(L)?--L==-1&&(F=y):(L=-1,F=B))}return T===F?F=B:F===-1&&(F=g.length),g.slice(T,F)}for(y=g.length-1;y>=0;--y)if(g.charCodeAt(y)===47){if(!E){T=y+1;break}}else F===-1&&(E=!1,F=y+1);return F===-1?"":g.slice(T,F)},extname:function(g){c(g);for(var b=-1,y=0,T=-1,F=!0,E=0,L=g.length-1;L>=0;--L){var B=g.charCodeAt(L);if(B!==47)T===-1&&(F=!1,T=L+1),B===46?b===-1?b=L:E!==1&&(E=1):b!==-1&&(E=-1);else if(!F){y=L+1;break}}return b===-1||T===-1||E===0||E===1&&b===T-1&&b===y+1?"":g.slice(b,T)},format:function(g){if(g===null||typeof g!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof g);return function(b,y){var T=y.dir||y.root,F=y.base||(y.name||"")+(y.ext||"");return T?T===y.root?T+F:T+"/"+F:F}(0,g)},parse:function(g){c(g);var b={root:"",dir:"",base:"",ext:"",name:""};if(g.length===0)return b;var y,T=g.charCodeAt(0),F=T===47;F?(b.root="/",y=1):y=0;for(var E=-1,L=0,B=-1,$=!0,X=g.length-1,D=0;X>=y;--X)if((T=g.charCodeAt(X))!==47)B===-1&&($=!1,B=X+1),T===46?E===-1?E=X:D!==1&&(D=1):E!==-1&&(D=-1);else if(!$){L=X+1;break}return E===-1||B===-1||D===0||D===1&&E===B-1&&E===L+1?B!==-1&&(b.base=b.name=L===0&&F?g.slice(1,B):g.slice(L,B)):(L===0&&F?(b.name=g.slice(1,E),b.base=g.slice(1,B)):(b.name=g.slice(L,E),b.base=g.slice(L,B)),b.ext=g.slice(E,B)),L>0?b.dir=g.slice(0,L-1):F&&(b.dir="/"),b},sep:"/",delimiter:":",win32:null,posix:null};h.posix=h,s.exports=h}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>F,Utils:()=>we}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,h=/^\/\//;function g(Y,z){if(!Y.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${Y.authority}", path: "${Y.path}", query: "${Y.query}", fragment: "${Y.fragment}"}`);if(Y.scheme&&!c.test(Y.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(Y.path){if(Y.authority){if(!u.test(Y.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(h.test(Y.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let b="",y="/",T=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class F{static isUri(z){return z instanceof F||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,ae,ie,ke,ge,pe=!1){typeof z=="object"?(this.scheme=z.scheme||b,this.authority=z.authority||b,this.path=z.path||b,this.query=z.query||b,this.fragment=z.fragment||b):(this.scheme=function(wt,We){return wt||We?wt:"file"}(z,pe),this.authority=ae||b,this.path=function(wt,We){switch(wt){case"https":case"http":case"file":We?We[0]!==y&&(We=y+We):We=y}return We}(this.scheme,ie||b),this.query=ke||b,this.fragment=ge||b,g(this,pe))}get fsPath(){return D(this,!1)}with(z){if(!z)return this;let{scheme:ae,authority:ie,path:ke,query:ge,fragment:pe}=z;return ae===void 0?ae=this.scheme:ae===null&&(ae=b),ie===void 0?ie=this.authority:ie===null&&(ie=b),ke===void 0?ke=this.path:ke===null&&(ke=b),ge===void 0?ge=this.query:ge===null&&(ge=b),pe===void 0?pe=this.fragment:pe===null&&(pe=b),ae===this.scheme&&ie===this.authority&&ke===this.path&&ge===this.query&&pe===this.fragment?this:new L(ae,ie,ke,ge,pe)}static parse(z,ae=!1){let ie=T.exec(z);return ie?new L(ie[2]||b,_e(ie[4]||b),_e(ie[5]||b),_e(ie[7]||b),_e(ie[9]||b),ae):new L(b,b,b,b,b)}static file(z){let ae=b;if(s&&(z=z.replace(/\\/g,y)),z[0]===y&&z[1]===y){let ie=z.indexOf(y,2);ie===-1?(ae=z.substring(2),z=y):(ae=z.substring(2,ie),z=z.substring(ie)||y)}return new L("file",ae,z,b,b)}static from(z){let ae=new L(z.scheme,z.authority,z.path,z.query,z.fragment);return g(ae,!0),ae}toString(z=!1){return x(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof F)return z;{let ae=new L(z);return ae._formatted=z.external,ae._fsPath=z._sep===E?z.fsPath:null,ae}}return z}}let E=s?1:void 0;class L extends F{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=D(this,!1)),this._fsPath}toString(z=!1){return z?x(this,!0):(this._formatted||(this._formatted=x(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=E),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let B={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function $(Y,z,ae){let ie,ke=-1;for(let ge=0;ge=97&&pe<=122||pe>=65&&pe<=90||pe>=48&&pe<=57||pe===45||pe===46||pe===95||pe===126||z&&pe===47||ae&&pe===91||ae&&pe===93||ae&&pe===58)ke!==-1&&(ie+=encodeURIComponent(Y.substring(ke,ge)),ke=-1),ie!==void 0&&(ie+=Y.charAt(ge));else{ie===void 0&&(ie=Y.substr(0,ge));let wt=B[pe];wt!==void 0?(ke!==-1&&(ie+=encodeURIComponent(Y.substring(ke,ge)),ke=-1),ie+=wt):ke===-1&&(ke=ge)}}return ke!==-1&&(ie+=encodeURIComponent(Y.substring(ke))),ie!==void 0?ie:Y}function X(Y){let z;for(let ae=0;ae1&&Y.scheme==="file"?`//${Y.authority}${Y.path}`:Y.path.charCodeAt(0)===47&&(Y.path.charCodeAt(1)>=65&&Y.path.charCodeAt(1)<=90||Y.path.charCodeAt(1)>=97&&Y.path.charCodeAt(1)<=122)&&Y.path.charCodeAt(2)===58?z?Y.path.substr(1):Y.path[1].toLowerCase()+Y.path.substr(2):Y.path,s&&(ae=ae.replace(/\//g,"\\")),ae}function x(Y,z){let ae=z?X:$,ie="",{scheme:ke,authority:ge,path:pe,query:wt,fragment:We}=Y;if(ke&&(ie+=ke,ie+=":"),(ge||ke==="file")&&(ie+=y,ie+=y),ge){let je=ge.indexOf("@");if(je!==-1){let pn=ge.substr(0,je);ge=ge.substr(je+1),je=pn.lastIndexOf(":"),je===-1?ie+=ae(pn,!1,!1):(ie+=ae(pn.substr(0,je),!1,!1),ie+=":",ie+=ae(pn.substr(je+1),!1,!0)),ie+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?ie+=ae(ge,!1,!0):(ie+=ae(ge.substr(0,je),!1,!0),ie+=ge.substr(je))}if(pe){if(pe.length>=3&&pe.charCodeAt(0)===47&&pe.charCodeAt(2)===58){let je=pe.charCodeAt(1);je>=65&&je<=90&&(pe=`/${String.fromCharCode(je+32)}:${pe.substr(3)}`)}else if(pe.length>=2&&pe.charCodeAt(1)===58){let je=pe.charCodeAt(0);je>=65&&je<=90&&(pe=`${String.fromCharCode(je+32)}:${pe.substr(2)}`)}ie+=ae(pe,!0,!1)}return wt&&(ie+="?",ie+=ae(wt,!1,!1)),We&&(ie+="#",ie+=z?We:$(We,!1,!1)),ie}function O(Y){try{return decodeURIComponent(Y)}catch{return Y.length>3?Y.substr(0,3)+O(Y.substr(3)):Y}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function _e(Y){return Y.match(te)?Y.replace(te,z=>O(z)):Y}var Be=n(470);let Ye=Be.posix||Be,kt="/";var we;(function(Y){Y.joinPath=function(z,...ae){return z.with({path:Ye.join(z.path,...ae)})},Y.resolvePath=function(z,...ae){let ie=z.path,ke=!1;ie[0]!==kt&&(ie=kt+ie,ke=!0);let ge=Ye.resolve(ie,...ae);return ke&&ge[0]===kt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},Y.dirname=function(z){if(z.path.length===0||z.path===kt)return z;let ae=Ye.dirname(z.path);return ae.length===1&&ae.charCodeAt(0)===46&&(ae=""),z.with({path:ae})},Y.basename=function(z){return Ye.basename(z.path)},Y.extname=function(z){return Ye.extname(z.path)}})(we||(we={}))})(),MP=i})();var{URI:ht,Utils:vt}=MP;var Rn=Tt(require("fs"));var Ai=Tt(require("fs")),en=Tt(require("fs/promises"));function pF(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function mF(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function AP(t){return{size:t.size,type:mF(t),mtime:Math.floor(t.mtimeMs)}}async function NP(t){let e=await en.lstat(t);return AP(e)}function qP(t){try{return xs(t).type==="File"}catch{return!1}}async function LP(t){try{return(await en.stat(t)).isDirectory()}catch{return!1}}function xs(t){let e=Ai.lstatSync(t);return AP(e)}function Ss(t){let e=[],n=Ai.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,pF(i)]);return e}async function Cs(t){await en.mkdir(t,{recursive:!0})}async function Nh(t,e){await en.rename(t,e)}async function OP(t){return await en.readFile(t)}async function Io(t){return await en.readFile(t,{encoding:"utf8"})}async function du(t,e){return await en.writeFile(t,e,{encoding:"utf8"})}function BP(t){return Ai.readFileSync(t,{encoding:"utf8"})}var qh=class{secretsPath;constructor(e){Rn.existsSync(e.fsPath)||Rn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=vt.joinPath(e,"secrets.json").fsPath,Rn.existsSync(this.secretsPath)||Rn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Rn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Rn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i)}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n))}},fu=class{inMemoryState=new Map;statePath;constructor(e){Rn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=vt.joinPath(e,"state.json").fsPath;try{let n=BP(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Rn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},Eo=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Rn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=vt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=vt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new qh(e),this.globalState=new fu(this.globalStorageUri),this.workspaceState=new fu(this.storageUri)}};var hu=class{constructor(e){this.document=e}get uri(){return ht.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){return this.document.positionAt(e)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},Nr=class{dispose;constructor(e){this.dispose=()=>e()}},Ve=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new UP.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new Nr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Ni=class{token;tokenEvent;constructor(){this.tokenEvent=new Ve,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},bF=new Ve,Lh={onDidChangeConfiguration:bF.event,getConfiguration:t=>t==="augment"?{}:{}};var _F={initialMS:100,mult:2,maxMS:3e4};function ks(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function vF(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function br(t,e,n=_F){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>Mt.isRetriableAPIError(u);for(let u=0;;u++)try{let h=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),h}catch(h){if(!c(h))throw h;let g=u+1;if(n.maxTries!==void 0&&g>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${h}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw h;await vF(i)}}async function Oh(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function gu(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var Bh=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},pu=class t{constructor(e,n,i,s,c){this.config=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Uh;_logger=Oe("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return vs()}async callApi(e,n,i,s,c,u,h,g){let b=n.apiToken,y=!1;if(this._auth.useOAuth){let O=await this._auth.getSession();O&&(b=O.accessToken,y=!0,u||(u=O.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let T;try{T=new URL(i,u)}catch(O){throw this._logger.error("Augment API URL is invalid:",O),new mu}if(!T.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let F=JSON.stringify(s,(O,te)=>te===void 0?null:te),E=h??t.defaultRequestTimeoutMs,L=AbortSignal.timeout(E),B="POST",$,X,D;try{let O={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};b&&(O.Authorization=`Bearer ${b}`),X=Date.now(),$=await Oh(this._fetchFunction(T.toString(),{method:B,headers:O,body:F,signal:L}),E),D=Date.now()}catch(O){throw O instanceof Error?(this._logger.error(`API request ${e} to ${T.toString()} failed: ${De(O,!0)}`),Mt.transientIssue(O.message)):(this._logger.debug(`API request ${e} to ${T.toString()} failed`),O)}if(g&&(g.rpcStart=X,g.rpcEnd=D),!$.ok)throw $.status===499?Mt.fromResponse($):($.status===401&&y&&this._auth.removeSession(),$.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${T.toString()} failed: ${await $.text()}`),this._logger.error(`API request ${e} to ${T.toString()} response ${$.status}: ${$.statusText}`),Mt.fromResponse($).status===10&&this._logger.debug("object size is big"),Mt.fromResponse($));let x;try{if($.headers.get("content-length")==="0")return;x=await $.json()}catch(O){throw this._logger.error(`API request ${e} to ${T.toString()} failed to convert response to json: ${O.message}`),O}try{return c?c(x):x}catch(O){throw new Bh(De(O),JSON.stringify(x))}}async callApiStream(e,n,i,s,c=b=>b,u,h,g){let b=n.apiToken;if(this._auth.useOAuth){let x=await this._auth.getSession();x&&(b=x.accessToken,u||(u=x.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let y;try{y=new URL(i,u)}catch(x){throw this._logger.error("Augment API URL is invalid:",x),new mu}if(!y.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let T=JSON.stringify(s,(x,O)=>O===void 0?null:O),F=h??t.defaultRequestTimeoutMs,E=AbortSignal.timeout(F),L="POST",B;try{let x={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${g??this.sessionId}`};b&&(x.Authorization=`Bearer ${b}`),B=await Oh(this._fetchFunction(y.toString(),{method:L,headers:x,body:T,signal:E}),F)}catch(x){throw x instanceof Error?(this._logger.error(`API request ${e} to ${y.toString()} failed: ${De(x,!0)}`),x.stack&&this._logger.error(x.stack),Mt.transientIssue(x.message)):x}if(!B.ok)throw B.status===499?Mt.fromResponse(B):(B.status===401&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${y.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${y.toString()} response ${B.status}: ${B.statusText}`),Mt.fromResponse(B).status===10&&this._logger.debug(`object size is ${s?ou(s):0} `),Mt.fromResponse(B));let $=B.body.getReader(),X=this._logger;async function*D(x){let O=new TextDecoder,te="";for(;;){let{value:_e,done:Be}=await x.read(new Uint8Array);if(Be)return;for(te+=O.decode(_e,{stream:!0});te.includes(` -`);){let Ye=te.indexOf(` -`),kt=te.substring(0,Ye);te=te.substring(Ye+1);try{let we=JSON.parse(kt);yield c(we)}catch(we){X.error(`JSON parse failed for ${kt}: ${De(we)}`)}}}}return D($)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?ko("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:gn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=ko("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:yh("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:gn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,h,g,b,y,T,F,E){let L=this.config,B={recent_changes:b},$={model:L.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:h,blobs:gu(g),recency_info:B,probe_only:F,sequence_id:this._sequenceId.next(),filter_threshold:L.completions.filterThreshold,edit_events:this.toFileDiffsPayload(y??[])};return await this.callApi(e,L,"completion",$,X=>this.toCompleteResult(X),void 0,T,E)}async checkpointBlobs(e){let n=this.createRequestId(),i=this.config,s={blobs:gu(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,g=>this.toCheckpointBlobsResult(g),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?gn("BackMemorizeResult","blob_name",e.blob_name):gn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),h=this.config,g=await this.callApi(u,h,"memorize",{model:h.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},b=>this.toMemorizeResult(b));for(let b of this.getUniqueExtraURLs())await this.callApi(u,h,"memorize",{model:h.modelName,path:e,t:n,blob_name:i,metadata:s},y=>this.toMemorizeResult(y),b);return g}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!Mt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let h=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(h.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:ko("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:ko("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},h=>this.toFindMissingResult(h));for(let h of this.getUniqueExtraURLs()){let g=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},b=>this.toFindMissingResult(b),h);u.unknownBlobNames=u.unknownBlobNames.concat(g.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(g.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=gn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:ko("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:yh("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(h=>({charStart:ui("BackWorkspaceFileChunk","char_start",h.char_start),charEnd:ui("BackWorkspaceFileChunk","char_end",h.char_end),blobName:gn("BackWorkspaceFileChunk","blob_name",h.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(h=>({id:ui("BackChatResultNode","id",h.id),type:ui("BackChatResultNode","type",h.type),content:gn("BackChatResultNode","content",h.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,h,g,b,y,T,F,E,L){let B=this.config,$={model:h??B.chat.model,path:E,prefix:T,selected_code:y,suffix:F,message:n,chat_history:i,lang:L,blobs:gu(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:b,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:g,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,B,"chat",$,X=>this.toChatResult(X),B.chat.url,12e4)}async chatStream(e,n,i,s,c,u,h,g,b,y,T,F,E,L,B,$,X,D){let x=this.config,O={model:h??x.chat.model,path:E,prefix:T,selected_code:y,suffix:F,message:n,chat_history:i,lang:L,blobs:gu(s),user_guided_blobs:c,context_code_exchange_request_id:b,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:g,external_source_ids:u,disable_auto_external_sources:$,user_guidelines:X,workspace_guidelines:D,feature_detection_flags:{support_raw_output:!0}};return await br(()=>this.callApiStream(e,x,"chat-stream",O,this.toChatResult.bind(this),x.chat.url,12e4,B),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?ui("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:gn("BackModelInfo","name",e.name),suggestedPrefixCharCount:ui("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:ui("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n}}toLanguage(e){let n=gn("BackLanguageInfo","name",e.name),i=gn("BackLanguageInfo","vscodeName",e.vscode_name);ws("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(gn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=gn("BackGetModelsResult","default_model",e.default_model);ws("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=vh;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version)}let c=[];if(e.languages!==void 0){ws("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this.config,u=this.createRequestId(),h={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",h,g=>g.access_token,n)}async clientMetrics(e){let n=this.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}},mu=class extends Error{constructor(){super("The completion URL setting is invalid")}},Uh=class{_sequenceId=0;next(){return this._sequenceId++}};var Ts=Tt(bu()),_u=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,Ts.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: -${this.diff(this.value,e).map(n=>` - ${n}`).join(` -`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,Ts.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,Ts.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let h=n?n[u]:void 0,g=e?e[u]:void 0;!this.isObject(h)||!this.isObject(g)?h!==g&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(g)} to ${this._formatValue(h)}`):c.push(...this.diff(g,h,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var tr=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},yt=class{_disposables=new tr;_priorityDisposables=new tr;constructor(e=new tr,n=new tr){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var yF={Augment:null},vu=class t extends yt{_config;_configChanged=new Ve;_configMonitor;_logger=Oe("AugmentConfigListener");constructor(){super(),this._configMonitor=new _u("Config",this._logger),this._refreshConfig(),this.addDisposable(Lh.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||yF,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||"augment-vscode-extension",url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model}}}_getUserConfig(){let e=Lh.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:ct(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:ct(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:ct(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:wF(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:ct(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:ct(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:ct(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:ct(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:ct(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:ct(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:ct(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:ct(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:ct(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:ct(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:ct(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:ct(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:ct(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:ct(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:ct(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:ct(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:ct(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:ct(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:ct(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:ct(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:ct(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:ct(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model}}}}};function ct(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function wF(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var WP=Tt(bu()),yu="augment.sessions",$P=["email"],wu=class{constructor(e,n){this._context=e;this._config=n}_isLoggedIn;get useOAuth(){let e=this._config;return!!e.oauth&&!!e.oauth.url&&!!e.oauth.clientID&&!e.apiToken&&!e.completionURL}async initState(){this._isLoggedIn=!!await this.getSession()}get isLoggedIn(){return this._isLoggedIn}async saveSession(e,n){await this._context.secrets.store(yu,JSON.stringify({accessToken:e,tenantURL:n,scopes:$P})),this._isLoggedIn=!0}async getSession(){let e=await this._context.secrets.get(yu);if(e){let n=JSON.parse(e);if((0,WP.isEqual)(n.scopes,$P))return n}return null}async removeSession(){await this._context.secrets.get(yu)&&(await this._context.secrets.delete(yu),this._isLoggedIn=!1)}};var Mo=require("crypto"),$h=require("url");var PF=["email"],Pu="augment.oauth-state",xF=".augmentcode.com",SF=10,xu=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=ht.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=Oe("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=jP((0,Mo.randomBytes)(32)),n=jP(CF(Buffer.from(e))),i=(0,Mo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(Pu,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(Pu);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTimekF(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var Cu=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} +`)+K+`return __p +}`;var Ce=i_(function(){return He(_,ce+"return "+K).apply(e,w)});if(Ce.source=K,Vd(Ce))throw Ce;return Ce}function aM(r){return Ge(r).toLowerCase()}function cM(r){return Ge(r).toUpperCase()}function uM(r,s,a){if(r=Ge(r),r&&(a||s===e))return hm(r);if(!r||!(s=Pn(s)))return r;var l=Jn(r),d=Jn(s),_=gm(l,d),w=pm(l,d)+1;return Zr(l,_,w).join("")}function lM(r,s,a){if(r=Ge(r),r&&(a||s===e))return r.slice(0,bm(r)+1);if(!r||!(s=Pn(s)))return r;var l=Jn(r),d=pm(l,Jn(s))+1;return Zr(l,0,d).join("")}function dM(r,s,a){if(r=Ge(r),r&&(a||s===e))return r.replace(C,"");if(!r||!(s=Pn(s)))return r;var l=Jn(r),d=gm(l,Jn(s));return Zr(l,d).join("")}function fM(r,s){var a=Ke,l=Dt;if(_t(s)){var d="separator"in s?s.separator:d;a="length"in s?Se(s.length):a,l="omission"in s?Pn(s.omission):l}r=Ge(r);var _=r.length;if(Qi(r)){var w=Jn(r);_=w.length}if(a>=_)return r;var R=a-Ji(l);if(R<1)return l;var A=w?Zr(w,0,R).join(""):r.slice(0,R);if(d===e)return A+l;if(w&&(R+=A.length-R),Gd(d)){if(r.slice(R).search(d)){var G,J=A;for(d.global||(d=ud(d.source,Ge(an.exec(d))+"g")),d.lastIndex=0;G=d.exec(J);)var K=G.index;A=A.slice(0,K===e?R:K)}}else if(r.indexOf(Pn(d),R)!=R){var re=A.lastIndexOf(d);re>-1&&(A=A.slice(0,re))}return A+l}function hM(r){return r=Ge(r),r&&Et.test(r)?r.replace(qe,W0):r}var gM=to(function(r,s,a){return r+(a?" ":"")+s.toUpperCase()}),Xd=ob("toUpperCase");function r_(r,s,a){return r=Ge(r),s=a?e:s,s===e?L0(r)?H0(r):T0(r):r.match(s)||[]}var i_=Te(function(r,s){try{return xn(r,e,s)}catch(a){return Vd(a)?a:new ve(a)}}),pM=Ir(function(r,s){return Fn(s,function(a){a=mr(a),Dr(r,a,zd(r[a],r))}),r});function mM(r){var s=r==null?0:r.length,a=le();return r=s?gt(r,function(l){if(typeof l[1]!="function")throw new An(o);return[a(l[0]),l[1]]}):[],Te(function(l){for(var d=-1;++dge)return[];var a=je,l=Vt(r,je);s=le(s),r-=je;for(var d=sd(l,s);++a0||s<0)?new Me(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),s!==e&&(s=Se(s),a=s<0?a.dropRight(-s):a.take(s-r)),a)},Me.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Me.prototype.toArray=function(){return this.take(je)},gr(Me.prototype,function(r,s){var a=/^(?:filter|find|map|reject)|While$/.test(s),l=/^(?:head|last)$/.test(s),d=m[l?"take"+(s=="last"?"Right":""):s],_=l||/^find/.test(s);d&&(m.prototype[s]=function(){var w=this.__wrapped__,R=l?[1]:arguments,A=w instanceof Me,G=R[0],J=A||we(w),K=function(Ae){var Le=d.apply(m,Vr([Ae],R));return l&&re?Le[0]:Le};J&&a&&typeof G=="function"&&G.length!=1&&(A=J=!1);var re=this.__chain__,ce=!!this.__actions__.length,de=_&&!re,Ce=A&&!ce;if(!_&&J){w=Ce?w:new Me(this);var fe=r.apply(w,R);return fe.__actions__.push({func:rc,args:[K],thisArg:e}),new Mn(fe,re)}return de&&Ce?r.apply(this,R):(fe=this.thru(K),de?l?fe.value()[0]:fe.value():fe)})}),Fn(["pop","push","shift","sort","splice","unshift"],function(r){var s=Da[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);m.prototype[r]=function(){var d=arguments;if(l&&!this.__chain__){var _=this.value();return s.apply(we(_)?_:[],d)}return this[a](function(w){return s.apply(we(w)?w:[],d)})}}),gr(Me.prototype,function(r,s){var a=m[s];if(a){var l=a.name+"";Xe.call(Yi,l)||(Yi[l]=[]),Yi[l].push({name:s,func:a})}}),Yi[Xa(e,B).name]=[{name:"wrapper",func:e}],Me.prototype.clone=hD,Me.prototype.reverse=gD,Me.prototype.value=pD,m.prototype.at=zI,m.prototype.chain=HI,m.prototype.commit=VI,m.prototype.next=GI,m.prototype.plant=JI,m.prototype.reverse=XI,m.prototype.toJSON=m.prototype.valueOf=m.prototype.value=KI,m.prototype.first=m.prototype.head,ss&&(m.prototype[ss]=QI),m},Qr=V0();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Qr,define(function(){return Qr})):wi?((wi.exports=Qr)._=Qr,Yl._=Qr):qt._=Qr}).call($o)});var YR=F((lV,i2)=>{i2.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var bT=F((lG,mT)=>{"use strict";function cT(e){return Array.isArray(e)?e:[e]}var fT="",uT=" ",rp="\\",y2=/^\s+$/,x2=/(?:[^\\]|^)\\$/,w2=/^\\!/,P2=/^\\#/,S2=/\r?\n/g,C2=/^\.*\/|^\.+$/,ip="/",hT="node-ignore";typeof Symbol<"u"&&(hT=Symbol.for("node-ignore"));var lT=hT,k2=(e,t,n)=>Object.defineProperty(e,t,{value:n}),R2=/([0-z])-([0-z])/g,gT=()=>!1,T2=e=>e.replace(R2,(t,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?t:fT),D2=e=>{let{length:t}=e;return e.slice(0,t-t%2)},E2=[[/\\?\s+$/,e=>e.indexOf("\\")===0?uT:fT],[/\\\s/g,()=>uT],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,n)=>t+6{let i=n.replace(/\\\*/g,"[^\\/]*");return t+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>rp],[/\\\\/g,()=>rp],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,n,i,o)=>t===rp?`\\[${n}${D2(i)}${o}`:o==="]"&&i.length%2===0?`[${T2(n)}${i}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],dT=Object.create(null),I2=(e,t)=>{let n=dT[e];return n||(n=E2.reduce((i,o)=>i.replace(o[0],o[1].bind(e)),e),dT[e]=n),t?new RegExp(n,"i"):new RegExp(n)},ap=e=>typeof e=="string",F2=e=>e&&ap(e)&&!y2.test(e)&&!x2.test(e)&&e.indexOf("#")!==0,A2=e=>e.split(S2),op=class{constructor(t,n,i,o){this.origin=t,this.pattern=n,this.negative=i,this.regex=o}},M2=(e,t)=>{let n=e,i=!1;e.indexOf("!")===0&&(i=!0,e=e.substr(1)),e=e.replace(w2,"!").replace(P2,"#");let o=I2(e,t);return new op(n,e,i,o)},N2=(e,t)=>{throw new t(e)},Ur=(e,t,n)=>ap(e)?e?Ur.isNotRelative(e)?n(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${t}\``,TypeError),pT=e=>C2.test(e);Ur.isNotRelative=pT;Ur.convert=e=>e;var sp=class{constructor({ignorecase:t=!0,ignoreCase:n=t,allowRelativePaths:i=!1}={}){k2(this,lT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[lT]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(F2(t)){let n=M2(t,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(t){return this._added=!1,cT(ap(t)?A2(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,n){let i=!1,o=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(o===u&&i!==o||u&&!i&&!o&&!n)return;c.regex.test(t)&&(i=!u,o=u)}),{ignored:i,unignored:o}}_test(t,n,i,o){let c=t&&Ur.convert(t);return Ur(c,t,this._allowRelativePaths?gT:N2),this._t(c,n,i,o)}_t(t,n,i,o){if(t in n)return n[t];if(o||(o=t.split(ip)),o.pop(),!o.length)return n[t]=this._testOne(t,i);let c=this._t(o.join(ip)+ip,n,i,o);if(c.ignored)return n[t]=c;let u=this._testOne(t,i);return n[t]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return cT(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},ml=e=>new sp(e),q2=e=>Ur(e&&Ur.convert(e),e,gT);ml.isPathValid=q2;ml.default=ml;mT.exports=ml;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=e;let t=/^[a-z]:\//i;Ur.isNotRelative=n=>t.test(n)||pT(n)}});var ez={};oN(ez,{API_ENDPOINT:()=>J2});module.exports=sN(ez);var Hl=kt(require("fs")),WT=kt(require("os")),_a=kt(require("path"));var fc=class e{constructor(t,n,i,o){this._uri=t,this._languageId=n,this._version=i,this._content=o,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),i=this.offsetAt(t.end);return this._content.substring(n,i)}return this._content}update(t,n){for(let i of t)if(e.isIncremental(i)){let o=l_(i.range),c=this.offsetAt(o.start),u=this.offsetAt(o.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let f=Math.max(o.start.line,0),g=Math.max(o.end.line,0),b=this._lineOffsets,x=c_(i.text,!1,c);if(g-f===x.length)for(let I=0,M=x.length;It?o=u:i=u+1}let c=i-1;return t=this.ensureBeforeEOL(t,n[c]),{line:c,character:t-n[c]}}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let i=n[t.line];if(t.character<=0)return i;let o=t.line+1n&&u_(this._content.charCodeAt(t-1));)t--;return t}get lineCount(){return this.getLineOffsets().length}static isIncremental(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},hc;(function(e){function t(o,c,u,f){return new fc(o,c,u,f)}e.create=t;function n(o,c,u){if(o instanceof fc)return o.update(c,u),o;throw new Error("TextDocument.update: document must be created by TextDocument.create")}e.update=n;function i(o,c){let u=o.getText(),f=rf(c.map(aN),(x,k)=>{let I=x.range.start.line-k.range.start.line;return I===0?x.range.start.character-k.range.start.character:I}),g=0,b=[];for(let x of f){let k=o.offsetAt(x.range.start);if(kg&&b.push(u.substring(g,k)),x.newText.length&&b.push(x.newText),g=o.offsetAt(x.range.end)}return b.push(u.substr(g)),b.join("")}e.applyEdits=i})(hc||(hc={}));function rf(e,t){if(e.length<=1)return e;let n=e.length/2|0,i=e.slice(0,n),o=e.slice(n);rf(i,t),rf(o,t);let c=0,u=0,f=0;for(;cn.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function aN(e){let t=l_(e.range);return t!==e.range?{newText:e.newText,range:t}:e}var Ne=kt(Mw());var Nw=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function Pq(e){return typeof e=="string"&&Nw.test(e)}var rg=Pq;var jt=[];for(let e=0;e<256;++e)jt.push((e+256).toString(16).slice(1));function qw(e,t=0){return(jt[e[t+0]]+jt[e[t+1]]+jt[e[t+2]]+jt[e[t+3]]+"-"+jt[e[t+4]]+jt[e[t+5]]+"-"+jt[e[t+6]]+jt[e[t+7]]+"-"+jt[e[t+8]]+jt[e[t+9]]+"-"+jt[e[t+10]]+jt[e[t+11]]+jt[e[t+12]]+jt[e[t+13]]+jt[e[t+14]]+jt[e[t+15]]).toLowerCase()}var Lw=require("crypto"),Iu=new Uint8Array(256),Eu=Iu.length;function ig(){return Eu>Iu.length-16&&((0,Lw.randomFillSync)(Iu),Eu=0),Iu.slice(Eu,Eu+=16)}var Ow=require("crypto"),og={randomUUID:Ow.randomUUID};function Sq(e,t,n){if(og.randomUUID&&!t&&!e)return og.randomUUID();e=e||{};let i=e.random||(e.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){n=n||0;for(let o=0;o<16;++o)t[n+o]=i[o];return t}return qw(i)}var Ns=Sq;var To=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var Do=class extends Error{constructor(){super("No models available")}},Eo=class extends Error{constructor(t="Skipping inline completion."){super(t)}},Nt=class e extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new e(3,n)}static fromResponse(n){return new e(Cq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof e?n.status===i:!1}static isRetriableAPIError(n){return n instanceof e?kq.has(n.status):!1}};function Cq(e){switch(e){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return e>=500&&e<600?3:2}var kq=new Set([3,1]);function Rq(e){return e.cause instanceof String?String(e.cause):e.cause instanceof Object?JSON.stringify(e.cause):""}function Ee(e,t=!1){if(e instanceof Error){if(t){let n=Rq(e);if(n!=="")return`${e.message} (due to ${n})`}return e.message}return String(e)}var KR=kt(Lk());var Hu=kt(require("fs")),Qs=kt(Bk()),$k=kt(require("os")),Js=kt(require("path")),Yj=process.env.TEST_TMPDIR?Js.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||Js.default.join($k.default.homedir(),".local","state"),Uk=Js.default.join(Yj,"augment","augment-server.log"),Gs;function Zj(){if(Gs)return Gs;let e=Js.default.dirname(Uk);Hu.default.existsSync(e)||Hu.default.mkdirSync(e,{recursive:!0});let t=(process.env.AUGMENT_LOG_LEVEL||"info").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(t)?Qs.default.setLevel(t):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${t}". Defaulting to "info"`,Qs.default.setLevel("info")),Qs.default.methodFactory=function(i){return function(o){let c=new Date().toISOString();Hu.default.appendFileSync(Uk,`${c} [${i.toUpperCase()}] ${o} +`)}},Gs=Qs.default.getLogger("server"),n&&Gs.warn(n),Gs}function Ie(e){let t=Zj();return{...t,verbose:(n,...i)=>t.debug(n,...i)}}var Ks=kt(Vu()),Wo=class{constructor(t,n){this.name=t;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(t){return this._isSet&&(0,Ks.isEqual)(t,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: +${this.diff(this.value,t).map(n=>` - ${n}`).join(` +`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(t)}`),this._value=(0,Ks.cloneDeep)(t),this._isSet=!0,!0)}diff(t,n,i=[]){if((0,Ks.isEqual)(n,t))return[];if(!this.isObject(n)||!this.isObject(t))return[`${this._formatValue(t)} to ${this._formatValue(n)}`];let o=new Set([...Object.keys(t||{}),...Object.keys(n||{})]),c=[];for(let u of o){let f=n?n[u]:void 0,g=t?t[u]:void 0;!this.isObject(f)||!this.isObject(g)?f!==g&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(g)} to ${this._formatValue(f)}`):c.push(...this.diff(g,f,i.concat(u)))}return c}isObject(t){return typeof t=="object"&&t!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(t){return t===void 0?"undefined":JSON.stringify(t)}};var XR=require("events"),Dn=kt(require("fs"));var Wk;(function(e){function t(n){return typeof n=="string"}e.is=t})(Wk||(Wk={}));var Dg;(function(e){function t(n){return typeof n=="string"}e.is=t})(Dg||(Dg={}));var jk;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(jk||(jk={}));var Gu;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(Gu||(Gu={}));var rr;(function(e){function t(i,o){return i===Number.MAX_VALUE&&(i=Gu.MAX_VALUE),o===Number.MAX_VALUE&&(o=Gu.MAX_VALUE),{line:i,character:o}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.uinteger(o.line)&&O.uinteger(o.character)}e.is=n})(rr||(rr={}));var dt;(function(e){function t(i,o,c,u){if(O.uinteger(i)&&O.uinteger(o)&&O.uinteger(c)&&O.uinteger(u))return{start:rr.create(i,o),end:rr.create(c,u)};if(rr.is(i)&&rr.is(o))return{start:i,end:o};throw new Error(`Range#create called with invalid arguments[${i}, ${o}, ${c}, ${u}]`)}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&rr.is(o.start)&&rr.is(o.end)}e.is=n})(dt||(dt={}));var Qu;(function(e){function t(i,o){return{uri:i,range:o}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&dt.is(o.range)&&(O.string(o.uri)||O.undefined(o.uri))}e.is=n})(Qu||(Qu={}));var zk;(function(e){function t(i,o,c,u){return{targetUri:i,targetRange:o,targetSelectionRange:c,originSelectionRange:u}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&dt.is(o.targetRange)&&O.string(o.targetUri)&&dt.is(o.targetSelectionRange)&&(dt.is(o.originSelectionRange)||O.undefined(o.originSelectionRange))}e.is=n})(zk||(zk={}));var Eg;(function(e){function t(i,o,c,u){return{red:i,green:o,blue:c,alpha:u}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.numberRange(o.red,0,1)&&O.numberRange(o.green,0,1)&&O.numberRange(o.blue,0,1)&&O.numberRange(o.alpha,0,1)}e.is=n})(Eg||(Eg={}));var Hk;(function(e){function t(i,o){return{range:i,color:o}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&dt.is(o.range)&&Eg.is(o.color)}e.is=n})(Hk||(Hk={}));var Vk;(function(e){function t(i,o,c){return{label:i,textEdit:o,additionalTextEdits:c}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.string(o.label)&&(O.undefined(o.textEdit)||zo.is(o))&&(O.undefined(o.additionalTextEdits)||O.typedArray(o.additionalTextEdits,zo.is))}e.is=n})(Vk||(Vk={}));var Gk;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(Gk||(Gk={}));var Qk;(function(e){function t(i,o,c,u,f,g){let b={startLine:i,endLine:o};return O.defined(c)&&(b.startCharacter=c),O.defined(u)&&(b.endCharacter=u),O.defined(f)&&(b.kind=f),O.defined(g)&&(b.collapsedText=g),b}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.uinteger(o.startLine)&&O.uinteger(o.startLine)&&(O.undefined(o.startCharacter)||O.uinteger(o.startCharacter))&&(O.undefined(o.endCharacter)||O.uinteger(o.endCharacter))&&(O.undefined(o.kind)||O.string(o.kind))}e.is=n})(Qk||(Qk={}));var Ig;(function(e){function t(i,o){return{location:i,message:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&Qu.is(o.location)&&O.string(o.message)}e.is=n})(Ig||(Ig={}));var Jk;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(Jk||(Jk={}));var Xk;(function(e){e.Unnecessary=1,e.Deprecated=2})(Xk||(Xk={}));var Kk;(function(e){function t(n){let i=n;return O.objectLiteral(i)&&O.string(i.href)}e.is=t})(Kk||(Kk={}));var Ju;(function(e){function t(i,o,c,u,f,g){let b={range:i,message:o};return O.defined(c)&&(b.severity=c),O.defined(u)&&(b.code=u),O.defined(f)&&(b.source=f),O.defined(g)&&(b.relatedInformation=g),b}e.create=t;function n(i){var o;let c=i;return O.defined(c)&&dt.is(c.range)&&O.string(c.message)&&(O.number(c.severity)||O.undefined(c.severity))&&(O.integer(c.code)||O.string(c.code)||O.undefined(c.code))&&(O.undefined(c.codeDescription)||O.string((o=c.codeDescription)===null||o===void 0?void 0:o.href))&&(O.string(c.source)||O.undefined(c.source))&&(O.undefined(c.relatedInformation)||O.typedArray(c.relatedInformation,Ig.is))}e.is=n})(Ju||(Ju={}));var jo;(function(e){function t(i,o,...c){let u={title:i,command:o};return O.defined(c)&&c.length>0&&(u.arguments=c),u}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.title)&&O.string(o.command)}e.is=n})(jo||(jo={}));var zo;(function(e){function t(c,u){return{range:c,newText:u}}e.replace=t;function n(c,u){return{range:{start:c,end:c},newText:u}}e.insert=n;function i(c){return{range:c,newText:""}}e.del=i;function o(c){let u=c;return O.objectLiteral(u)&&O.string(u.newText)&&dt.is(u.range)}e.is=o})(zo||(zo={}));var Fg;(function(e){function t(i,o,c){let u={label:i};return o!==void 0&&(u.needsConfirmation=o),c!==void 0&&(u.description=c),u}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.string(o.label)&&(O.boolean(o.needsConfirmation)||o.needsConfirmation===void 0)&&(O.string(o.description)||o.description===void 0)}e.is=n})(Fg||(Fg={}));var Ho;(function(e){function t(n){let i=n;return O.string(i)}e.is=t})(Ho||(Ho={}));var Yk;(function(e){function t(c,u,f){return{range:c,newText:u,annotationId:f}}e.replace=t;function n(c,u,f){return{range:{start:c,end:c},newText:u,annotationId:f}}e.insert=n;function i(c,u){return{range:c,newText:"",annotationId:u}}e.del=i;function o(c){let u=c;return zo.is(u)&&(Fg.is(u.annotationId)||Ho.is(u.annotationId))}e.is=o})(Yk||(Yk={}));var Ag;(function(e){function t(i,o){return{textDocument:i,edits:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&Og.is(o.textDocument)&&Array.isArray(o.edits)}e.is=n})(Ag||(Ag={}));var Mg;(function(e){function t(i,o,c){let u={kind:"create",uri:i};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),c!==void 0&&(u.annotationId=c),u}e.create=t;function n(i){let o=i;return o&&o.kind==="create"&&O.string(o.uri)&&(o.options===void 0||(o.options.overwrite===void 0||O.boolean(o.options.overwrite))&&(o.options.ignoreIfExists===void 0||O.boolean(o.options.ignoreIfExists)))&&(o.annotationId===void 0||Ho.is(o.annotationId))}e.is=n})(Mg||(Mg={}));var Ng;(function(e){function t(i,o,c,u){let f={kind:"rename",oldUri:i,newUri:o};return c!==void 0&&(c.overwrite!==void 0||c.ignoreIfExists!==void 0)&&(f.options=c),u!==void 0&&(f.annotationId=u),f}e.create=t;function n(i){let o=i;return o&&o.kind==="rename"&&O.string(o.oldUri)&&O.string(o.newUri)&&(o.options===void 0||(o.options.overwrite===void 0||O.boolean(o.options.overwrite))&&(o.options.ignoreIfExists===void 0||O.boolean(o.options.ignoreIfExists)))&&(o.annotationId===void 0||Ho.is(o.annotationId))}e.is=n})(Ng||(Ng={}));var qg;(function(e){function t(i,o,c){let u={kind:"delete",uri:i};return o!==void 0&&(o.recursive!==void 0||o.ignoreIfNotExists!==void 0)&&(u.options=o),c!==void 0&&(u.annotationId=c),u}e.create=t;function n(i){let o=i;return o&&o.kind==="delete"&&O.string(o.uri)&&(o.options===void 0||(o.options.recursive===void 0||O.boolean(o.options.recursive))&&(o.options.ignoreIfNotExists===void 0||O.boolean(o.options.ignoreIfNotExists)))&&(o.annotationId===void 0||Ho.is(o.annotationId))}e.is=n})(qg||(qg={}));var Lg;(function(e){function t(n){let i=n;return i&&(i.changes!==void 0||i.documentChanges!==void 0)&&(i.documentChanges===void 0||i.documentChanges.every(o=>O.string(o.kind)?Mg.is(o)||Ng.is(o)||qg.is(o):Ag.is(o)))}e.is=t})(Lg||(Lg={}));var Zk;(function(e){function t(i){return{uri:i}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.uri)}e.is=n})(Zk||(Zk={}));var eR;(function(e){function t(i,o){return{uri:i,version:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.uri)&&O.integer(o.version)}e.is=n})(eR||(eR={}));var Og;(function(e){function t(i,o){return{uri:i,version:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.uri)&&(o.version===null||O.integer(o.version))}e.is=n})(Og||(Og={}));var tR;(function(e){function t(i,o,c,u){return{uri:i,languageId:o,version:c,text:u}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.uri)&&O.string(o.languageId)&&O.integer(o.version)&&O.string(o.text)}e.is=n})(tR||(tR={}));var Bg;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(n){let i=n;return i===e.PlainText||i===e.Markdown}e.is=t})(Bg||(Bg={}));var Ys;(function(e){function t(n){let i=n;return O.objectLiteral(n)&&Bg.is(i.kind)&&O.string(i.value)}e.is=t})(Ys||(Ys={}));var nR;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(nR||(nR={}));var rR;(function(e){e.PlainText=1,e.Snippet=2})(rR||(rR={}));var iR;(function(e){e.Deprecated=1})(iR||(iR={}));var oR;(function(e){function t(i,o,c){return{newText:i,insert:o,replace:c}}e.create=t;function n(i){let o=i;return o&&O.string(o.newText)&&dt.is(o.insert)&&dt.is(o.replace)}e.is=n})(oR||(oR={}));var sR;(function(e){e.asIs=1,e.adjustIndentation=2})(sR||(sR={}));var aR;(function(e){function t(n){let i=n;return i&&(O.string(i.detail)||i.detail===void 0)&&(O.string(i.description)||i.description===void 0)}e.is=t})(aR||(aR={}));var cR;(function(e){function t(n){return{label:n}}e.create=t})(cR||(cR={}));var uR;(function(e){function t(n,i){return{items:n||[],isIncomplete:!!i}}e.create=t})(uR||(uR={}));var Xu;(function(e){function t(i){return i.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function n(i){let o=i;return O.string(o)||O.objectLiteral(o)&&O.string(o.language)&&O.string(o.value)}e.is=n})(Xu||(Xu={}));var lR;(function(e){function t(n){let i=n;return!!i&&O.objectLiteral(i)&&(Ys.is(i.contents)||Xu.is(i.contents)||O.typedArray(i.contents,Xu.is))&&(n.range===void 0||dt.is(n.range))}e.is=t})(lR||(lR={}));var dR;(function(e){function t(n,i){return i?{label:n,documentation:i}:{label:n}}e.create=t})(dR||(dR={}));var fR;(function(e){function t(n,i,...o){let c={label:n};return O.defined(i)&&(c.documentation=i),O.defined(o)?c.parameters=o:c.parameters=[],c}e.create=t})(fR||(fR={}));var hR;(function(e){e.Text=1,e.Read=2,e.Write=3})(hR||(hR={}));var gR;(function(e){function t(n,i){let o={range:n};return O.number(i)&&(o.kind=i),o}e.create=t})(gR||(gR={}));var pR;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(pR||(pR={}));var mR;(function(e){e.Deprecated=1})(mR||(mR={}));var bR;(function(e){function t(n,i,o,c,u){let f={name:n,kind:i,location:{uri:c,range:o}};return u&&(f.containerName=u),f}e.create=t})(bR||(bR={}));var _R;(function(e){function t(n,i,o,c){return c!==void 0?{name:n,kind:i,location:{uri:o,range:c}}:{name:n,kind:i,location:{uri:o}}}e.create=t})(_R||(_R={}));var vR;(function(e){function t(i,o,c,u,f,g){let b={name:i,detail:o,kind:c,range:u,selectionRange:f};return g!==void 0&&(b.children=g),b}e.create=t;function n(i){let o=i;return o&&O.string(o.name)&&O.number(o.kind)&&dt.is(o.range)&&dt.is(o.selectionRange)&&(o.detail===void 0||O.string(o.detail))&&(o.deprecated===void 0||O.boolean(o.deprecated))&&(o.children===void 0||Array.isArray(o.children))&&(o.tags===void 0||Array.isArray(o.tags))}e.is=n})(vR||(vR={}));var yR;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(yR||(yR={}));var Ku;(function(e){e.Invoked=1,e.Automatic=2})(Ku||(Ku={}));var xR;(function(e){function t(i,o,c){let u={diagnostics:i};return o!=null&&(u.only=o),c!=null&&(u.triggerKind=c),u}e.create=t;function n(i){let o=i;return O.defined(o)&&O.typedArray(o.diagnostics,Ju.is)&&(o.only===void 0||O.typedArray(o.only,O.string))&&(o.triggerKind===void 0||o.triggerKind===Ku.Invoked||o.triggerKind===Ku.Automatic)}e.is=n})(xR||(xR={}));var wR;(function(e){function t(i,o,c){let u={title:i},f=!0;return typeof o=="string"?(f=!1,u.kind=o):jo.is(o)?u.command=o:u.edit=o,f&&c!==void 0&&(u.kind=c),u}e.create=t;function n(i){let o=i;return o&&O.string(o.title)&&(o.diagnostics===void 0||O.typedArray(o.diagnostics,Ju.is))&&(o.kind===void 0||O.string(o.kind))&&(o.edit!==void 0||o.command!==void 0)&&(o.command===void 0||jo.is(o.command))&&(o.isPreferred===void 0||O.boolean(o.isPreferred))&&(o.edit===void 0||Lg.is(o.edit))}e.is=n})(wR||(wR={}));var PR;(function(e){function t(i,o){let c={range:i};return O.defined(o)&&(c.data=o),c}e.create=t;function n(i){let o=i;return O.defined(o)&&dt.is(o.range)&&(O.undefined(o.command)||jo.is(o.command))}e.is=n})(PR||(PR={}));var SR;(function(e){function t(i,o){return{tabSize:i,insertSpaces:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.uinteger(o.tabSize)&&O.boolean(o.insertSpaces)}e.is=n})(SR||(SR={}));var CR;(function(e){function t(i,o,c){return{range:i,target:o,data:c}}e.create=t;function n(i){let o=i;return O.defined(o)&&dt.is(o.range)&&(O.undefined(o.target)||O.string(o.target))}e.is=n})(CR||(CR={}));var kR;(function(e){function t(i,o){return{range:i,parent:o}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&dt.is(o.range)&&(o.parent===void 0||e.is(o.parent))}e.is=n})(kR||(kR={}));var RR;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(RR||(RR={}));var TR;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(TR||(TR={}));var DR;(function(e){function t(n){let i=n;return O.objectLiteral(i)&&(i.resultId===void 0||typeof i.resultId=="string")&&Array.isArray(i.data)&&(i.data.length===0||typeof i.data[0]=="number")}e.is=t})(DR||(DR={}));var ER;(function(e){function t(i,o){return{range:i,text:o}}e.create=t;function n(i){let o=i;return o!=null&&dt.is(o.range)&&O.string(o.text)}e.is=n})(ER||(ER={}));var IR;(function(e){function t(i,o,c){return{range:i,variableName:o,caseSensitiveLookup:c}}e.create=t;function n(i){let o=i;return o!=null&&dt.is(o.range)&&O.boolean(o.caseSensitiveLookup)&&(O.string(o.variableName)||o.variableName===void 0)}e.is=n})(IR||(IR={}));var FR;(function(e){function t(i,o){return{range:i,expression:o}}e.create=t;function n(i){let o=i;return o!=null&&dt.is(o.range)&&(O.string(o.expression)||o.expression===void 0)}e.is=n})(FR||(FR={}));var AR;(function(e){function t(i,o){return{frameId:i,stoppedLocation:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&dt.is(i.stoppedLocation)}e.is=n})(AR||(AR={}));var Ug;(function(e){e.Type=1,e.Parameter=2;function t(n){return n===1||n===2}e.is=t})(Ug||(Ug={}));var $g;(function(e){function t(i){return{value:i}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&(o.tooltip===void 0||O.string(o.tooltip)||Ys.is(o.tooltip))&&(o.location===void 0||Qu.is(o.location))&&(o.command===void 0||jo.is(o.command))}e.is=n})($g||($g={}));var MR;(function(e){function t(i,o,c){let u={position:i,label:o};return c!==void 0&&(u.kind=c),u}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&rr.is(o.position)&&(O.string(o.label)||O.typedArray(o.label,$g.is))&&(o.kind===void 0||Ug.is(o.kind))&&o.textEdits===void 0||O.typedArray(o.textEdits,zo.is)&&(o.tooltip===void 0||O.string(o.tooltip)||Ys.is(o.tooltip))&&(o.paddingLeft===void 0||O.boolean(o.paddingLeft))&&(o.paddingRight===void 0||O.boolean(o.paddingRight))}e.is=n})(MR||(MR={}));var NR;(function(e){function t(n){return{kind:"snippet",value:n}}e.createSnippet=t})(NR||(NR={}));var qR;(function(e){function t(n,i,o,c){return{insertText:n,filterText:i,range:o,command:c}}e.create=t})(qR||(qR={}));var LR;(function(e){function t(n){return{items:n}}e.create=t})(LR||(LR={}));var OR;(function(e){e.Invoked=0,e.Automatic=1})(OR||(OR={}));var BR;(function(e){function t(n,i){return{range:n,text:i}}e.create=t})(BR||(BR={}));var UR;(function(e){function t(n,i){return{triggerKind:n,selectedCompletionInfo:i}}e.create=t})(UR||(UR={}));var $R;(function(e){function t(n){let i=n;return O.objectLiteral(i)&&Dg.is(i.uri)&&O.string(i.name)}e.is=t})($R||($R={}));var WR;(function(e){function t(c,u,f,g){return new Wg(c,u,f,g)}e.create=t;function n(c){let u=c;return!!(O.defined(u)&&O.string(u.uri)&&(O.undefined(u.languageId)||O.string(u.languageId))&&O.uinteger(u.lineCount)&&O.func(u.getText)&&O.func(u.positionAt)&&O.func(u.offsetAt))}e.is=n;function i(c,u){let f=c.getText(),g=o(u,(x,k)=>{let I=x.range.start.line-k.range.start.line;return I===0?x.range.start.character-k.range.start.character:I}),b=f.length;for(let x=g.length-1;x>=0;x--){let k=g[x],I=c.offsetAt(k.range.start),M=c.offsetAt(k.range.end);if(M<=b)f=f.substring(0,I)+k.newText+f.substring(M,f.length);else throw new Error("Overlapping edit");b=I}return f}e.applyEdits=i;function o(c,u){if(c.length<=1)return c;let f=c.length/2|0,g=c.slice(0,f),b=c.slice(f);o(g,u),o(b,u);let x=0,k=0,I=0;for(;x0&&t.push(n.length),this._lineOffsets=t}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),i=0,o=n.length;if(o===0)return rr.create(0,t);for(;it?o=u:i=u+1}let c=i-1;return rr.create(c,t-n[c])}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let i=n[t.line],o=t.line+1"u"}e.undefined=i;function o(M){return M===!0||M===!1}e.boolean=o;function c(M){return t.call(M)==="[object String]"}e.string=c;function u(M){return t.call(M)==="[object Number]"}e.number=u;function f(M,N,B){return t.call(M)==="[object Number]"&&N<=M&&M<=B}e.numberRange=f;function g(M){return t.call(M)==="[object Number]"&&-2147483648<=M&&M<=2147483647}e.integer=g;function b(M){return t.call(M)==="[object Number]"&&0<=M&&M<=2147483647}e.uinteger=b;function x(M){return t.call(M)==="[object Function]"}e.func=x;function k(M){return M!==null&&typeof M=="object"}e.objectLiteral=k;function I(M,N){return Array.isArray(M)&&M.every(N)}e.typedArray=I})(O||(O={}));var jR;(()=>{"use strict";var e={470:o=>{function c(g){if(typeof g!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(g))}function u(g,b){for(var x,k="",I=0,M=-1,N=0,B=0;B<=g.length;++B){if(B2){var W=k.lastIndexOf("/");if(W!==k.length-1){W===-1?(k="",I=0):I=(k=k.slice(0,W)).length-1-k.lastIndexOf("/"),M=B,N=0;continue}}else if(k.length===2||k.length===1){k="",I=0,M=B,N=0;continue}}b&&(k.length>0?k+="/..":k="..",I=2)}else k.length>0?k+="/"+g.slice(M+1,B):k=g.slice(M+1,B),I=B-M-1;M=B,N=0}else x===46&&N!==-1?++N:N=-1}return k}var f={resolve:function(){for(var g,b="",x=!1,k=arguments.length-1;k>=-1&&!x;k--){var I;k>=0?I=arguments[k]:(g===void 0&&(g=process.cwd()),I=g),c(I),I.length!==0&&(b=I+"/"+b,x=I.charCodeAt(0)===47)}return b=u(b,!x),x?b.length>0?"/"+b:"/":b.length>0?b:"."},normalize:function(g){if(c(g),g.length===0)return".";var b=g.charCodeAt(0)===47,x=g.charCodeAt(g.length-1)===47;return(g=u(g,!b)).length!==0||b||(g="."),g.length>0&&x&&(g+="/"),b?"/"+g:g},isAbsolute:function(g){return c(g),g.length>0&&g.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var g,b=0;b0&&(g===void 0?g=x:g+="/"+x)}return g===void 0?".":f.normalize(g)},relative:function(g,b){if(c(g),c(b),g===b||(g=f.resolve(g))===(b=f.resolve(b)))return"";for(var x=1;xB){if(b.charCodeAt(M+X)===47)return b.slice(M+X+1);if(X===0)return b.slice(M+X)}else I>B&&(g.charCodeAt(x+X)===47?W=X:X===0&&(W=0));break}var D=g.charCodeAt(x+X);if(D!==b.charCodeAt(M+X))break;D===47&&(W=X)}var P="";for(X=x+W+1;X<=k;++X)X!==k&&g.charCodeAt(X)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+b.slice(M+W):(M+=W,b.charCodeAt(M)===47&&++M,b.slice(M))},_makeLong:function(g){return g},dirname:function(g){if(c(g),g.length===0)return".";for(var b=g.charCodeAt(0),x=b===47,k=-1,I=!0,M=g.length-1;M>=1;--M)if((b=g.charCodeAt(M))===47){if(!I){k=M;break}}else I=!1;return k===-1?x?"/":".":x&&k===1?"//":g.slice(0,k)},basename:function(g,b){if(b!==void 0&&typeof b!="string")throw new TypeError('"ext" argument must be a string');c(g);var x,k=0,I=-1,M=!0;if(b!==void 0&&b.length>0&&b.length<=g.length){if(b.length===g.length&&b===g)return"";var N=b.length-1,B=-1;for(x=g.length-1;x>=0;--x){var W=g.charCodeAt(x);if(W===47){if(!M){k=x+1;break}}else B===-1&&(M=!1,B=x+1),N>=0&&(W===b.charCodeAt(N)?--N==-1&&(I=x):(N=-1,I=B))}return k===I?I=B:I===-1&&(I=g.length),g.slice(k,I)}for(x=g.length-1;x>=0;--x)if(g.charCodeAt(x)===47){if(!M){k=x+1;break}}else I===-1&&(M=!1,I=x+1);return I===-1?"":g.slice(k,I)},extname:function(g){c(g);for(var b=-1,x=0,k=-1,I=!0,M=0,N=g.length-1;N>=0;--N){var B=g.charCodeAt(N);if(B!==47)k===-1&&(I=!1,k=N+1),B===46?b===-1?b=N:M!==1&&(M=1):b!==-1&&(M=-1);else if(!I){x=N+1;break}}return b===-1||k===-1||M===0||M===1&&b===k-1&&b===x+1?"":g.slice(b,k)},format:function(g){if(g===null||typeof g!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof g);return function(b,x){var k=x.dir||x.root,I=x.base||(x.name||"")+(x.ext||"");return k?k===x.root?k+I:k+"/"+I:I}(0,g)},parse:function(g){c(g);var b={root:"",dir:"",base:"",ext:"",name:""};if(g.length===0)return b;var x,k=g.charCodeAt(0),I=k===47;I?(b.root="/",x=1):x=0;for(var M=-1,N=0,B=-1,W=!0,X=g.length-1,D=0;X>=x;--X)if((k=g.charCodeAt(X))!==47)B===-1&&(W=!1,B=X+1),k===46?M===-1?M=X:D!==1&&(D=1):M!==-1&&(D=-1);else if(!W){N=X+1;break}return M===-1||B===-1||D===0||D===1&&M===B-1&&M===N+1?B!==-1&&(b.base=b.name=N===0&&I?g.slice(1,B):g.slice(N,B)):(N===0&&I?(b.name=g.slice(1,M),b.base=g.slice(1,B)):(b.name=g.slice(N,M),b.base=g.slice(N,B)),b.ext=g.slice(M,B)),N>0?b.dir=g.slice(0,N-1):I&&(b.dir="/"),b},sep:"/",delimiter:":",win32:null,posix:null};f.posix=f,o.exports=f}},t={};function n(o){var c=t[o];if(c!==void 0)return c.exports;var u=t[o]={exports:{}};return e[o](u,u.exports,n),u.exports}n.d=(o,c)=>{for(var u in c)n.o(c,u)&&!n.o(o,u)&&Object.defineProperty(o,u,{enumerable:!0,get:c[u]})},n.o=(o,c)=>Object.prototype.hasOwnProperty.call(o,c),n.r=o=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})};var i={};(()=>{let o;n.r(i),n.d(i,{URI:()=>I,Utils:()=>xe}),typeof process=="object"?o=process.platform==="win32":typeof navigator=="object"&&(o=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,f=/^\/\//;function g(Y,H){if(!Y.scheme&&H)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${Y.authority}", path: "${Y.path}", query: "${Y.query}", fragment: "${Y.fragment}"}`);if(Y.scheme&&!c.test(Y.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(Y.path){if(Y.authority){if(!u.test(Y.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(Y.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let b="",x="/",k=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class I{static isUri(H){return H instanceof I||!!H&&typeof H.authority=="string"&&typeof H.fragment=="string"&&typeof H.path=="string"&&typeof H.query=="string"&&typeof H.scheme=="string"&&typeof H.fsPath=="string"&&typeof H.with=="function"&&typeof H.toString=="function"}scheme;authority;path;query;fragment;constructor(H,ae,ie,ke,ge,pe=!1){typeof H=="object"?(this.scheme=H.scheme||b,this.authority=H.authority||b,this.path=H.path||b,this.query=H.query||b,this.fragment=H.fragment||b):(this.scheme=function(wt,je){return wt||je?wt:"file"}(H,pe),this.authority=ae||b,this.path=function(wt,je){switch(wt){case"https":case"http":case"file":je?je[0]!==x&&(je=x+je):je=x}return je}(this.scheme,ie||b),this.query=ke||b,this.fragment=ge||b,g(this,pe))}get fsPath(){return D(this,!1)}with(H){if(!H)return this;let{scheme:ae,authority:ie,path:ke,query:ge,fragment:pe}=H;return ae===void 0?ae=this.scheme:ae===null&&(ae=b),ie===void 0?ie=this.authority:ie===null&&(ie=b),ke===void 0?ke=this.path:ke===null&&(ke=b),ge===void 0?ge=this.query:ge===null&&(ge=b),pe===void 0?pe=this.fragment:pe===null&&(pe=b),ae===this.scheme&&ie===this.authority&&ke===this.path&&ge===this.query&&pe===this.fragment?this:new N(ae,ie,ke,ge,pe)}static parse(H,ae=!1){let ie=k.exec(H);return ie?new N(ie[2]||b,_e(ie[4]||b),_e(ie[5]||b),_e(ie[7]||b),_e(ie[9]||b),ae):new N(b,b,b,b,b)}static file(H){let ae=b;if(o&&(H=H.replace(/\\/g,x)),H[0]===x&&H[1]===x){let ie=H.indexOf(x,2);ie===-1?(ae=H.substring(2),H=x):(ae=H.substring(2,ie),H=H.substring(ie)||x)}return new N("file",ae,H,b,b)}static from(H){let ae=new N(H.scheme,H.authority,H.path,H.query,H.fragment);return g(ae,!0),ae}toString(H=!1){return P(this,H)}toJSON(){return this}static revive(H){if(H){if(H instanceof I)return H;{let ae=new N(H);return ae._formatted=H.external,ae._fsPath=H._sep===M?H.fsPath:null,ae}}return H}}let M=o?1:void 0;class N extends I{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=D(this,!1)),this._fsPath}toString(H=!1){return H?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let H={$mid:1};return this._fsPath&&(H.fsPath=this._fsPath,H._sep=M),this._formatted&&(H.external=this._formatted),this.path&&(H.path=this.path),this.scheme&&(H.scheme=this.scheme),this.authority&&(H.authority=this.authority),this.query&&(H.query=this.query),this.fragment&&(H.fragment=this.fragment),H}}let B={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function W(Y,H,ae){let ie,ke=-1;for(let ge=0;ge=97&&pe<=122||pe>=65&&pe<=90||pe>=48&&pe<=57||pe===45||pe===46||pe===95||pe===126||H&&pe===47||ae&&pe===91||ae&&pe===93||ae&&pe===58)ke!==-1&&(ie+=encodeURIComponent(Y.substring(ke,ge)),ke=-1),ie!==void 0&&(ie+=Y.charAt(ge));else{ie===void 0&&(ie=Y.substr(0,ge));let wt=B[pe];wt!==void 0?(ke!==-1&&(ie+=encodeURIComponent(Y.substring(ke,ge)),ke=-1),ie+=wt):ke===-1&&(ke=ge)}}return ke!==-1&&(ie+=encodeURIComponent(Y.substring(ke))),ie!==void 0?ie:Y}function X(Y){let H;for(let ae=0;ae1&&Y.scheme==="file"?`//${Y.authority}${Y.path}`:Y.path.charCodeAt(0)===47&&(Y.path.charCodeAt(1)>=65&&Y.path.charCodeAt(1)<=90||Y.path.charCodeAt(1)>=97&&Y.path.charCodeAt(1)<=122)&&Y.path.charCodeAt(2)===58?H?Y.path.substr(1):Y.path[1].toLowerCase()+Y.path.substr(2):Y.path,o&&(ae=ae.replace(/\//g,"\\")),ae}function P(Y,H){let ae=H?X:W,ie="",{scheme:ke,authority:ge,path:pe,query:wt,fragment:je}=Y;if(ke&&(ie+=ke,ie+=":"),(ge||ke==="file")&&(ie+=x,ie+=x),ge){let ze=ge.indexOf("@");if(ze!==-1){let bn=ge.substr(0,ze);ge=ge.substr(ze+1),ze=bn.lastIndexOf(":"),ze===-1?ie+=ae(bn,!1,!1):(ie+=ae(bn.substr(0,ze),!1,!1),ie+=":",ie+=ae(bn.substr(ze+1),!1,!0)),ie+="@"}ge=ge.toLowerCase(),ze=ge.lastIndexOf(":"),ze===-1?ie+=ae(ge,!1,!0):(ie+=ae(ge.substr(0,ze),!1,!0),ie+=ge.substr(ze))}if(pe){if(pe.length>=3&&pe.charCodeAt(0)===47&&pe.charCodeAt(2)===58){let ze=pe.charCodeAt(1);ze>=65&&ze<=90&&(pe=`/${String.fromCharCode(ze+32)}:${pe.substr(3)}`)}else if(pe.length>=2&&pe.charCodeAt(1)===58){let ze=pe.charCodeAt(0);ze>=65&&ze<=90&&(pe=`${String.fromCharCode(ze+32)}:${pe.substr(2)}`)}ie+=ae(pe,!0,!1)}return wt&&(ie+="?",ie+=ae(wt,!1,!1)),je&&(ie+="#",ie+=H?je:W(je,!1,!1)),ie}function U(Y){try{return decodeURIComponent(Y)}catch{return Y.length>3?Y.substr(0,3)+U(Y.substr(3)):Y}}let ne=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function _e(Y){return Y.match(ne)?Y.replace(ne,H=>U(H)):Y}var Ue=n(470);let Ke=Ue.posix||Ue,Dt="/";var xe;(function(Y){Y.joinPath=function(H,...ae){return H.with({path:Ke.join(H.path,...ae)})},Y.resolvePath=function(H,...ae){let ie=H.path,ke=!1;ie[0]!==Dt&&(ie=Dt+ie,ke=!0);let ge=Ke.resolve(ie,...ae);return ke&&ge[0]===Dt&&!H.authority&&(ge=ge.substring(1)),H.with({path:ge})},Y.dirname=function(H){if(H.path.length===0||H.path===Dt)return H;let ae=Ke.dirname(H.path);return ae.length===1&&ae.charCodeAt(0)===46&&(ae=""),H.with({path:ae})},Y.basename=function(H){return Ke.basename(H.path)},Y.extname=function(H){return Ke.extname(H.path)}})(xe||(xe={}))})(),jR=i})();var{URI:Ze,Utils:Tt}=jR;var Ui=kt(require("fs")),rn=kt(require("fs/promises"));function e2(e){return e.isFile()?"File":e.isDirectory()?"Directory":"Other"}function t2(e){return e.isFile()?"File":e.isDirectory()?"Directory":"Other"}function zR(e){return{size:e.size,type:t2(e),mtime:Math.floor(e.mtimeMs)}}async function HR(e){let t=await rn.lstat(e);return zR(t)}function VR(e){try{return Zs(e).type==="File"}catch{return!1}}async function GR(e){try{return(await rn.stat(e)).isDirectory()}catch{return!1}}function Zs(e){let t=Ui.lstatSync(e);return zR(t)}function ea(e){let t=[],n=Ui.readdirSync(e,{withFileTypes:!0});for(let i of n)t.push([i.name,e2(i)]);return t}async function ta(e){await rn.mkdir(e,{recursive:!0})}async function jg(e,t){await rn.rename(e,t)}async function QR(e){return await rn.readFile(e)}async function Vo(e){return await rn.readFile(e,{encoding:"utf8"})}async function Yu(e,t){return await rn.writeFile(e,t,{encoding:"utf8"})}function JR(e){return Ui.readFileSync(e,{encoding:"utf8"})}var Zu=class{constructor(t){this.document=t}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(t){return this.document.positionAt(t)}offsetAt(t){return this.document.offsetAt(t)}getText(t){return this.document.getText(t)}},Or=class{dispose;constructor(t){this.dispose=()=>t()}},De=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new XR.EventEmitter,this.event=(t,n,i)=>{let o=n?t.bind(n):t;this.nodeEventEmitter.on("event",o);let c=new Or(()=>{this.nodeEventEmitter.off("event",o)});return Array.isArray(i)&&i.push(c),c}}event;fire(t){this.nodeEventEmitter.emit("event",t)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new De,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},n2=new De,zg=new De,Vg={onDidChangeConfiguration:n2.event,getConfiguration:e=>e==="augment"?{}:{}},Hg=class{secretsPath;constructor(t){Dn.existsSync(t.fsPath)||Dn.mkdirSync(t.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(t,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let t=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(t)}catch{return{}}}async writeSecrets(t){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(t,null,2),{mode:384,encoding:"utf8"})}async get(t){return(await this.readSecrets())[t]}async store(t,n){let i=await this.readSecrets();i[t]=n,await this.writeSecrets(i),zg.fire({key:t})}async delete(t){let n=await this.readSecrets();t in n&&(delete n[t],await this.writeSecrets(n),zg.fire({key:t}))}onDidChange=zg.event},el=class{inMemoryState=new Map;statePath;constructor(t){Dn.mkdirSync(t.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(t,"state.json").fsPath;try{let n=JR(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(t){return this.inMemoryState.get(t)}async update(t,n){this.inMemoryState.set(t,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},na=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(t){Dn.mkdirSync(t.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(t,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(t,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Hg(t),this.globalState=new el(this.globalStorageUri),this.workspaceState=new el(this.storageUri)}};var r2=128*1024,Qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:r2,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:""},Gg=class{constructor(t,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,KR.default)(t)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(t){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)t[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:t,changedFlags:n})}dispose(){this._disposed=!0}},tl=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=Ie("FeatureFlagManager");_flags;constructor(t){this._flags=new Wo("feature flags",this._logger),this._flags.update(t?.initialFlags??Qg),this._setupRefreshTimer(t)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(t){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(t),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(t)}subscribe(t,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Gg(this._flags.value,t,n);return this._subscriptions.push(i),i}_setupRefreshTimer(t){if(!t?.fetcher||!t?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=t.fetcher,o=t.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),o)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(t=>t.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var o2=YR(),Jg=[],s2=new Set;for(let e of o2){Jg.push({name:e.name,vscodeName:e.vscodeName,extensions:e.extensions});for(let t of e.extensions)s2.add(t)}function ra(e,t,n){if(!Array.isArray(n))throw new Error(`Value of ${e}.${t} is not Array`)}function pi(e,t,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${e}.${t} has unexpected type. Expected number, received ${i}`);return n}function on(e,t,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${e}.${t} has unexpected type. Expected string, received ${i}`);return n}function Go(e,t,n){ra(e,t,n);let i=[];for(let o of n)i.push(on(e,t,o));return i}function Xg(e,t,n,i=!1){if(n===null)return i;let o=typeof n;if(o!=="boolean")throw new Error(`Value of ${e}.${t} has unexpected type. Expected boolean, received ${o}`);return n}function ia(e,t=""){let n=[];if(typeof e!="object"||e===null)return ZR(e);for(let[i,o]of Object.entries(e))if(Array.isArray(o)){n.push(`${t}${i}: (array) ${o.length} (array length) ${JSON.stringify(o).length} (char length)`);let c=20;o.slice(0,c).forEach((u,f)=>{n.push(`${t} [${f}]: ${ia(u,t+" ")}`)}),o.length>c&&n.push(`${t} ${o.length-c} more items...`)}else typeof o=="object"&&o!==null?(n.push(`${t}${i}: (object) ${Object.keys(o).length} (object size) ${JSON.stringify(o).length} (char length)`),n.push(ia(o,t+" "))):n.push(`${t}${i}: ${ZR(o)}`);return n.join(` +`)}function ZR(e){return typeof e=="string"?`${e.length} (string length)`:typeof e=="boolean"||e===null||typeof e=="number"?"1":"N/A"}var a2={initialMS:100,mult:2,maxMS:3e4};function oa(e){let t;return new Promise(n=>{t=e(i=>{t.dispose(),n(i)})})}function c2(e){return e===0?Promise.resolve():new Promise(t=>{setTimeout(t,e)})}async function yr(e,t,n=a2){let i=0,o=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>Nt.isRetriableAPIError(u);for(let u=0;;u++)try{let f=await e();return u>0&&t.info(`Operation succeeded after ${u} transient failures`),f}catch(f){if(!c(f))throw f;let g=u+1;if(n.maxTries!==void 0&&g>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),t.info(`Operation failed with error ${f}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&o!==void 0&&Date.now()-o+i>n.maxTotalMs))throw f;await c2(i)}}async function Kg(e,t){let n=new Promise((i,o)=>{setTimeout(()=>{o(new Error("Execution aborted due to timeout."))},t)});return await Promise.race([e,n])}function nl(e){return{checkpoint_id:e.checkpointId,added_blobs:e.addedBlobs.sort(),deleted_blobs:e.deletedBlobs.sort()}}var Yg=class extends Error{constructor(t,n){super(`Conversion failure: ${t}. Response = ${n}`)}},rl=class e{constructor(t,n,i,o,c){this._configListener=t;this._auth=n;this.sessionId=i;this._userAgent=o;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Zg;_logger=Ie("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return Ns()}async callApi(t,n,i,o,c,u,f,g){let b=n.apiToken,x=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(b=U.accessToken,x=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let k;try{k=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new il}if(!k.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let I=JSON.stringify(o,(U,ne)=>ne===void 0?null:ne),M=f??e.defaultRequestTimeoutMs,N=AbortSignal.timeout(M),B="POST",W,X,D;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${t}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};b&&(U.Authorization=`Bearer ${b}`),X=Date.now(),W=await Kg(this._fetchFunction(k.toString(),{method:B,headers:U,body:I,signal:N}),M),D=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${t} to ${k.toString()} failed: ${Ee(U,!0)}`),Nt.transientIssue(U.message)):(this._logger.debug(`API request ${t} to ${k.toString()} failed`),U)}if(g&&(g.rpcStart=X,g.rpcEnd=D),!W.ok)throw W.status===499?Nt.fromResponse(W):(W.status===401&&x&&this._auth.removeSession(),W.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${t} to ${k.toString()} failed: ${await W.text()}`),this._logger.error(`API request ${t} to ${k.toString()} response ${W.status}: ${W.statusText}`),Nt.fromResponse(W).status===10&&this._logger.debug(`object size is ${ia(o)} `),Nt.fromResponse(W));let P;try{if(W.headers.get("content-length")==="0")return;P=await W.json()}catch(U){throw this._logger.error(`API request ${t} to ${k.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new Yg(Ee(U),JSON.stringify(P))}}async callApiStream(t,n,i,o,c=b=>b,u,f,g){let b=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(b=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new il}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let k=JSON.stringify(o,(P,U)=>U===void 0?null:U),I=f??e.defaultRequestTimeoutMs,M=AbortSignal.timeout(I),N="POST",B;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${t}`,"x-request-session-id":`${g??this.sessionId}`};b&&(P.Authorization=`Bearer ${b}`),B=await Kg(this._fetchFunction(x.toString(),{method:N,headers:P,body:k,signal:M}),I)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${t} to ${x.toString()} failed: ${Ee(P,!0)}`),P.stack&&this._logger.error(P.stack),Nt.transientIssue(P.message)):P}if(!B.ok)throw B.status===499?Nt.fromResponse(B):(B.status===401&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${t} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${t} to ${x.toString()} response ${B.status}: ${B.statusText}`),Nt.fromResponse(B).status===10&&this._logger.debug(`object size is ${o?ia(o):0} `),Nt.fromResponse(B));let W=B.body.getReader(),X=this._logger;async function*D(P){let U=new TextDecoder,ne="";for(;;){let{value:_e,done:Ue}=await P.read(new Uint8Array);if(Ue)return;for(ne+=U.decode(_e,{stream:!0});ne.includes(` +`);){let Ke=ne.indexOf(` +`),Dt=ne.substring(0,Ke);ne=ne.substring(Ke+1);try{let xe=JSON.parse(Dt);yield c(xe)}catch(xe){X.error(`JSON parse failed for ${Dt}: ${Ee(xe)}`)}}}}return D(W)}_toCompletionItem(t){if(typeof t.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(t)}`);if(t.skipped_suffix!==void 0&&typeof t.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(t)}`);if(t.suffix_replacement_text!==void 0&&typeof t.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(t)}`);return{text:t.text,suffixReplacementText:t.suffix_replacement_text??"",skippedSuffix:t.skipped_suffix??"",filterScore:t.filter_score??void 0}}_extractCompletions(t){return Array.isArray(t.completion_items)?t.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(t.completions)?Go("BackCompletionResult","completions",t.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:on("BackCompletionResult","text",t.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(t){let n=this._extractCompletions(t),i=Go("BackCompletionResult","unknown_blob_names/unknown_memory_names",t.unknown_blob_names??t.unknown_memory_names),o=t.checkpoint_not_found===void 0?!1:Xg("BackCompletionResult","checkpoint_not_found",t.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:o,suggestedPrefixCharCount:t.suggested_prefix_char_count,suggestedSuffixCharCount:t.suggested_suffix_char_count,completionTimeoutMs:t.completion_timeout_ms}}toCheckpointBlobsResult(t){return{newCheckpointId:on("BackCheckpointBlobsResult","new_checkpoint_id",t.new_checkpoint_id)}}async complete(t,n,i,o,c,u,f,g,b,x,k,I,M){let N=this._configListener.config,B={recent_changes:b},W={model:N.modelName,prompt:n,suffix:i,path:o,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:f,blobs:nl(g),recency_info:B,probe_only:I,sequence_id:this._sequenceId.next(),filter_threshold:N.completions.filterThreshold,edit_events:this.toFileDiffsPayload(x??[])};return await this.callApi(t,N,"completion",W,X=>this.toCompleteResult(X),void 0,k,M)}async checkpointBlobs(t){let n=this.createRequestId(),i=this._configListener.config,o={blobs:nl(t)},c=await this.callApi(n,i,"checkpoint-blobs",o,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",o,g=>this.toCheckpointBlobsResult(g),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(t){return{working_directory_changes:t.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(t){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(t){return{blobName:t.blob_name!==void 0?on("BackMemorizeResult","blob_name",t.blob_name):on("BackMemorizeResult","mem_object_name",t.mem_object_name)}}async memorize(t,n,i,o,c){let u=this.createRequestId(),f=this._configListener.config,g=await this.callApi(u,f,"memorize",{model:f.modelName,path:t,t:n,blob_name:i,metadata:o,timeout_ms:c},b=>this.toMemorizeResult(b));for(let b of this.getUniqueExtraURLs())await this.callApi(u,f,"memorize",{model:f.modelName,path:t,t:n,blob_name:i,metadata:o},x=>this.toMemorizeResult(x),b);return g}toBatchUploadResult(t){return{blobNames:t.blob_names}}async batchUpload(t){let n=this.createRequestId(),i=this._configListener.config;try{let o=await this.callApi(n,i,"batch-upload",{blobs:t.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:t.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return o}catch(o){if(!Nt.isAPIErrorWithStatus(o,4))throw o;let c=[];for(let u of t){let f=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(f.blobName)}return{blobNames:c}}}toFindMissingResult(t){return{unknownBlobNames:Go("BackFindMissingResult","unknown_memory_names",t.unknown_memory_names),nonindexedBlobNames:Go("BackFindMissingResult","nonindexed_blob_names",t.nonindexed_blob_names)}}async findMissing(t){let n=this._configListener.config,i=this.createRequestId(),o=n.modelName,c=[...t].sort(),u=await this.callApi(i,n,"find-missing",{model:o,mem_object_names:c},f=>this.toFindMissingResult(f));for(let f of this.getUniqueExtraURLs()){let g=await this.callApi(i,n,"find-missing",{model:o,mem_object_names:c},b=>this.toFindMissingResult(b),f);u.unknownBlobNames=u.unknownBlobNames.concat(g.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(g.nonindexedBlobNames)}return u}async resolveCompletions(t){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:t})}toChatResult(t){let n=on("BackChatResult","text",t.text),i=t.unknown_blob_names===void 0?[]:Go("BackChatResult","unknown_blob_names",t.unknown_blob_names),o=t.checkpoint_not_found===void 0?!1:Xg("BackChatResult","checkpoint_not_found",t.checkpoint_not_found,!1),c=t.workspace_file_chunks===void 0?[]:t.workspace_file_chunks.map(f=>({charStart:pi("BackWorkspaceFileChunk","char_start",f.char_start),charEnd:pi("BackWorkspaceFileChunk","char_end",f.char_end),blobName:on("BackWorkspaceFileChunk","blob_name",f.blob_name)})),u=t.nodes===void 0?[]:t.nodes.map(f=>({id:pi("BackChatResultNode","id",f.id),type:pi("BackChatResultNode","type",f.type),content:on("BackChatResultNode","content",f.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:o,workspaceFileChunks:c,nodes:u}}async chat(t,n,i,o,c,u,f,g,b,x,k,I,M,N){let B=this._configListener.config,W={model:f??B.chat.model,path:M,prefix:k,selected_code:x,suffix:I,message:n,chat_history:i,lang:N,blobs:nl(o),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:b,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:g,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(t,B,"chat",W,X=>this.toChatResult(X),B.chat.url,12e4)}async chatStream(t,n,i,o,c,u,f,g,b,x,k,I,M,N,B,W,X,D){let P=this._configListener.config,U={model:f??P.chat.model,path:M,prefix:k,selected_code:x,suffix:I,message:n,chat_history:i,lang:N,blobs:nl(o),user_guided_blobs:c,context_code_exchange_request_id:b,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:g,external_source_ids:u,disable_auto_external_sources:W,user_guidelines:X,workspace_guidelines:D,feature_detection_flags:{support_raw_output:!0}};return await yr(()=>this.callApiStream(t,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,B),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(t){let n=t.completion_timeout_ms!==void 0?pi("BackModelInfo","completion_timeout_ms",t.completion_timeout_ms):void 0;return{name:on("BackModelInfo","name",t.name),suggestedPrefixCharCount:pi("BackModelInfo","suggested_prefix_char_count",t.suggested_prefix_char_count),suggestedSuffixCharCount:pi("BackModelInfo","suggested_suffix_char_count",t.suggested_suffix_char_count),completionTimeoutMs:n,internalName:t.internal_name&&on("BackModelInfo","internal_name",t.internal_name)}}toLanguage(t){let n=on("BackLanguageInfo","name",t.name),i=on("BackLanguageInfo","vscodeName",t.vscode_name);ra("BackLanguageInfo","extensions",t.extensions);let o=[];for(let c of t.extensions)o.push(on("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:o}}toGetModelsResult(t){let n=on("BackGetModelsResult","default_model",t.default_model);ra("BackGetModelsResult","models",t.models);let i=[];for(let u of t.models)i.push(this.toModel(u));let o=Qg;if(t.feature_flags!==void 0){let u=t.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(o.gitDiff=!0,o.gitDiffPollingFrequencyMSec=u),t.feature_flags.small_sync_threshold!==void 0&&(o.smallSyncThreshold=t.feature_flags.small_sync_threshold),t.feature_flags.big_sync_threshold!==void 0&&(o.bigSyncThreshold=t.feature_flags.big_sync_threshold),t.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(o.enableWorkspaceManagerUi=t.feature_flags.enable_workspace_manager_ui_launch),t.feature_flags.enable_instructions!==void 0&&(o.enableInstructions=t.feature_flags.enable_instructions),t.feature_flags.enable_smart_paste!==void 0&&(o.enableSmartPaste=t.feature_flags.enable_smart_paste),t.feature_flags.enable_smart_paste_min_version!==void 0&&(o.enableSmartPasteMinVersion=t.feature_flags.enable_smart_paste_min_version),t.feature_flags.enable_view_text_document!==void 0&&(o.enableViewTextDocument=t.feature_flags.enable_view_text_document),t.feature_flags.bypass_language_filter!==void 0&&(o.bypassLanguageFilter=t.feature_flags.bypass_language_filter),t.feature_flags.additional_chat_models!==void 0&&(o.additionalChatModels=t.feature_flags.additional_chat_models),t.feature_flags.enable_hindsight!==void 0&&(o.enableHindsight=t.feature_flags.enable_hindsight),t.feature_flags.max_upload_size_bytes!==void 0&&(o.maxUploadSizeBytes=t.feature_flags.max_upload_size_bytes),t.feature_flags.vscode_next_edit_min_version!==void 0&&(o.vscodeNextEditMinVersion=t.feature_flags.vscode_next_edit_min_version),t.feature_flags.vscode_flywheel_min_version!==void 0&&(o.vscodeFlywheelMinVersion=t.feature_flags.vscode_flywheel_min_version),t.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(o.vscodeExternalSourcesInChatMinVersion=t.feature_flags.vscode_external_sources_in_chat_min_version),t.feature_flags.vscode_share_min_version!==void 0&&(o.vscodeShareMinVersion=t.feature_flags.vscode_share_min_version),t.feature_flags.max_trackable_file_count!==void 0&&(o.maxTrackableFileCount=t.feature_flags.max_trackable_file_count),t.feature_flags.max_trackable_file_count_without_permission!==void 0&&(o.maxTrackableFileCountWithoutPermission=t.feature_flags.max_trackable_file_count_without_permission),t.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(o.minUploadedPercentageWithoutPermission=t.feature_flags.min_uploaded_percentage_without_permission),t.feature_flags.vscode_sources_min_version!==void 0&&(o.vscodeSourcesMinVersion=t.feature_flags.vscode_sources_min_version),t.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(o.vscodeChatHintDecorationMinVersion=t.feature_flags.vscode_chat_hint_decoration_min_version),t.feature_flags.next_edit_debounce_ms!==void 0&&(o.nextEditDebounceMs=t.feature_flags.next_edit_debounce_ms),t.feature_flags.enable_completion_file_edit_events!==void 0&&(o.enableCompletionFileEditEvents=t.feature_flags.enable_completion_file_edit_events),t.feature_flags.vscode_enable_cpu_profile!==void 0&&(o.vscodeEnableCpuProfile=t.feature_flags.vscode_enable_cpu_profile),t.feature_flags.verify_folder_is_source_repo!==void 0&&(o.verifyFolderIsSourceRepo=t.feature_flags.verify_folder_is_source_repo),t.feature_flags.refuse_to_sync_home_directories!==void 0&&(o.refuseToSyncHomeDirectories=t.feature_flags.refuse_to_sync_home_directories),t.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(o.enableFileLimitsForSyncingPermission=t.feature_flags.enable_file_limits_for_syncing_permission),t.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(o.enableChatMermaidDiagrams=t.feature_flags.enable_chat_mermaid_diagrams),t.feature_flags.enable_summary_titles!==void 0&&(o.enableSummaryTitles=t.feature_flags.enable_summary_titles),t.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(o.vscodeNewThreadsMenuMinVersion=t.feature_flags.vscode_new_threads_menu_min_version),t.feature_flags.vscode_editable_history_min_version!==void 0&&(o.vscodeEditableHistoryMinVersion=t.feature_flags.vscode_editable_history_min_version)}let c=[];if(t.languages===void 0)c=Jg;else{ra("BackGetModelsResult","languages",t.languages),c=[];for(let u of t.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:o}}async getModelConfig(){let t=this._configListener.config,n=this.createRequestId();return await this.callApi(n,t,"get-models",{},o=>this.toGetModelsResult(o))}async getAccessToken(t,n,i,o){let c=this._configListener.config,u=this.createRequestId(),f={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:t,code:o};return await this.callApi(u,c,"token",f,g=>g.access_token,n)}async clientMetrics(t){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:t},void 0,void 0,e.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(t){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:t},void 0,void 0,e.defaultRequestTimeoutMs)}},il=class extends Error{constructor(){super("The completion URL setting is invalid")}},Zg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(t){if(t===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(t),t}addAll(...t){t.forEach(n=>this.add(n))}adopt(t){this._disposables.push(...t._disposables),t._disposables.length=0}dispose(){for(let t of this._disposables)t.dispose();this._disposables.length=0}},mt=class{_disposables=new ir;_priorityDisposables=new ir;constructor(t=new ir,n=new ir){this._disposables.adopt(t),this._priorityDisposables.adopt(n)}addDisposable(t,n=!1){return n?this._priorityDisposables.add(t):this._disposables.add(t)}addDisposables(...t){this._disposables.addAll(...t)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var u2={Augment:null},l2="augment-vim-extension",ol=class e extends mt{_config;_configChanged=new De;_configMonitor;_logger=Ie("AugmentConfigListener");constructor(){super(),this._configMonitor=new Wo("Config",this._logger),this._refreshConfig(),this.addDisposable(Vg.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let t=this._config;this._config=e.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:t,newConfig:this._config})}static normalizeConfig(t){return{apiToken:t.advanced.apiToken,completionURL:t.advanced.completionURL,modelName:t.advanced.model,conflictingCodingAssistantCheck:t.conflictingCodingAssistantCheck,codeInstruction:{model:t.advanced.codeInstruction.model||void 0},chat:{url:t.advanced.chat.url||void 0,model:t.advanced.chat.model||void 0,stream:t.advanced.chat.stream??void 0,enableEditableHistory:t.advanced.chat.enableEditableHistory??!1,useRichTextHistory:t.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:t.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:t.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:t.advanced.chat.modelDisplayNameToId||u2,userGuidelines:t.chat.userGuidelines||""},autofix:{enabled:t.advanced.autofix.enabled,locationUrl:t.advanced.autofix.locationUrl||void 0,autofixUrl:t.advanced.autofix.autofixUrl||void 0},oauth:{clientID:t.advanced.oauth.clientID||l2,url:t.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:t.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:t.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:t.shortcutsDisplayDelayMS,enableEmptyFileHint:t.enableEmptyFileHint,enableBackgroundSuggestions:t.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:t.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:t.showAllBackgroundSuggestionLineHighlights,enableDataCollection:t.advanced.enableDataCollection,enableDebugFeatures:t.advanced.enableDebugFeatures,enableReviewerWorkflows:t.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:t.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(t.completions.disableCompletionsByLanguage),enableQuickSuggestions:t.completions.enableQuickSuggestions,timeoutMs:t.advanced.completions.timeoutMs,maxWaitMs:t.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:t.advanced.completions.addIntelliSenseSuggestions,filterThreshold:t.advanced.completions.filterThreshold},openFileManagerV2:{enabled:t.advanced.openFileManagerV2.enabled},nextEdit:{enabled:t.advanced.nextEdit.enabled,backgroundEnabled:t.advanced.nextEdit.backgroundEnabled,url:t.advanced.nextEdit.url,locationUrl:t.advanced.nextEdit.locationUrl||t.advanced.nextEdit.url,generationUrl:t.advanced.nextEdit.generationUrl||t.advanced.nextEdit.url,showInstructionTextbox:t.advanced.nextEdit.showInstructionTextbox,model:t.advanced.nextEdit.model,useDebounceMs:t.advanced.nextEdit.useDebounceMs,useCursorDecorations:t.advanced.nextEdit.useCursorDecorations,useSmallHover:t.advanced.nextEdit.useSmallHover,noDiffMode:t.advanced.nextEdit.noDiffMode,animateNoDiffMode:t.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:t.advanced.nextEdit.allowDuringDebugging,useMockResults:t.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:t.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:t.advanced.nextEdit.showDiffByDefault},recencySignalManager:t.advanced.recencySignalManager,preferenceCollection:{enable:t.advanced.preferenceCollection.enable,enableRetrievalDataCollection:t.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:t.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:t.advanced.vcs.watcherEnabled},smartPaste:{url:t.advanced.smartPaste?.url,model:t.advanced.smartPaste?.model},instructions:{model:t.advanced.instructions?.model}}}_getUserConfig(){let t=Vg.getConfiguration("augment");return e.normalizeUserConfig(t)}static normalizeUserConfig(t){return{completions:{enableAutomaticCompletions:ft(t.enableAutomaticCompletions??t.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:t.disableCompletionsByLanguage||t.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:ft(t.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:t.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:ft(t.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:d2(t.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:ft(t.enableEmptyFileHint,!0),enableBackgroundSuggestions:ft(t.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:ft(t.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:ft(!t.advanced?.nextEdit?.noDiffMode,!t.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:ft(t.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(t.advanced?.apiToken||t.apiToken||"").trim().toUpperCase(),completionURL:(t.advanced?.completionURL||t.completionURL||"").trim(),enableWorkspaceUpload:ft(t.advanced?.enableWorkspaceUpload,!0),model:t.advanced?.model||"",enableDebugFeatures:ft(t.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:ft(t.advanced?.enableReviewerWorkflows,!1),enableDataCollection:ft(t.advanced?.enableDataCollection,!1),codeInstruction:{model:t.advanced?.codeInstruction?.model||void 0},chat:{url:t.advanced?.chat?.url||void 0,model:t.advanced?.chat?.model||void 0,stream:t.advanced?.chat?.stream??void 0,enableEditableHistory:t.advanced?.chat?.enableEditableHistory,useRichTextHistory:t.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:t.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:t.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:t.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:ft(t.advanced?.autofix?.enabled,!1),locationUrl:t.advanced?.autofix?.locationUrl||void 0,autofixUrl:t.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:t.advanced?.oauth?.clientID,url:t.advanced?.oauth?.url},completions:{timeoutMs:t.advanced?.completions?.timeoutMs??800,maxWaitMs:t.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:t.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:t.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:ft(t.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:t.advanced?.nextEdit?.enabled,backgroundEnabled:ft(t.advanced?.nextEdit?.backgroundEnabled,!0),url:t.advanced?.nextEdit?.url,locationUrl:t.advanced?.nextEdit?.locationUrl,generationUrl:t.advanced?.nextEdit?.generationUrl,showInstructionTextbox:ft(t.advanced?.nextEdit?.showInstructionTextbox,!1),model:t.advanced?.nextEdit?.model,useDebounceMs:t.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:ft(t.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:ft(t.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:t.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:t.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:t.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:ft(t.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:ft(t.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:ft(t.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:t.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:ft(t.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:ft(t.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:ft(t.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:ft(t.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:t.advanced?.smartPaste?.url,model:t.advanced?.smartPaste?.model},instructions:{model:t.advanced?.instructions?.model}}}}};function ft(e,t){return e==null?t:typeof e=="string"?e.toLowerCase()!=="false":!!e}function d2(e,t){return e==null?t:typeof e=="string"?parseInt(e):e}var tT=kt(Vu());var sa="augment.sessions",eT=["email"],sl=class extends mt{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(o=>{this._isLoggedIn=!!o}),this._context.secrets.onDidChange(async o=>{o.key===sa&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new De;_readyEmitter=new De;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(sa,JSON.stringify({accessToken:n,tenantURL:i,scopes:eT}))}async getSession(){let n=await this._context.secrets.get(sa);if(n){let i=JSON.parse(n);if((0,tT.isEqual)(i.scopes,eT))return i}return null}async removeSession(){await this._context.secrets.get(sa)&&await this._context.secrets.delete(sa)}};var Qo=require("crypto"),ep=require("url");var f2=["email"],al="augment.oauth-state",h2=process.env.TEST_HOSTNAME??".augmentcode.com",g2=10,cl=class{constructor(t,n,i,o){this._context=t;this._config=n;this._apiServer=i;this._authSession=o;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=Ie("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let t=nT((0,Qo.randomBytes)(32)),n=nT(p2(Buffer.from(t))),i=(0,Qo.randomUUID)(),o={codeVerifier:t,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(al,JSON.stringify(o)),this._logger.info("Created OAuth state"),o}async getOAuthState(){this._logger.info("Getting OAuth state");let t=await this._context.secrets.get(al);if(t){let n=JSON.parse(t);if(new Date().getTime()-n.creationTime{let i=performance.now()-e;return t(Math.round(i)),n}}function rT(e,t){return(...n)=>{let i=performance.now(),o=m2(i,t),c=e(...n);return c instanceof Promise?c.then(o):o(c)}}function b2(e,t,n,i,o,c,u){return{blob_name:e,path:t,char_start:n,char_end:i,replacement_text:o,present_in_blob:c,expected_blob_name:u}}function iT(e){return e.map(t=>b2(t.blobName,t.pathName,t.origStart,t.origStart+t.origLength,t.text,t.uploaded,t.expectedBlobName))}var ll=class{constructor(t,n,i,o){this.completionText=t;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=o}toString(){return`text: ${this.completionText} suffixReplacementText: ${this.suffixReplacementText} skippedSuffix: ${this.skippedSuffix} start: ${this.range.startOffset} - end: ${this.range.endOffset}`}};var ku=class{constructor(e,n){this._extension=e;this._configListener=n}_logger=Oe("CompletionsModel");_completionSerial=0;async generateCompletion(e,n,i){let s=this._extension.workspaceManager;if(s===void 0)return;let c=s.completionServer,u=c.createRequestId(),h=s.safeResolvePathName(e.uri);if(h===void 0)return;let[g,b]=[h.rootPath,h.relPath],y=e.offsetAt(n),[T,F,E,L,B]=this._extractPrefixAndSuffix(e,y);y+=B;let $={prefixBegin:E,cursorPosition:y,suffixEnd:L},D=(await this._requestCompletion(s,c,u,e,T,F,$,h,i)).completionItems;if(D.length===0)return{completions:[],document:e,requestId:u,repoRoot:g,pathName:b,prefix:T,suffix:F,occuredAt:new Date,isReused:!1};D.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let x=[],te=D[0];return te.skippedSuffix.includes(` -`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),x.push(new Cu(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${x.length} completion(s)`),{occuredAt:new Date,completions:x,document:e,requestId:u,repoRoot:g,pathName:b,prefix:T,suffix:F,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,h,g,b){let y=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(y))throw new Co(`Language ${y} is disabled.`);let F=this._completionSerial++;this._logger.debug(`Requesting new completion - #${F} submitted; requestId: ${i}`);let E=e.translateRange(g,h.prefixBegin,h.suffixEnd),L=E===void 0?h:{prefixBegin:E.beginOffset,cursorPosition:h.cursorPosition,suffixEnd:E.endOffset},B=e.getContext(),$=B.blobs,X=[],D=void 0;try{let x=await n.complete(i,c,u,g.relPath,E?.blobName,L,y,$,X,D,void 0,void 0,b);return x.unknownBlobNames.length>0&&e.handleUnknownBlobs(B,x.unknownBlobNames),x.checkpointNotFound&&e.handleUnknownCheckpoint(i,$.checkpointId),TF(x.completionItems,u,this._logger),this._extension.updateModelInfo(x),x.completionItems=x.completionItems.filter(O=>(O.text+O.suffixReplacementText).length>0),x}catch(x){if(Mt.isAPIErrorWithStatus(x,1))throw this._logger.debug(`Completion #${F} cancelled in back end; requestId ${i}`),new Co("Cancelled in back end");if(Mt.isRetriableAPIError(x))throw this._logger.debug(`Completion #${F} retriable error on back end; requestId ${i}`),new Co("Retriable error on back end");let O=De(x);throw this._logger.warn(`Completion #${F} failed: ${O}; requestId ${i}`),x}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,h]=[void 0,0];u!==void 0&&(n+=h);let g=Math.max(0,n-s),b=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let y=e.positionAt(g),T=e.positionAt(n),F=e.positionAt(n),E=e.positionAt(b),L=at.create(y,T),B=at.create(F,E),$=e.getText(L),X=e.getText(B);return[$,X,g,n+X.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var Du=class t extends Tu{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,h]=Wh(i),[g,b]=Wh(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:h,resolve_time_sec:g,resolve_time_nsec:b,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var Iu=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await du(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Io(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await LP(n.fsPath)||await Cs(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?vt.joinPath(this._extensionContext.storageUri,t.storageSubDir):vt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return vt.joinPath(this._getStorageUri(n),`${e}.json`)}};var yx=Tt(bu());var jh=class{async read(e){try{return await OP(e)}catch{return}}stat(e){try{return xs(e)}catch{return}}};function HP(){return new jh}var VP=Tt(require("crypto"));function GP(t){let e=VP.createHash("sha256");return e.update(t),e.digest("hex")}var Zh=Tt(rx());var Ds=class{accepted=!0},di=class{accepted=!1};var rt=Tt(require("node:path"));var Is=rt.posix.sep,VF=new RegExp("/\\/g");function ix(t){return rt.isAbsolute(t)}function GF(t){return rt.sep==="\\"?t.replace(VF,Is):t}function ox(t){return GF(t)}function sx(t){return t.with({path:rt.dirname(t.fsPath)})}function Fu(t){let e=rt.dirname(t);return e==="."?"":QF(e)}function QF(t){return t.endsWith(Is)?t:t+Is}function Ao(t){for(;;){if(t===rt.sep||t===Is||!t.endsWith(Is)&&!t.endsWith(rt.sep))return t;t=t.slice(0,-1)}}function Es(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return rt.relative(n,i)}function Lr(t,e){let n=Es(t,e);return n==="."?"":n.length>0&&!n.endsWith(rt.sep)?n+rt.sep:n}function ut(t,e,n=!1){let i=rt.join(t,e);return n&&!i.endsWith(rt.sep)&&(i+=rt.sep),i}function Fs(t,e){let n=Es(t,e);if(!(n===".."||n.startsWith(".."+rt.sep)||n.startsWith(".."+rt.posix.sep)))return n}function nr(t,e){return Fs(t,e)!==void 0}function Mu(t,e){let n=Es(t,e);return n===""||n==="."||n==="."+rt.sep||n==="."+rt.posix.sep}async function Au(t,e,n){let i=typeof t=="string"?ht.file(t):t;for(;;){try{let c=vt.joinPath(i,e),u=await NP(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=rt.dirname(i.fsPath);if(rt.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function JF(t){return!1}function Jt(t){return Ao(t.fsPath)}function ax(t){return t.fsPath}function No(t){if(t.scheme==="file"||t.scheme==="untitled"||JF(t))return Jt(t)}var fi=class extends Ds{explicit=!1;format(){return"Tracked"}},Jh=class extends Ds{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},Xh=class extends di{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},Nu=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},Yh=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if(Lr(i,n)!==""){let u=n;for(;;){u=sx(u);let h=Lr(i,u),g=await e.getRules(u);if(g&&s.push([h,e,g]),h==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[h,g,b]=s[u];c=new Nu(h,g,b,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=Lr(this._rootUri,e),c=new Nu(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!nr(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new Xh(n.ignoreSource.getName(vt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new Jh(n.ignoreSource.getName(vt.joinPath(this._rootUri,n.dirName)))}return new fi}},Kh=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await Yh.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new fi}};async function XF(t,e){let n=vt.joinPath(t,e);try{let i=await Io(n.fsPath),s=(0,Zh.default)({ignorecase:!1});return s.add(i),s}catch{}}var qo=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await Kh.buildNew(this._ignoreSources,e,n)}},Ms=class{constructor(e){this.filename=e}getName(e){return ax(vt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return XF(e,this.filename)}},qu=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,Zh.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var Lu=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: + end: ${this.range.endOffset}`}};var dl=class{constructor(t,n,i){this._extension=t;this._configListener=n;this._metricsReporter=i;this.generateCompletion=rT(this.generateCompletion.bind(this),o=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:o})})}_logger=Ie("CompletionsModel");_completionSerial=0;async generateCompletion(t,n,i){let o=this._extension.workspaceManager;if(o===void 0)return;let c=o.completionServer,u=c.createRequestId(),f=o.safeResolvePathName(t.uri);if(f===void 0)return;let[g,b]=[f.rootPath,f.relPath],x=t.offsetAt(n),[k,I,M,N,B]=this._extractPrefixAndSuffix(t,x);x+=B;let W={prefixBegin:M,cursorPosition:x,suffixEnd:N},D=(await this._requestCompletion(o,c,u,t,k,I,W,f,i)).completionItems;if(D.length===0)return{completions:[],document:t,requestId:u,repoRoot:g,pathName:b,prefix:k,suffix:I,occuredAt:new Date,isReused:!1};D.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],ne=D[0];return ne.skippedSuffix.includes(` +`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),ne.skippedSuffix="",ne.suffixReplacementText=""),P.push(new ll(ne.text,ne.suffixReplacementText,ne.skippedSuffix,{startOffset:t.offsetAt(n),endOffset:t.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:t,requestId:u,repoRoot:g,pathName:b,prefix:k,suffix:I,isReused:!1}}async _requestCompletion(t,n,i,o,c,u,f,g,b){let x=o.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(x))throw new Eo(`Language ${x} is disabled.`);let I=this._completionSerial++;this._logger.debug(`Requesting new completion - #${I} submitted; requestId: ${i}`);let M=t.translateRange(g,f.prefixBegin,f.suffixEnd),N=M===void 0?f:{prefixBegin:M.beginOffset,cursorPosition:f.cursorPosition,suffixEnd:M.endOffset},B=t.getContext(),W=B.blobs,X=this._getRecentChanges(B),D=void 0;try{let P=await n.complete(i,c,u,g.relPath,M?.blobName,N,x,W,X,D,void 0,void 0,b);return P.unknownBlobNames.length>0&&t.handleUnknownBlobs(B,P.unknownBlobNames),P.checkpointNotFound&&t.handleUnknownCheckpoint(i,W.checkpointId),v2(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(Nt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${I} cancelled in back end; requestId ${i}`),new Eo("Cancelled in back end");if(Nt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${I} retriable error on back end; requestId ${i}`),new Eo("Retriable error on back end");let U=Ee(P);throw this._logger.warn(`Completion #${I} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(t,n){let i=this._extension.modelInfo,o=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,f]=[void 0,0];u!==void 0&&(n+=f);let g=Math.max(0,n-o),b=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let x=t.positionAt(g),k=t.positionAt(n),I=t.positionAt(n),M=t.positionAt(b),N=dt.create(x,k),B=dt.create(I,M),W=t.getText(N),X=t.getText(B);return[W,X,g,n+X.length,0]}_getRecentChanges(t){let n=t.recentChunks,i=t.lastChatResponse;if(i!==void 0){let o={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+t)%this._maxItems]}_normalizeSliceIdx(t){return t>=0?Math.min(t,this.length):Math.max(this.length+t,0)}_translateIdx(t){return(this._insertCount+this._emptySlots+t)%this._maxItems}slice(t,n){let i=this._normalizeSliceIdx(t??0),o=this._normalizeSliceIdx(n??this.length);if(i>o)return[];let c=o-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let t=0;t{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let t=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(o){throw this._logger.error(`Error uploading metrics: ${o} ${o instanceof Error?o.stack:""}`),o}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var hl=class e extends Jo{constructor(n){super("ClientMetricsReporter",e.defaultMaxRecords,e.defaultUploadMsec,e.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function tp(e){let t=Math.floor(e/1e3),n=e%1e3*1e6;return[t,n]}var gl=class e extends Jo{constructor(n,i,o,c){super("CompletionAcceptanceReporter",i??e.defaultMaxRecords,o??e.defaultUploadMsec,c??e.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,o,c){let[u,f]=tp(i),[g,b]=tp(o);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:f,resolve_time_sec:g,resolve_time_nsec:b,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var pl=class e{constructor(t){this._extensionContext=t}static storageSubDir="augment-global-state";update(t,n){return this._extensionContext.globalState.update(t,n)}get(t){return this._extensionContext.globalState.get(t)}async save(t,n,i){await this._ensureStorageUriExists(i);let o=this._getFileUri(t,i);return await Yu(o.fsPath,JSON.stringify(n))}async load(t,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(t,n);try{let o=await Vo(i.fsPath);return JSON.parse(o)}catch{return}}async _ensureStorageUriExists(t){let n=this._getStorageUri(t);await GR(n.fsPath)||await ta(n.fsPath)}_getStorageUri(t){return t?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,e.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,e.storageSubDir)}_getFileUri(t,n){return Tt.joinPath(this._getStorageUri(n),`${t}.json`)}};var NT=kt(Vu());var np=class{async read(t){try{return await QR(t)}catch{return}}stat(t){try{return Zs(t)}catch{return}}};function oT(){return new np}var sT=kt(require("crypto"));function aT(e){let t=sT.createHash("sha256");return t.update(e),t.digest("hex")}var fp=kt(bT());var aa=class{accepted=!0},mi=class{accepted=!1};var st=kt(require("node:path"));var ca=st.posix.sep,L2=new RegExp("/\\/g");function _T(e){return st.isAbsolute(e)}function O2(e){return st.sep==="\\"?e.replace(L2,ca):e}function vT(e){return O2(e)}function yT(e){return e.with({path:st.dirname(e.fsPath)})}function bl(e){let t=st.dirname(e);return t==="."?"":B2(t)}function B2(e){return e.endsWith(ca)?e:e+ca}function Xo(e){for(;;){if(e===st.sep||e===ca||!e.endsWith(ca)&&!e.endsWith(st.sep))return e;e=e.slice(0,-1)}}function ua(e,t){let n=typeof e=="string"?e:e.fsPath,i=typeof t=="string"?t:t.fsPath;return st.relative(n,i)}function $r(e,t){let n=ua(e,t);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function tt(e,t,n=!1){let i=st.join(e,t);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function la(e,t){let n=ua(e,t);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(e,t){return la(e,t)!==void 0}function _l(e,t){let n=ua(e,t);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function vl(e,t,n){let i=typeof e=="string"?Ze.file(e):e;for(;;){try{let c=Tt.joinPath(i,t),u=await HR(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let o=st.dirname(i.fsPath);if(st.relative(o,i.fsPath).length===0)return;i=i.with({path:o})}}function U2(e){return!1}function Yt(e){return Xo(e.fsPath)}function xT(e){return e.fsPath}function Ko(e){if(e.scheme==="file"||e.scheme==="untitled"||U2(e))return Yt(e)}var bi=class extends aa{explicit=!1;format(){return"Tracked"}},cp=class extends aa{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},up=class extends mi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},yl=class{constructor(t,n,i,o){this.dirName=t;this.ignoreSource=n;this.rules=i;this.next=o}},lp=class e{constructor(t,n,i){this._rootUri=t;this._ignoreSource=n;this._top=i}static async buildNew(t,n,i){let o=new Array;if($r(i,n)!==""){let u=n;for(;;){u=yT(u);let f=$r(i,u),g=await t.getRules(u);if(g&&o.push([f,t,g]),f==="")break}}let c;for(let u=o.length-1;u>=0;u--){let[f,g,b]=o[u];c=new yl(f,g,b,c)}return new e(i,t,c)}async buildAtop(t,n){let i=await this._ignoreSource.getRules(t,n);if(i===void 0)return this;let o=$r(this._rootUri,t),c=new yl(o,this._ignoreSource,i,this._top);return new e(this._rootUri,this._ignoreSource,c)}getPathInfo(t){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,t))throw new Error(`candidatePath "${t}" is not below ignore file's parent "${n.dirName}"`);let i=t.slice(n.dirName.length),o=n.rules.test(i);if(o.ignored)return new up(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(o.unignored)return new cp(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new bi}},dp=class e{constructor(t,n){this._ignoreSources=t;this._ignoreStacks=n}static async buildNew(t,n,i){let o=new Array;for(let c of t){let u=await lp.buildNew(c,n,i);o.push(u)}return new e(t,o)}async buildAtop(t,n){let i=new Array,o=0;for(let c=0;c=0;n--){let o=this._ignoreStacks[n].getPathInfo(t);if(o.explicit)return o}return new bi}};async function $2(e,t){let n=Tt.joinPath(e,t);try{let i=await Vo(n.fsPath),o=(0,fp.default)({ignorecase:!1});return o.add(i),o}catch{}}var Yo=class{constructor(t=[]){this._ignoreSources=t}async build(t,n){return await dp.buildNew(this._ignoreSources,t,n)}},da=class{constructor(t){this.filename=t}getName(t){return xT(Tt.joinPath(t,this.filename))}async getRules(t,n){if(!(n!==void 0&&!(n.find(([o,c])=>c==="File"&&this.filename===o)!==void 0)))return $2(t,this.filename)}},xl=class{constructor(t){this._sourceFolderRootPath=t}getName(){return"default Augment rules"}getRules(t){return new Promise(n=>{if(Yt(t)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,fp.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var wl=class{constructor(t){this.name=t}start=Date.now();increments=[];charge(t){this.increments.push({name:t,end:Date.now()})}*[Symbol.iterator](){let t=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-t],t=i;yield["total",t-this.start]}format(){return(this.name?`${this.name}: `:"")+Array.from(this).map(([n,i])=>` - ${n}: ${i} ms`).join(` -`)}},Ou=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},eg=class extends Ou{increment(e=1){this._add(e)}},tg=class extends Ou{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},Lo=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new eg,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new tg,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` -`),i=" - timing stats:",s=Array.from(this.timings.entries()).map(([c,u])=>` - ${c}: ${u.value} ms`).join(` -`);return e+` +`)}},Pl=class{_value=0;_add(t=1){this._value+=t}_invalidate(){this._value=Number.NaN}get value(){return this._value}},hp=class extends Pl{increment(t=1){this._add(t)}},gp=class extends Pl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},Zo=class{constructor(t){this.name=t}counters=new Map;timings=new Map;counterMetric(t){let n=this.counters.get(t);return n===void 0&&(n=new hp,this.counters.set(t,n)),n}timingMetric(t){let n=this.timings.get(t);return n===void 0&&(n=new gp,this.timings.set(t,n)),n}format(){let t=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` +`),i=" - timing stats:",o=Array.from(this.timings.entries()).map(([c,u])=>` - ${c}: ${u.value} ms`).join(` +`);return t+` `+n+` `+i+` -`+s}};var cx=Tt(require("os"));function ux(t){let e=cx.default.homedir();return Mu(t,e)}var As=Tt(require("node:path"));async function Uu(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,h=Date.now(),g=[];g.push([t,s]);let b;for(;(b=g.pop())!==void 0;){Date.now()-h>=u&&(await new Promise($=>setTimeout($,0)),h=Date.now());let[T,F]=b,E=Lr(e,T),L=Ss(T.fsPath),B=await F.buildAtop(T,L);B!==F&&c.set(E,B);for(let[$,X]of L){if(Date.now()-h>=u&&(await new Promise(_e=>setTimeout(_e,0)),h=Date.now()),$==="."||$===".."||X!=="Directory")continue;let x=vt.joinPath(T,$),O=ut(E,$,!0);B.getPathInfo(O).accepted&&g.push([x,B])}}return new rg(c,i)}var Oo=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!As.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!As.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!nr(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new Lo("Path metrics");_logger=Oe("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(b=>setTimeout(b,0)),n=Date.now());let u=Lr(this._rootUri,s),h=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let g=Ss(s.fsPath);this._readDirMs.stop();for(let[b,y]of g){if(Date.now()-n>=e&&(await new Promise($=>setTimeout($,0)),n=Date.now()),b==="."||b==="..")continue;this._filterMs.start();let F=vt.joinPath(s,b),E=ut(u,b,y==="Directory"),L=h.getPathInfo(E,y);this._filterMs.stop();let B=E;y==="File"?this._filesEmitted.increment():y==="Directory"?(B=Ao(E),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[F,B,y,L],this._yieldMs.stop(),y==="Directory"&&L.accepted&&i.push(F)}}this._totalMs.stop()}},ng=class extends di{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},Bu=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=As.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new ng(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(Fu(e));return i===void 0?new fi:i.getPathInfo(e)}},rg=class extends Bu{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new ig(i,this._fileExtensions)}_getIgnoreStack(n){if(ix(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(Fu(i)===i)return;i=Fu(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},ig=class extends Bu{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var og=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},$u=class t extends yt{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new og;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var sg=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var jn=class extends sg{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},Wu=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},hi=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var YF=Object.freeze({git:{name:".git",type:"Directory"}});async function lx(t){for(let[e,n]of Object.entries(YF)){let i=await Au(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var Ns=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},ag=class{throwError(e,n){throw new Ns(e,n)}},cg=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},ug=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},lg=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},ju=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},dg=class extends ju{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new ug(i,this.process)}},fg=class extends ju{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function h(){for(let g of u)g.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{h(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(g=>{h(),c(g)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof Ns?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof Ns&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function Bo(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Hu=class t extends yt{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new Ve;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=Oe("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new zu("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=Bo(e,n),s=Bo(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=Bo(e.addedBlobs,n.addedBlobs),u=Bo(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=Bo(e.deletedBlobs,n.deletedBlobs),u=Bo(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(h){let g=h instanceof Error?h.message:`${h}`,b=this._checkpointId?this._checkpointId:"{initial}";Mt.isAPIErrorWithStatus(h,5)?(this._logger.warn(`checkpoint-blobs from ${b} failed with invalid argument: ${g}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(h,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${g}.`),n.throwError(h,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let h of s){let g=this._toAdd.get(h);g===void 0?(this._checkpointBlobNames.set(h,0),this._toRemove.add(h)):(this._checkpointBlobNames.set(h,g),this._toAdd.delete(h))}for(let h of c){let g=this._checkpointBlobNames.get(h);g===void 0?this._logger.warn(`In _checkpoint: deleted blob ${h} not found in checkpoint`):g>0&&this._toAdd.set(h,g),this._checkpointBlobNames.delete(h),this._toRemove.delete(h)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function qs(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var dx=Tt(require("crypto")),Os=2023102300,Ls=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},Vu=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=dx.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new Ls(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var hg=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},gg=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Gu=class t extends yt{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=Oe(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new jn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new jn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new jn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new jn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new hi(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new jn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new hi(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new Ve;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new Ve;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new Lo("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=ox(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return ks(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return ut(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof Ls){this._largeFiles.increment();let h=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,h)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,De(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let h=this._getMtime(u,s,c,i);if(h===void 0)return;let g,b=this._pathMap.getBlobInfo(s,c,h);if(b!==void 0){this._mtimeCacheHits.increment();let[T,F]=b;if(F>0){this._pathMapUpdate(s,c,i,T,h);return}g=T}else{let T=await this._readAndValidate(u,s,c,i);if(T===void 0||(this._mtimeCacheMisses.increment(),g=this._calculateBlobName(c,T,s,i),g===void 0))return}this._pathsAccepted.increment();let y={folderId:s,relPath:c,blobName:g,mtime:h,startTime:Date.now()};this._enqueueForProbeRetry(i,y)}_newProbeBatch(){return new gg(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,h]=n;if(!this._pathMapVerify(h.folderId,h.relPath,u)||(this._probeBatch.addItem(u,h),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,h]of i.items)s.add(h.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await br(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),qs(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),qs(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),h=new Set(c.nonindexedBlobNames),g=this._beginUploadBatch();for(let[b,y]of i.items)this._pathMapVerify(y.folderId,y.relPath,b)&&(u.has(y.blobName)?this._enqueueForUpload(b,y.folderId,y.relPath,!1):h.has(y.blobName)?this._enqueueForProbeRetry(b,y):this._pathMapUpdate(y.folderId,y.relPath,b,y.blobName,y.mtime));g.dispose()}else for(let[u,h]of i.items)this._enqueueForProbeRetry(u,h)}_newUploadBatch(){return new hg(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[h,{seq:g,folderId:b,relPath:y}]=n;if(!this._pathMapVerify(b,y,g))return;let T=this._getMtime(h,b,y,g);if(T===void 0)return;let F=await this._readAndValidate(h,b,y,g);if(F===void 0)return;let E=this._calculateBlobName(y,F,b,g);if(E===void 0)return;let L;try{L=this._textDecoder.decode(F)}catch($){this._pathMapInvalidate(b,y,g,De($)),this._encodingErrors.increment();return}let B={seq:g,folderId:b,pathName:y,text:L,blobName:E,mtime:T,byteSize:F.length,metadata:[]};if(this._uploadBatch.addItem(E,B))return;i=B}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[h,g]of s.items)c.push(g[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[h,g]of s.items){let b=u.get(h);if(b===void 0)for(let y of g)this._pathMapInvalidate(y.folderId,y.pathName,y.seq,this._fileUploadFailure);else for(let y of g){let T={folderId:y.folderId,relPath:y.pathName,blobName:b,mtime:y.mtime,startTime:Date.now()};this._enqueueForProbeRetry(y.seq,T)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await br(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${De(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let h=await br(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,h.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new Nr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let h=this._toUpload.get(u);if(h!==void 0){let g=h.seq;if(g>n)this._inflightItemRemove(g);else if(g ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var Or=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},pg=class{constructor(e=Os){this.namingVersion=e}entries=new Array};function ZF(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function eM(t){return ut(t,Or.cacheFileName)}function Ju(t){let e=eM(t);return qP(e)}async function hx(t,e){let n=ut(t,Or.cacheFileName),i=ut(e,Or.cacheFileName);await Cs(e),await Nh(n,i)}async function gx(t,e){let n=new Map,i=Oe(`MtimeCache[${t}]`),s=ut(e,Or.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Io(s),h=JSON.parse(u);if(h.namingVersion===void 0||h.namingVersion!==Os)i.info(`blob naming version ${h.namingVersion} !== ${Os}`);else if(Array.isArray(h.entries))for(let[g,b]of h.entries){let y=ZF(b);y!==void 0&&(n.set(g,{mtime:y.mtime,name:y.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=De(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Qu=class extends Or{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=ut(this._cacheDirName,Or.cacheFileName),this._tmpFileName=ut(this._cacheDirName,Or.tmpFileName)}_cacheFileName;_tmpFileName;_logger=Oe("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new pg;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await Cs(this._cacheDirName),await du(this._tmpFileName,JSON.stringify(i,void 0,4)),await Nh(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${Os} to ${this._cacheFileName}`)}};var px=require("node:buffer");var Xu=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new Vu(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,px.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var rr=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return ut(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=mx(e)?ut(e.rootPath,e.relPath):e.fsPath,s=mx(n)?ut(n.rootPath,n.relPath):n.fsPath;return i===s}};function mx(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Yu=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new Ve;_nextEntryTS=1e3;_logger=Oe("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,h]of this._sourceFolders){if(Mu(h.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(nr(e,h.folderRoot))throw new Error(`Source folder ${e} contains ${h.folderRoot}`);if(nr(h.folderRoot,e))throw new Error(`Source folder ${h.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new mg(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new rr(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new rr(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new rr(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},mg=class extends yt{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new Ve;_blobNameChangedEmitter=new Ve;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),h=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let g=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,g?.trackable&&(this._blobNameToPathName.delete(g.blobName),this._publishBlobNameChange(n,g.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),h&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let h=u.fileInfo===void 0?!0:u.fileInfo.trackable,g;u.fileInfo?.trackable&&(g=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==g&&(g!==void 0&&this._blobNameToPathName.delete(g),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,g,s),this._markDirty()),(!h||g===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let h=!1;if(u===void 0)h=!0;else if(u.trackable===!0){h=!0;let g=u.blobName;this._blobNameToPathName.delete(g),this._publishBlobNameChange(n,g,void 0),this._markDirty()}else h=s!==u.reason;h&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return ut(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[h,g]of u){let b=g.fileInfo;b?.trackable&&(yield[h,b.mtime,b.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var bg=class extends di{constructor(n){super();this.reason=n}format(){return this.reason}},Ku=class extends yt{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=Oe(`PathNotifier[${i}]`)}_pathFoundEmitter=new Ve;_pathCreatedEmitter=new Ve;_pathChangedEmitter=new Ve;_pathDeletedEmitter=new Ve;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new Oo(this.folderName,ht.file(this.folderRoot),ht.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,h]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:h})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=xs(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(g){c="Other",u=new bg(De(g))}let h=i?"created":"changed";this._logger.verbose(`${c} ${h}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=No(n);if(i!==void 0)return Fs(this.repoRoot,i)}_createFilesystemWatcher(n){}};async function bx(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let h=new Array,g=200,b=Date.now(),y;for(;(y=u.pop())!==void 0&&(i===void 0||h.length=g&&(await new Promise(B=>setTimeout(B,0)),b=Date.now());let F=Lr(c,y),E=n.makeLocalPathFilter(F),L=Ss(y);for(let[B,$]of L){if(Date.now()-b>=g&&(await new Promise(x=>setTimeout(x,0)),b=Date.now()),B==="."||B==="..")continue;let D=ut(F,B,$==="Directory");E.acceptsPath(D,$)&&($==="File"?h.push(D):$==="Directory"&&u.push(ut(y,B)))}}return Promise.resolve(h)}var Zu=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let h=await this._apiServer.findMissing(u),g=u.length,b=Math.min(h.unknownBlobNames.length,g);return{trackable:!0,trackableFiles:c,uploadedFraction:(g-b)/g}}async _getAllPathNames(e,n,i){let s=await Uu(ht.file(e),ht.file(n),new qo(i),this._fileExtensions);return await bx(ht.file(e),ht.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=ut(e,c),h=await this._pathHandler.readText(u);if(h.type!=="text")continue;let g=this._pathHandler.calculateBlobName(c,h.contents);i.push(g)}return i}};var el=class t extends yt{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=Oe("UnknownBlobHandler"),this._toProbe=new jn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new jn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new hi(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new jn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new hi(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,h]=n;if(this._workspaceManager.getBlobName(h.qualifiedPath)!==u||(this._currentBatch.set(u,h),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,h]of i)this._addRetryWaiter(u,h);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&qs(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),h=new Set(c.nonindexedBlobNames);for(let[g,b]of i)u.has(g)?this._workspaceManager.notifyBlobMissing(b.qualifiedPath,g):h.has(g)&&this._addRetryWaiter(g,b)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(E)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(nr(this.folderRoot,n))return Es(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},vg=class extends yt{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var tM=new Set(["home directory","too large"]),nM=new Set(["nested"]);function Bs(t){return tM.has(t)}function vx(t){return nM.has(t)}function ir(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var tl=class t extends yt{constructor(n,i,s,c,u,h,g=new Array,b){super();this._storageUriProvider=n;this._apiServer=i;this._featureFlagManager=s;this._completionServer=c;this._maxUploadSizeBytes=u;this._workspaceFolders=h;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let y=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=y*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new Ve),this._folderSyncedEmitter=this.addDisposable(new Ve),this._syncingProgressEmitter=this.addDisposable(new Ve),this._syncingStateEmitter=this.addDisposable(new Ve),this._sourceFoldersChangedEmitter=this.addDisposable(new Ve),this._sourceFolderContentsChangedEmitter=this.addDisposable(new Ve),this._sourceFolderContentsChangedEmitter=this.addDisposable(new Ve),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let F=new Set;for(let E of g)for(let L of E.extensions)F.add(L);this._fileExtensions=F}this._pathHandler=new Xu(this._maxUploadSizeBytes,HP()),this._pathMap=this.addDisposable(new Yu);let T=b?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Hu(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,T)),this._unknownBlobHandler=this.addDisposable(new el(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new $u(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Zu(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(new Nr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new Ms(".gitignore"),new qu(n),new Ms(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new fi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_pathHandler;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=Oe("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=ir(i);return Bs(s)||vx(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ks(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=ir(i);return Bs(s)||vx(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ks(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=ir(s);if(Bs(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?ux(n):!1}_registerInitialSourceFolders(){let n=new Array;this._workspaceFolders?.forEach(s=>{let c=_x(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;this._workspaceFolders?.forEach(s=>{let c=s.name,u=_x(s.uri);if(u===void 0)return;let h="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${h}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:h,workspaceFolder:s}),h==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Ju(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=ir(i);Bs(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=ir(n);Bs(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(ir(s)==="trackable"){for(let[u,h]of this._registeredSourceFolders)if(ir(h)==="trackable"&&i!==u&&nr(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&nr(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)ir(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,h;if(this._enableFileLimitsForSyncingPermission){h="full",this._logger.info(`Beginning ${h} qualification of source folder ${n}`);let b=new Ni;if(i.cancel=b,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),b.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,b.dispose()}else h="phony",this._logger.info(`Beginning ${h} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let g={...u,repoRoot:s,isRepo:c};i.folderQualification=g,g.trackable?(this._logger.info(`Finished ${h} qualification of source folder ${n}: trackable files: ${g.trackableFiles}, uploaded fraction: ${g.uploadedFraction}, is repo: ${g.isRepo}`),g.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!g.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):g.uploadedFractionu._newlyTracked=!1});let T=await this._refreshSourceFolder(u,s);if(T===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let F=this._pathMap.onDidChangePathStatus(g);if(F===void 0)return;u.addDisposable(F(L=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let E=new Qu(h,u.cacheDirPath);this._pathMap.enablePersist(g,E,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,T)}finally{y.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new tr,h=new tr,g=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[b,y]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let T=this._pathMap.openSourceFolder(n,b);u.add(new Nr(()=>this._pathMap.closeSourceFolder(T)));let F=new Gu(c,this._apiServer,this._pathHandler,this._pathMap);u.add(F);let E=void 0,L=await this._migrateMtimeCache(n,i);return new _g(c,n,b,g,E,T,F,L,u,h,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Ju(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Ju(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await hx(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${De(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=GP(t._textEncoder.encode(n));return ut(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${De(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${De(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new tr,c=await Uu(ht.file(n.folderRoot),ht.file(n.repoRoot),new qo(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new vg(c,u,s)}_createPathNotifier(n,i){let s=new Ku(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await Au(n,t.augmentRootName),i===void 0&&(i=(await lx(n))?.root),i!==void 0?[wx(i),!0]:[n,!1]}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,h]=c,g={folderId:u.folderId,relPath:h,beginOffset:i,endOffset:s}}getContext(){if(this._pathMap===void 0)return Uo.empty();let n={folderMap:new Map,recentChunks:[]},i=new Set,s=new Map,c=new Map;for(let[E,L]of n.folderMap){let B=this._pathMap.getRepoRoot(E);B!==void 0&&c.set(B,L);for(let[$,X]of L){i.add(X);let D=this._pathMap.getBlobName(E,$);D!==void 0&&D!==X&&s.set(D,(s.get(D)??0)+1)}}let u=new Set;for(let[E,L]of s)i.has(E)||L===this._pathMap.getUniquePathCount(E)&&u.add(E);let h=new Array;for(let E of n.recentChunks);let g=this._blobsCheckpointManager,b=g!==void 0&&this._useCheckpointManagerContext,y=b&&this._validateCheckpointManagerContext,T;if(!b||y){let E=new Set(i);for(let[$,X,D,x,O]of this._pathMap.pathsWithBlobNames())n.folderMap.get($)?.has(D)||E.add(O);let L=Array.from(E),B=this._blobNamesToBlobs(L);if(T=new Uo(B,h,c,this._lastChatResponse,L),!b)return T}let F=g.getContextAdjusted(i,u);return T!==void 0&&(g.validateMatching(T.blobs,F)||this._logger.error("blob context mismatch")),new Uo(F,h,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,h]of n.trackedPaths)if(u!==void 0)for(let[g,b]of h)s.has(b)&&(c.push([b,new rr(u,g)]),s.delete(b));for(let u of s){let h=this._pathMap.getAnyPathName(u);h!==void 0&&c.push([u,h])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}this._getSourceFolder(n.rootPath)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:No(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new rr(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:No(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:No(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new rr("",i);let[c,u]=s;return new rr(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let h=n.tracker?.pathFilter;if(h===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,h))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,h]=c;h.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=ht.file(n.repoRoot),u=new Oo(n.folderName,vt.joinPath(c,i),c,s);for await(let[h,g,b,y]of u)this._handlePathFound(n,g,b,y)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))Fs(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_emitFileNotification(n,i,s){}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>ir(i)==="trackable").map(([n,i])=>({folderRoot:n}))}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var nl=class extends yt{constructor(n,i,s,c,u,h,g){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._featureFlagManager=u;this._workspaceFolders=h;this._initialModelConfig=g;this._completionAcceptanceReporter=new Du(s),this._completionsModel=new ku(this,this._augmentConfigListener)}_completionServer=void 0;workspaceManager=void 0;_enableCancel;_modelInfo;get modelInfo(){return this._modelInfo}_completionAcceptanceReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=Oe("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Ni;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${De(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){(0,Px.assert)(!this.enabled);let i=this._workspaceFolders.map((u,h)=>({uri:ht.parse(u.uri),name:u.name,index:h}));if(this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let s;try{if(s=this._initialModelConfig,s.models.length===0)throw new So;let u=s.defaultModel;if(this._modelInfo=s.models.find(h=>[h.name,h.internalName].includes(u)||h.name===(0,xx.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new xo(u)}catch(u){let h=De(u);throw this._logger.error(`Failed to get model config: ${h}`),u}this._completionServer=new Su(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let c=this._featureFlagManager.currentFlags.maxUploadSizeBytes;this.workspaceManager=new tl(this._extensionContext,this._apiServer,this._featureFlagManager,this._completionServer,c,i),this.disposeOnDisable.push(this.workspaceManager);{let u=[this._completionAcceptanceReporter];for(let h of u)h.enableUpload(),this.disposeOnDisable.push(h)}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function Sx(t){let e=t.get("sessionId");return(e===void 0||!mh(e))&&(e=vs(),t.update("sessionId",e)),e}var Tn=(0,Me.createConnection)(),Pg=new Me.TextDocuments(Na),Tx,rM=".config/augment/api_token",wg="https://staging-shard-0.api.augmentcode.com/",iM={clientID:"augment-vim-extension",url:"https://auth.augmentcode.com"},oM=process.env.TEST_TMPDIR?Us.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Us.join(Rx.default.homedir(),".local","share"),Dx=Us.join(oM,"vim-augment"),Cx=Us.join(process.env.HOME||"~",rM),yg=il.existsSync(Cx)?il.readFileSync(Cx,"utf8").trim():null,me=Oe("server"),rl={apiToken:yg??"",completionURL:yg?wg:"",chat:{url:yg?wg:""},modelName:"",enableUpload:!1,enableDebugFeatures:!1,oauth:iM,completions:{}},$o,xg,or,kx=new eu,tn;async function Ix(t,e){if(await or.initState(),!or.isLoggedIn)throw new Error("Not logged in. Please login first.");let n=await $o.getModelConfig();if(n.models.length===0)throw new So;me.debug(`Received modelConfig: ${JSON.stringify(n,null,2)}`);let i=rl.modelName||n.defaultModel,s=n.models.find(u=>u.name===n.defaultModel);if(s===void 0)throw new xo(i);s.name=i,kx.update(n.featureFlags);let c=new vu;return new nl(t,c,$o,or,kx,e,n)}Tn.onInitialize(async t=>{me.info("Initializing Language Server"),Tx=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;me.info(`User agent: ${s}`);let c=t.workspaceFolders??[];me.info(`Roots: ${JSON.stringify(c)}`);for(let y of c)me.info(`Root name, URI: ${y.name}, ${y.uri}`);let u;try{u=new Eo(ht.file(Dx))}catch(y){throw me.error(`Error initializing server context storage: ${De(y)}`),y}or=new wu(u,rl);let h=new Iu(u),g=Sx(h);me.info(`Session ID: ${g}`),$o=new pu(rl,or,g,s,global.fetch),xg=new xu(u,rl,$o,or);let b={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Me.TextDocumentSyncKind.Incremental}};try{tn=await Ix(u,c),await tn.enable(),me.info("Initialized completion server")}catch(y){me.error(`Error initializing completion server: ${De(y)}`)}return b});Tn.onInitialized(()=>{me.info("Language server initialized")});Tn.onCompletion(async t=>{let e=Pg.get(t.textDocument.uri);if(!e)return me.warn(`Not tracking the document ${t.textDocument.uri}`),new Me.ResponseError(Me.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(tn?.completionServer===void 0)return me.warn("Completion server is not initialized."),new Me.ResponseError(Me.ErrorCodes.InternalError,"Completion server is not initialized");if(!or.isLoggedIn)return me.warn("Not logged in. Please login first."),new Me.ResponseError(Me.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new hu(e),i=await tn.completionsModel.generateCompletion(n,t.position);return me.info(`Completion: ${i?.requestId}`),me.debug(`Completion result: ${JSON.stringify(i)}`),[{label:i?.requestId??"",insertText:i?.completions[0]?.completionText??""}]}catch(n){return me.error(`Error getting completion: ${De(n)}`),new Me.ResponseError(Me.ErrorCodes.InternalError,`Error getting completion: ${De(n)}`)}});Tn.onRequest("augment/login",async()=>{try{return or.isLoggedIn?(me.info("Already logged in"),{loggedIn:!0,url:""}):(me.info("Logging in..."),{loggedIn:!1,url:await xg.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=De(t);return me.error(`Error handling augment/login: ${n}`),me.error(`Stack trace: ${e}`),new Me.ResponseError(Me.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});Tn.onRequest("augment/logout",async()=>{try{return await or.removeSession(),tn?.disable(),me.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=De(t);return me.error(`Error handling augment/logout: ${n}`),me.error(`Stack trace: ${e}`),new Me.ResponseError(Me.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});Tn.onRequest("augment/token",async t=>{try{if(await xg.handleAuthJson(t.code),!tn){let e=new Eo(ht.file(Dx)),n=Tx?.workspaceFolders??[];tn=await Ix(e,n),me.info("Initialized completion server")}return await tn.enable(),me.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=De(e);return me.error(`Error creating completion server: ${i}`),me.error(`Stack trace: ${n}`),new Me.ResponseError(Me.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});Tn.onRequest("augment/status",()=>{let t=!!or.isLoggedIn,e;if(tn?.workspaceManager){let n=0,i=0,s=tn.workspaceManager.getSyncingProgress();for(let c of s)c.progress&&c.progress.newlyTracked&&(me.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),n+=c.progress.trackedFiles,i+=c.progress.trackedFiles-c.progress.backlogSize);e=n>0?Math.floor(i/n*100):100}return{loggedIn:t,syncPercentage:e}});Tn.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Pg.get(e);if(n||me.warn(`Not tracking the document ${e}`),tn?.completionServer===void 0)return me.warn("Completion server is not initialized."),new Me.ResponseError(Me.ErrorCodes.InternalError,"Completion server is not initialized");if(!or.isLoggedIn)return me.warn("Not logged in. Please login first."),new Me.ResponseError(Me.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,h=c.length-s,g=c.slice(Math.max(0,s-u),s),b=c.slice(s,s+h),y=tn.completionServer.createRequestId();me.info(`Chat (${y}) requested`),n&&(me.debug(`Document URI: ${n.uri}`),me.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&me.debug(`Selected text: ${t.selectedText}`);let F=tn?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]};if(t.partialResultToken===void 0){me.info("No partialResultToken provided. Sending full response.");try{let E=await $o.chat(y,t.message,[],F,[],[],void 0,[],void 0,t.selectedText,g,b,n?.uri,n?.languageId);return me.debug(`Chat result: ${JSON.stringify(E)}`),{label:y,text:E.text}}catch(E){return me.error(`Error getting chat: ${De(E)}`),new Me.ResponseError(Me.ErrorCodes.InternalError,`Error getting chat: ${De(E)}`)}}me.info(`PartialResultToken provided: ${t.partialResultToken}`);try{let E=await $o.chatStream(y,t.message,[],F,[],[],void 0,[],void 0,t.selectedText,g,b,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of E)me.debug(`Chat chunk for ${y}: ${L.text}`),await Tn.sendNotification("augment/chatChunk",{token:t.partialResultToken,value:{label:y,text:L.text}})}catch(E){return me.error(`Error streaming chat: ${De(E)}`),new Me.ResponseError(Me.ErrorCodes.InternalError,`Error streaming chat: ${De(E)}`)}return{label:y,text:""}});var sM="https://api.github.com/repos/augmentcode/augment.vim/tags?per_page=1";Tn.onRequest("augment/pluginVersion",async()=>{try{let t=await fetch(sM);if(!t.ok)return me.error(`Failed to fetch version: ${t.statusText}`),new Me.ResponseError(Me.ErrorCodes.InternalError,`Failed to fetch plugin version: ${t.statusText}`);let e=await t.json();return Array.isArray(e)&&e.length>0&&typeof e[0].name=="string"?{version:e[0].name}:new Me.ResponseError(Me.ErrorCodes.InternalError,"No version tags found for plugin")}catch(t){return me.error(`Error fetching version: ${De(t)}`),new Me.ResponseError(Me.ErrorCodes.InternalError,`Failed to fetch plugin version: ${De(t)}`)}});Tn.onNotification("augment/resolveCompletion",t=>{if(me.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),tn?.completionReporter===void 0){me.warn("Completion reporter is not yet initialized.");return}tn.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});Pg.listen(Tn);Tn.listen();me.info("Language server started");0&&(module.exports={API_ENDPOINT}); +`+o}};var wT=kt(require("os"));function PT(e){let t=wT.default.homedir();return _l(e,t)}var fa=kt(require("node:path"));async function Cl(e,t,n,i){let o=await n.build(e,t),c=new Map;c.set("",o),c.set(".",o);let u=200,f=Date.now(),g=[];g.push([e,o]);let b;for(;(b=g.pop())!==void 0;){Date.now()-f>=u&&(await new Promise(W=>setTimeout(W,0)),f=Date.now());let[k,I]=b,M=$r(t,k),N=ea(k.fsPath),B=await I.buildAtop(k,N);B!==I&&c.set(M,B);for(let[W,X]of N){if(Date.now()-f>=u&&(await new Promise(_e=>setTimeout(_e,0)),f=Date.now()),W==="."||W===".."||X!=="Directory")continue;let P=Tt.joinPath(k,W),U=tt(M,W,!0);B.getPathInfo(U).accepted&&g.push([P,B])}}return new mp(c,i)}var es=class{constructor(t,n,i,o){this._name=t;this._startUri=n;this._rootUri=i;this._pathFilter=o;if(!fa.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!fa.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Yt(i),Yt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Yt(this._startUri)} must be inside rootUri ${Yt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new Zo("Path metrics");_logger=Ie("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let t=200,n=Date.now(),i=new Array;i.push(this._startUri);let o;for(;(o=i.pop())!==void 0;){Date.now()-n>=t&&(await new Promise(b=>setTimeout(b,0)),n=Date.now());let u=$r(this._rootUri,o),f=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let g=ea(o.fsPath);this._readDirMs.stop();for(let[b,x]of g){if(Date.now()-n>=t&&(await new Promise(W=>setTimeout(W,0)),n=Date.now()),b==="."||b==="..")continue;this._filterMs.start();let I=Tt.joinPath(o,b),M=tt(u,b,x==="Directory"),N=f.getPathInfo(M,x);this._filterMs.stop();let B=M;x==="File"?this._filesEmitted.increment():x==="Directory"?(B=Xo(M),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[I,B,x,N],this._yieldMs.stop(),x==="Directory"&&N.accepted&&i.push(I)}}this._totalMs.stop()}},pp=class extends mi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},Sl=class{_fileExtensions;constructor(t){if(t){this._fileExtensions=new Set;for(let n of t)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(t,n="File"){return this.getPathInfo(t,n).accepted}getPathInfo(t,n="File"){if(n==="File"){let o=fa.extname(t);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(o.toLowerCase()))return new pp(o)}else n==="Directory"&&!t.endsWith("/")&&(t+="/");let i=this._getIgnoreStack(bl(t));return i===void 0?new bi:i.getPathInfo(t)}},mp=class extends Sl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new bp(i,this._fileExtensions)}_getIgnoreStack(n){if(_T(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let o=0;o<1e4;o++){let c=this._ignorePathMap.get(i);if(c)return c;if(bl(i)===i)return;i=bl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},bp=class extends Sl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var kl=class e{static defaultStartSeq=1e4;_next;constructor(t=e.defaultStartSeq){this._next=t}next(){return this._next++}};var _p=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Rl=class e extends mt{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new _p;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(e._disposedError):this._execute())),this._kickPromise)}};var vp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(t){this._items.delete(t)}_insert(t,n,i=!1){let o=this._items.has(t);return!i&&o?!1:(this._items.set(t,n),!o)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let t=this._items;this._items=new Map;for(let n of t){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends vp{constructor(n){super();this._processItem=n}insert(n,i,o=!1){return this._insert(n,i,o)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},Tl=class{constructor(t){this._processItem=t}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(t){return this._keys.has(t)?!1:(this._keys.add(t),this._items.push(t),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let t=this._items;this._keys.clear(),this._items=new Array;for(let n of t){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},_i=class{constructor(t,n){this._toKick=t;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var W2=Object.freeze({git:{name:".git",type:"Directory"}});async function ST(e){for(let[t,n]of Object.entries(W2)){let i=await vl(e,n.name,n.type);if(i!==void 0)return{root:i,toolName:t}}}var ha=class extends Error{constructor(n,i){let o=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${o}, retry = ${i}`);this.toThrow=n;this.retry=i}},yp=class{throwError(t,n){throw new ha(t,n)}},xp=class{progressReporter;completedItems=0;totalItems;constructor(t,n){this.progressReporter=t,this.totalItems=n,this.update(0,this.totalItems)}update(t,n){this.completedItems+=t,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},wp=class{constructor(t,n){this.item=t;this.process=n}itemCount(){return 1}start(t){return this.process(this.item,t)}},Pp=class{constructor(t,n){this.items=t;this.process=n}itemCount(){return this.items.size}start(t){return this.process(this.items,t)}},Dl=class{queue=new Set;get size(){return this.queue.size}add(t){this.queue.add(t)}delete(t){this.queue.delete(t)}},Sp=class extends Dl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new wp(i,this.process)}},Cp=class extends Dl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let o=0;o{let u=[];function f(){for(let g of u)g.dispose()}u.push(this.eventEmitters[e.queueStatusChanged].event(()=>{f(),this.stopping?c(this.shutdownError):o()})),n&&u.push(this.eventEmitters[e.itemFailed].event(g=>{f(),c(g)}))}))}update(t=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=t;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(t,n)}}notifyStatusChanged(){this.eventEmitters[e.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(t){let n=t instanceof ha?t.toThrow:t;this.eventEmitters[e.itemFailed].fire(n)}delay(t){return new Promise(n=>setTimeout(n,t))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let t=this.queue.dequeue();this.itemsInProgress=t.itemCount();let n=0,i=0;do{try{await t.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(o){if(this.notifyItemFailed(o),!(o instanceof ha&&o.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function ts(e,t){let n=new Set(t);return e.filter(i=>!n.has(i))}var Il=class e extends mt{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new De;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(t,n,i,o){super(),this._logger=Ie("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=t,this._featureFlagManager=n,this._checkpointThreshold=o??e.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new El("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(t){let n=this._checkpointBlobNames.get(t);n!==void 0?(this._checkpointBlobNames.set(t,n+1),n===0&&this._toRemove.delete(t)):this._toAdd.set(t,(this._toAdd.get(t)??0)+1)}derefBlob(t){!this.derefFromCheckpoint(t)&&!this.derefFromAdded(t)&&this._logger.error(`derefBlob: blob ${t} not found in checkpoint or toAdd`)}derefFromCheckpoint(t){let n=this._checkpointBlobNames.get(t);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${t} has reference count ${n}. In toRemove? ${this._toRemove.has(t)}`),!1):(this._checkpointBlobNames.set(t,n-1),n===1&&this._toRemove.add(t),!0)}derefFromAdded(t){let n=this._toAdd.get(t);return n===void 0?!1:n<=1?(this._toAdd.delete(t),n===1):(this._toAdd.set(t,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(t,n){let i=new Set(this._toAdd.keys()),o=new Set(this._toRemove);for(let c of t)this._checkpointBlobNames.has(c)||i.add(c),o.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&o.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(o)}}blobsPayload(t){let n=this.getCheckpointedBlobNames(),i=ts(t,n),o=ts(n,t);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:o}}expandBlobs(t){if(t.checkpointId===void 0)return t.addedBlobs;if(t.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${t.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...t.addedBlobs),t.deletedBlobs.length>0){let i=new Set(t.deletedBlobs);return n.filter(o=>!i.has(o))}return n}validateMatching(t,n,i=!1){if(t.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${t.checkpointId} vs ${n.checkpointId}`),!1;let o=!0,c=ts(t.addedBlobs,n.addedBlobs),u=ts(n.addedBlobs,t.addedBlobs);return(c.length>0||u.length>0)&&(o=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=ts(t.deletedBlobs,n.deletedBlobs),u=ts(n.deletedBlobs,t.deletedBlobs),(c.length>0||u.length>0)&&(o=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),o}updateBlob(t,n,i){this._logger.verbose(`notifyBlobChange ${t}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[t,n]of this._checkpointBlobNames)n>0?this._toAdd.set(t,n):this._toRemove.delete(t)||this._logger.warn(`blob with 0 references was not found in toRemove: ${t}`);for(let t of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${t}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(t,n){let{checkpointId:i,addedBlobs:o,deletedBlobs:c}=t;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${o.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(t)}catch(f){let g=f instanceof Error?f.message:`${f}`,b=this._checkpointId?this._checkpointId:"{initial}";Nt.isAPIErrorWithStatus(f,5)?(this._logger.warn(`checkpoint-blobs from ${b} failed with invalid argument: ${g}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(f,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${g}.`),n.throwError(f,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let f of o){let g=this._toAdd.get(f);g===void 0?(this._checkpointBlobNames.set(f,0),this._toRemove.add(f)):(this._checkpointBlobNames.set(f,g),this._toAdd.delete(f))}for(let f of c){let g=this._checkpointBlobNames.get(f);g===void 0?this._logger.warn(`In _checkpoint: deleted blob ${f} not found in checkpoint`):g>0&&this._toAdd.set(f,g),this._checkpointBlobNames.delete(f),this._toRemove.delete(f)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let t=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:t,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function ga(e,t,n,i){let o=0;for(let c of n)if(e.log(t,` ${c}`),o++,i!==void 0&&o>=i){e.log(t," ...");break}}var CT=kt(require("crypto")),ma=2023102300,pa=class extends Error{constructor(t){super(`content exceeds maximum size of ${t}`)}},Fl=class{constructor(t){this.maxBlobSize=t}_textEncoder=new TextEncoder;_hash(t,n){let i=CT.createHash("sha256");return i.update(t),i.update(n),i.digest("hex")}calculateOrThrow(t,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new pa(this.maxBlobSize);return this._hash(t,n)}calculate(t,n){try{return this.calculateOrThrow(t,n,!0)}catch{return}}calculateNoThrow(t,n){return this.calculateOrThrow(t,n,!1)}};var kp=class{constructor(t,n){this.maxItems=t;this.maxByteSize=n}items=new Map;byteSize=0;addItem(t,n){let i=this.items.get(t);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(t,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},Rp=class{constructor(t){this.maxItemCount=t}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(t,n){if(this.items.has(t))return!1;this.items.set(t,n)}},Al=class e extends mt{constructor(n,i,o,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=o;this._pathMap=c;this._logger=Ie(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=e.maxProbeBatchSize:(ue.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${e.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,e.maxProbeBatchSize),e.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new _i(this._probeRetryWaiters,e.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new _i(this._probeRetryBackoffWaiters,e.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new De;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new De;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new Zo("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=vT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return oa(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let o=this._pathMap.getRepoRoot(n);if(o!==void 0)return tt(o,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,o,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,o,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,o,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,o,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,o,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,o,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,o,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,o,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,o,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof pa){this._largeFiles.increment();let f=this._fileTooLargeString(i.length);this._pathMapInvalidate(o,n,c,f)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(o,n,c,Ee(u));return}}async _calculate(n){if(n===void 0)return;let[i,[o,c]]=n;if(!this._pathMapVerify(o,c,i))return;let u=this._makeAbsPath(o,c);if(u===void 0){this._inflightItemRemove(i);return}let f=this._getMtime(u,o,c,i);if(f===void 0)return;let g,b=this._pathMap.getBlobInfo(o,c,f);if(b!==void 0){this._mtimeCacheHits.increment();let[k,I]=b;if(I>0){this._pathMapUpdate(o,c,i,k,f);return}g=k}else{let k=await this._readAndValidate(u,o,c,i);if(k===void 0||(this._mtimeCacheMisses.increment(),g=this._calculateBlobName(c,k,o,i),g===void 0))return}this._pathsAccepted.increment();let x={folderId:o,relPath:c,blobName:g,mtime:f,startTime:Date.now()};this._enqueueForProbeRetry(i,x)}_newProbeBatch(){return new Rp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,f]=n;if(!this._pathMapVerify(f.folderId,f.relPath,u)||(this._probeBatch.addItem(u,f),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let o=new Set;for(let[u,f]of i.items)o.add(f.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${o.size} blobs`),this._probeMs.start();let c;try{c=await yr(async()=>this._apiServer.findMissing([...o]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),ga(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),ga(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),f=new Set(c.nonindexedBlobNames),g=this._beginUploadBatch();for(let[b,x]of i.items)this._pathMapVerify(x.folderId,x.relPath,b)&&(u.has(x.blobName)?this._enqueueForUpload(b,x.folderId,x.relPath,!1):f.has(x.blobName)?this._enqueueForProbeRetry(b,x):this._pathMapUpdate(x.folderId,x.relPath,b,x.blobName,x.mtime));g.dispose()}else for(let[u,f]of i.items)this._enqueueForProbeRetry(u,f)}_newUploadBatch(){return new kp(e.maxUploadBatchBlobCount,e.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[f,{seq:g,folderId:b,relPath:x}]=n;if(!this._pathMapVerify(b,x,g))return;let k=this._getMtime(f,b,x,g);if(k===void 0)return;let I=await this._readAndValidate(f,b,x,g);if(I===void 0)return;let M=this._calculateBlobName(x,I,b,g);if(M===void 0)return;let N;try{N=this._textDecoder.decode(I)}catch(W){this._pathMapInvalidate(b,x,g,Ee(W)),this._encodingErrors.increment();return}let B={seq:g,folderId:b,pathName:x,text:N,blobName:M,mtime:k,byteSize:I.length,metadata:[]};if(this._uploadBatch.addItem(M,B))return;i=B}let o=this._grabUploadBatch();if(o===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${o.items.size} blobs`);let c=new Array;for(let[f,g]of o.items)c.push(g[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[f,g]of o.items){let b=u.get(f);if(b===void 0)for(let x of g)this._pathMapInvalidate(x.folderId,x.pathName,x.seq,this._fileUploadFailure);else for(let x of g){let k={folderId:x.folderId,relPath:x.pathName,blobName:b,mtime:x.mtime,startTime:Date.now()};this._enqueueForProbeRetry(x.seq,k)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await yr(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Ee(c)}`)}let o=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let f=await yr(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);o.set(u.blobName,f.blobName)}catch{}}}_inflightItemAdd(n,i,o){this._itemsInFlight.set(n,[i,o])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,o){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(o),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=o?(this._inflightItemRemove(o),!1):!0}_pathMapUpdate(n,i,o,c,u){this._inflightItemRemove(o),this._pathMap.update(n,i,o,c,u)}_pathMapInvalidate(n,i,o,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,o,c),this._inflightItemRemove(o),this._pathMap.markUntrackable(n,i,o,c)}_enqueueForCalculate(n,i){let o=this._nextSeq();this._inflightItemAdd(o,n,i),this._toCalculate.insert(o,[n,i])?this._toCalculate.kick():this._inflightItemRemove(o)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,o]=n;this._logger.verbose(`probe enqueue ${o.blobName} -> ${i}, ${o.folderId}:${o.relPath}`),this._toProbe.insert(i,o)}return Promise.resolve()}_beginUploadBatch(){return new Or(()=>this._toUpload.kick())}_enqueueForUpload(n,i,o,c=!0){this._logger.verbose(`upload enqueue ${i}:${o} -> ${n}`);let u=this._makeAbsPath(i,o);if(u===void 0){this._inflightItemRemove(n);return}let f=this._toUpload.get(u);if(f!==void 0){let g=f.seq;if(g>n)this._inflightItemRemove(g);else if(g ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var Wr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},Tp=class{constructor(t=ma){this.namingVersion=t}entries=new Array};function z2(e){if(!(e.mtime===void 0||typeof e.mtime!="number"||!e.mtime)&&!(e.name===void 0||typeof e.name!="string"||!e.name))return{mtime:e.mtime,name:e.name}}function H2(e){return tt(e,Wr.cacheFileName)}function Nl(e){let t=H2(e);return VR(t)}async function RT(e,t){let n=tt(e,Wr.cacheFileName),i=tt(t,Wr.cacheFileName);await ta(t),await jg(n,i)}async function TT(e,t){let n=new Map,i=Ie(`MtimeCache[${e}]`),o=tt(t,Wr.cacheFileName);i.info(`reading blob name cache from ${o}`);try{let c=0,u=await Vo(o),f=JSON.parse(u);if(f.namingVersion===void 0||f.namingVersion!==ma)i.info(`blob naming version ${f.namingVersion} !== ${ma}`);else if(Array.isArray(f.entries))for(let[g,b]of f.entries){let x=z2(b);x!==void 0&&(n.set(g,{mtime:x.mtime,name:x.name}),c++)}i.info(`read ${c} entries from ${o}`)}catch(c){let u=Ee(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${o} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${o}: ${u}`)}return n}var Ml=class extends Wr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=tt(this._cacheDirName,Wr.cacheFileName),this._tmpFileName=tt(this._cacheDirName,Wr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=Ie("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new Tp;for(let[o,c,u]of n)i.entries.push([o,{mtime:c,name:u}]);await ta(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await jg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${ma} to ${this._cacheFileName}`)}};var DT=require("node:buffer");var ql=class{constructor(t,n){this._fileReader=n;this._blobNameCalculator=new Fl(t)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(t){let n=this._fileReader.stat(t);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(t){let n;try{if(n=await this._fileReader.read(t),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,DT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(t,n){return this._blobNameCalculator.calculateOrThrow(t,n)}};var sr=class e{constructor(t,n){this.rootPath=t;this.relPath=n}static from(t){return new e(t.rootPath,t.relPath)}get absPath(){return tt(this.rootPath,this.relPath)}equals(t){return e.equals(this,t)}static equals(t,n){if(t===n)return!0;if(t==null||n==null)return!1;let i=ET(t)?tt(t.rootPath,t.relPath):t.fsPath,o=ET(n)?tt(n.rootPath,n.relPath):n.fsPath;return i===o}};function ET(e){return e!=null&&typeof e=="object"&&("rootPath"in e||"relPath"in e)}var Ll=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new De;_nextEntryTS=1e3;_logger=Ie("PathMap");constructor(){}dispose(){for(let[t,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(t){return this._sourceFolders.get(t)?.onDidChangePathStatus}openSourceFolder(t,n){for(let[u,f]of this._sourceFolders){if(_l(f.folderRoot,t))throw new Error(`Source folder ${t} is already open`);if(or(t,f.folderRoot))throw new Error(`Source folder ${t} contains ${f.folderRoot}`);if(or(f.folderRoot,t))throw new Error(`Source folder ${f.folderRoot} contains ${t}`)}let i=this._nextFolderId++,o=new Dp(t,n);this._sourceFolders.set(i,o);let c=o.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return o.addDisposable(c),this._logger.info(`Opened source folder ${t} with id ${i}`),i}closeSourceFolder(t){let n=this._sourceFolders.get(t);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(t),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${t}`)}_handleBlobNameChangeEvent(t){this._blobNameChangedEmitter.fire(t)}getRepoRoot(t){return this._sourceFolders.get(t)?.repoRoot}hasFile(t,n){return this._sourceFolders.get(t)?.hasFile(n)??!1}getBlobName(t,n){return this._sourceFolders.get(t)?.getBlobName(n)}getBlobInfo(t,n,i){return this._sourceFolders.get(t)?.getBlobInfo(n,i)}getAnyPathName(t){for(let n of this._sourceFolders.values()){let i=n.getPathName(t);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(t){let n=new Array;for(let i of this._sourceFolders.values()){let o=i.getPathName(t);o!==void 0&&n.push(new sr(i.repoRoot,o))}return n}getUniquePathCount(t){let n=0;for(let i of this._sourceFolders.values())i.getPathName(t)!==void 0&&n++;return n}getAllQualifiedPathNames(t){return this.getAllQualifiedPathInfos(t).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(t){let n=new Array;for(let i of this._sourceFolders.values()){let o=i.getPathInfo(t);if(o!==void 0){let[c,u]=o;n.push({qualifiedPathName:new sr(i.repoRoot,t),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(t){let n=new Array;for(let i of this._sourceFolders.values()){let o=i.getPathName(t);o!==void 0&&n.push([i.folderRoot,i.repoRoot,o])}return n}getPathInfo(t,n){return this._sourceFolders.get(t)?.getPathInfo(n)}reportMissing(t){for(let n of this._sourceFolders.values()){let i=n.reportMissing(t);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(t,n,i,o){let c=this._nextEntryTS++;this._sourceFolders.get(t)?.insert(n,c,i,o)}remove(t,n){this._sourceFolders.get(t)?.remove(n)}shouldTrack(t,n){return this._sourceFolders.get(t)?.shouldTrack(n)??!1}getContentSeq(t,n){return this._sourceFolders.get(t)?.getContentSeq(n)}update(t,n,i,o,c){this._sourceFolders.get(t)?.update(n,i,o,c)}markUntrackable(t,n,i,o){this._sourceFolders.get(t)?.markUntrackable(n,i,o)}purge(t,n){this._sourceFolders.get(t)?.purge(n)}*pathsWithBlobNames(){for(let[t,n]of this._sourceFolders)for(let[i,o,c]of n.pathsWithBlobNames())yield[t,n.repoRoot,i,o,c]}*pathsInFolder(t){let n=this._sourceFolders.get(t);n!==void 0&&(yield*n.allPaths())}enablePersist(t,n,i){this._sourceFolders.get(t)?.enablePersist(n,i)}_makeQualifiedPathName(t,n){return new sr(t.repoRoot,n)}trackedFileCount(t){return this._sourceFolders.get(t)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Dp=class extends mt{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new De;_blobNameChangedEmitter=new De;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,o,c){let u=this._allPathNames.get(n),f=u===void 0||u.fileType!==o||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:o,pathAcceptance:c},this._allPathNames.set(n,u);else{let g=u.fileInfo;u.entryTS=i,u.fileType=o,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,g?.trackable&&(this._blobNameToPathName.delete(g.blobName),this._publishBlobNameChange(n,g.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),f&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let o=i.fileInfo.blobName;this._blobNameToPathName.delete(o),this._publishBlobNameChange(n,o,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,o,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let f=u.fileInfo===void 0?!0:u.fileInfo.trackable,g;u.fileInfo?.trackable&&(g=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:o,mtime:c},this._trackableFilePaths.add(n),o!==g&&(g!==void 0&&this._blobNameToPathName.delete(g),this._blobNameToPathName.set(o,n),this._publishBlobNameChange(n,g,o),this._markDirty()),(!f||g===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,o){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:o},this._trackableFilePaths.delete(n);let f=!1;if(u===void 0)f=!0;else if(u.trackable===!0){f=!0;let g=u.blobName;this._blobNameToPathName.delete(g),this._publishBlobNameChange(n,g,void 0),this._markDirty()}else f=o!==u.reason;f&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return tt(this.repoRoot,n)}_publishBlobNameChange(n,i,o){i!==o&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:o})}purge(n){let i=new Array;for(let[o,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(o)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[f,g]of u){let b=g.fileInfo;b?.trackable&&(yield[f,b.mtime,b.blobName])}},o=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=o}};var Ol=require("fs");var Ep=class{_onDidCreate=new De;_onDidChange=new De;_onDidDelete=new De;logger=Ie("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(t){this.workspaceFolder=t;let n={recursive:!0,persistent:!0};this.watcher=(0,Ol.watch)(t,n,(i,o)=>this.listener(i,o)),this.logger.info(`Filesystem watcher initialized with directory ${t}`)}listener(t,n){if(n===null)return;this.logger.info(`Received raw filesystem event: ${t} ${n}`);let i=tt(this.workspaceFolder,n);t==="rename"?this.statThenFire(i):t==="change"&&this.fireEvent(i,"change")}statThenFire(t){(0,Ol.existsSync)(t)?this.fireEvent(t,"create"):this.fireEvent(t,"delete")}fireEvent(t,n){this.logger.info(`Firing filesystem event: ${n} ${t}`),n==="create"?this._onDidCreate.fire(Ze.file(t)):n==="change"?this._onDidChange.fire(Ze.file(t)):n==="delete"&&this._onDidDelete.fire(Ze.file(t))}dispose(){this.watcher.close()}};function IT(e){return new Ep(e)}var Ip=class extends mi{constructor(n){super();this.reason=n}format(){return this.reason}},Bl=class extends mt{constructor(n,i,o,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=o;this._pathFilter=c;this._workspaceFolder=u;this._logger=Ie(`PathNotifier[${i}]`)}_pathFoundEmitter=new De;_pathCreatedEmitter=new De;_pathChangedEmitter=new De;_pathDeletedEmitter=new De;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new es(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[o,c,u,f]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:f})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let o of i)this._pathDeletedEmitter.fire(o);return n.stats}_handlePathChanged(n,i){let o=this._getRelPath(n);if(o===void 0)return;let c,u;try{c=Zs(Yt(n)).type,u=this._pathFilter.getPathInfo(o,c)}catch(g){c="Other",u=new Ip(Ee(g))}let f=i?"created":"changed";this._logger.verbose(`${c} ${f}: ${o}, acceptance = ${u.format()}`),this._deletedPaths?.delete(o),i?this._pathCreatedEmitter.fire({relPath:o,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:o,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Ko(n);if(i!==void 0)return la(this.repoRoot,i)}_createFilesystemWatcher(n){let i=IT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(o=>this._handlePathChanged(o,!0)),i.onDidChange(o=>this._handlePathChanged(o,!1)),i.onDidDelete(o=>this._handlePathDeleted(o)))}};async function FT(e,t,n,i){let o=Yt(e),c=Yt(t),u=new Array;u.push(o);let f=new Array,g=200,b=Date.now(),x;for(;(x=u.pop())!==void 0&&(i===void 0||f.length=g&&(await new Promise(B=>setTimeout(B,0)),b=Date.now());let I=$r(c,x),M=n.makeLocalPathFilter(I),N=ea(x);for(let[B,W]of N){if(Date.now()-b>=g&&(await new Promise(P=>setTimeout(P,0)),b=Date.now()),B==="."||B==="..")continue;let D=tt(I,B,W==="Directory");M.acceptsPath(D,W)&&(W==="File"?f.push(D):W==="Directory"&&u.push(tt(x,B)))}}return Promise.resolve(f)}var Ul=class e{constructor(t,n,i,o){this._apiServer=t;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=o}static verifyBatchSize=1e3;async describe(t,n,i){let o=await this._getAllPathNames(t,n,i);if(o.length>this._maxTrackedFiles)return{trackable:!1};let c=o.length,u=await this._chooseBlobNameSample(n,o);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let f=await this._apiServer.findMissing(u),g=u.length,b=Math.min(f.unknownBlobNames.length,g);return{trackable:!0,trackableFiles:c,uploadedFraction:(g-b)/g}}async _getAllPathNames(t,n,i){let o=await Cl(Ze.file(t),Ze.file(n),new Yo(i),this._fileExtensions);return await FT(Ze.file(t),Ze.file(n),o,this._maxTrackedFiles+1)}async _chooseBlobNameSample(t,n){let i=new Array;for(;i.length0;){let o=Math.floor(Math.random()*n.length),c=n[o];n[o]=n[n.length-1],n.pop();let u=tt(t,c),f=await this._pathHandler.readText(u);if(f.type!=="text")continue;let g=this._pathHandler.calculateBlobName(c,f.contents);i.push(g)}return i}};var $l=class e extends mt{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=Ie("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new _i(this._probeWaiters,e.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new _i(this._longWaiters,e.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,o]of n)this._logger.verbose(`enqueue: ${o.rootPath}:${o.relPath}`),this._toProbe.insert(i,{qualifiedPath:o,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,f]=n;if(this._workspaceManager.getBlobName(f.qualifiedPath)!==u||(this._currentBatch.set(u,f),this._currentBatch.sizethis._apiServer.findMissing(o),this._logger)}catch{}if(c===void 0)for(let[u,f]of i)this._addRetryWaiter(u,f);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&ga(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),f=new Set(c.nonindexedBlobNames);for(let[g,b]of i)u.has(g)?this._workspaceManager.notifyBlobMissing(b.qualifiedPath,g):f.has(g)&&this._addRetryWaiter(g,b)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,o]=n;this._logger.verbose(`probe enqueue: ${o.qualifiedPath.rootPath}:${o.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,o)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(M)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return ua(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Ap=class extends mt{constructor(n,i,o){super(o);this.pathFilter=n;this.pathNotifier=i}};var V2=new Set(["home directory","too large"]),G2=new Set(["nested"]);function ba(e){return V2.has(e)}function MT(e){return G2.has(e)}function ar(e){return e.containingFolderRoot!==void 0?"nested":e.isHomeDir?"home directory":e.folderQualification!==void 0&&!e.folderQualification.trackable?"too large":e.syncingPermission==="denied"?"permission denied":e.syncingPermission==="granted"?"trackable":e.folderQualification===void 0?"qualifying":"permission needed"}var Wl=class e extends mt{constructor(n,i,o,c,u,f,g=new Array,b){super();this._storageUriProvider=n;this._apiServer=i;this._featureFlagManager=o;this._completionServer=c;this._maxUploadSizeBytes=u;this._workspaceFolders=f;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let x=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=x*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new De),this._folderSyncedEmitter=this.addDisposable(new De),this._syncingProgressEmitter=this.addDisposable(new De),this._syncingStateEmitter=this.addDisposable(new De),this._sourceFoldersChangedEmitter=this.addDisposable(new De),this._sourceFolderContentsChangedEmitter=this.addDisposable(new De),this._sourceFolderContentsChangedEmitter=this.addDisposable(new De),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let I=new Set;for(let M of g)for(let N of M.extensions)I.add(N);this._fileExtensions=I}this._pathHandler=new ql(this._maxUploadSizeBytes,oT()),this._pathMap=this.addDisposable(new Ll);let k=b?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Il(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,k)),this._unknownBlobHandler=this.addDisposable(new $l(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Rl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ul(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(new Or(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new da(".gitignore"),new xl(n),new da(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new bi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new kl;_pathHandler;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=Ie("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let o=ar(i);return ba(o)||MT(o)||o==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await oa(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let o=ar(i);return ba(o)||MT(o)||o==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await oa(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,o]of this._registeredSourceFolders){let c=ar(o);if(ba(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,o)=>{n.push(this._getSyncingProgress(o,i.sourceFolder))}),n}_getSyncingProgress(n,i){let o=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:o}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?PT(n):!1}_registerInitialSourceFolders(){let n=new Array;this._workspaceFolders?.forEach(o=>{let c=AT(o.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;this._workspaceFolders?.forEach(o=>{let c=o.name,u=AT(o.uri);if(u===void 0)return;let f="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${f}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:f,workspaceFolder:o}),f==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Nl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,o)=>{let c=ar(i);ba(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(o))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=ar(n);ba(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,o]of this._registeredSourceFolders)if(ar(o)==="trackable"){for(let[u,f]of this._registeredSourceFolders)if(ar(f)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,o]of this._registeredSourceFolders){if(!n.has(i)){o.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){o.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),o.containingFolderRoot=c;break}}for(let[i,o]of this._registeredSourceFolders)ar(o)==="qualifying"&&o.cancel===void 0&&this._qualifySourceFolder(i,o);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[o,c]=await this._findRepoRoot(n),u,f;if(this._enableFileLimitsForSyncingPermission){f="full",this._logger.info(`Beginning ${f} qualification of source folder ${n}`);let b=new Br;if(i.cancel=b,u=await this._sourceFolderDescriber.describe(n,o,e.ignoreSources(n)),b.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,b.dispose()}else f="phony",this._logger.info(`Beginning ${f} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let g={...u,repoRoot:o,isRepo:c};i.folderQualification=g,g.trackable?(this._logger.info(`Finished ${f} qualification of source folder ${n}: trackable files: ${g.trackableFiles}, uploaded fraction: ${g.uploadedFraction}, is repo: ${g.isRepo}`),g.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!g.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):g.uploadedFractionu._newlyTracked=!1});let k=await this._refreshSourceFolder(u,o);if(k===void 0||u.stopped)return;o.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let I=this._pathMap.onDidChangePathStatus(g);if(I===void 0)return;u.addDisposable(I(N=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),o?.charge("await DiskFileManager quiesced");let M=new Ml(f,u.cacheDirPath);this._pathMap.enablePersist(g,M,e.pathMapPersistFrequencyMs),o.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,o,k)}finally{x.dispose()}}async _createSourceFolder(n,i,o){let c=i.folderName,u=new ir,f=new ir,g=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[b,x]=await this._findRepoRoot(n);if(o.isCancellationRequested)return;let k=this._pathMap.openSourceFolder(n,b);u.add(new Or(()=>this._pathMap.closeSourceFolder(k)));let I=new Al(c,this._apiServer,this._pathHandler,this._pathMap);u.add(I);let M=void 0,N=await this._migrateMtimeCache(n,i);return new Fp(c,n,b,g,M,k,I,N,u,f,i.logger)}async _migrateMtimeCache(n,i){let o=this._computeCacheDirPath(n);if(Nl(o))return o;let c=this._computeCacheDirPath(i.folderName);if(!Nl(c))return o;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${o}"`),await RT(c,o)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${o}": ${Ee(u)}`)}return o}_computeCacheDirPath(n){return e.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let o=Yt(i),c=aT(e._textEncoder.encode(n));return tt(o,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Ee(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let o=await this._createSourceFolderTracker(n,i);try{n.setTracker(o)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Ee(u)}`),o.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let o=n.tracker;if(o===void 0)return;let c=this._pathMap.nextEntryTS,u=await o.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let o=new ir,c=await Cl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new Yo(e.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return o.add(u),i?.charge("create PathNotifier"),new Ap(c,u,o)}_createPathNotifier(n,i){let o=new Bl(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return o.addDisposables(o.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),o.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),o.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),o.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),o}async _findRepoRoot(n){let i;return i=await vl(n,e.augmentRootName),i===void 0&&(i=(await ST(n))?.root),i!==void 0?[qT(i),!0]:[n,!1]}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,o){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,f]=c,g={folderId:u.folderId,relPath:f,beginOffset:i,endOffset:o}}getContext(){if(this._pathMap===void 0)return ns.empty();let n={folderMap:new Map,recentChunks:[]},i=new Set,o=new Map,c=new Map;for(let[M,N]of n.folderMap){let B=this._pathMap.getRepoRoot(M);B!==void 0&&c.set(B,N);for(let[W,X]of N){i.add(X);let D=this._pathMap.getBlobName(M,W);D!==void 0&&D!==X&&o.set(D,(o.get(D)??0)+1)}}let u=new Set;for(let[M,N]of o)i.has(M)||N===this._pathMap.getUniquePathCount(M)&&u.add(M);let f=new Array;for(let M of n.recentChunks);let g=this._blobsCheckpointManager,b=g!==void 0&&this._useCheckpointManagerContext,x=b&&this._validateCheckpointManagerContext,k;if(!b||x){let M=new Set(i);for(let[W,X,D,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(W)?.has(D)||M.add(U);let N=Array.from(M),B=this._blobNamesToBlobs(N);if(k=new ns(B,f,c,this._lastChatResponse,N),!b)return k}let I=g.getContextAdjusted(i,u);return k!==void 0&&(g.validateMatching(k.blobs,I)||this._logger.error("blob context mismatch")),new ns(I,f,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let o=new Set(i),c=new Array;for(let[u,f]of n.trackedPaths)if(u!==void 0)for(let[g,b]of f)o.has(b)&&(c.push([b,new sr(u,g)]),o.delete(b));for(let u of o){let f=this._pathMap.getAnyPathName(u);f!==void 0&&c.push([u,f])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let o=this._pathMap.reportMissing(i);if(o!==void 0){let u=this._getSourceFolder(o.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}this._getSourceFolder(n.rootPath)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Ko(n);if(i===void 0)return;let o=this._resolveAbsPath(i);if(o===void 0)return;let[c,u]=o;return new sr(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Ko(n);if(i===void 0)return;let o=this._resolveAbsPath(i);if(o===void 0)return;let[c,u]=o;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Ko(n);if(i===void 0)return;let o=this._resolveAbsPath(i);if(o===void 0)return new sr("",i);let[c,u]=o;return new sr(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,o]of this._trackedSourceFolders){if(o.sourceFolder===void 0)continue;let c=o.sourceFolder.relativePathName(n);if(c!==void 0)return[o.sourceFolder,c]}}hasFile(n){let[i,o]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||o===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,o]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||o===void 0))return this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,o,c){let u=n.folderId;this._pathMap.insert(u,i,o,c),o==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,o,c){let u=n.folderId;if(this._pathMap.insert(u,i,o,c),!!c.accepted){if(o==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(o==="Directory"){let f=n.tracker?.pathFilter;if(f===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,f))}}}_handleFileChanged(n,i,o){let c=n.folderId;this._pathMap.insert(c,i,"File",o),o.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let o=n.folderId,c=this._pathMap.getPathInfo(o,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,f]=c;f.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(o,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,o){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new es(n.folderName,Tt.joinPath(c,i),c,o);for await(let[f,g,b,x]of u)this._handlePathFound(n,g,b,x)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let o=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(o))la(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(o,u)}_emitFileNotification(n,i,o){}_reportSourceFolderStartup(n,i,o,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(o.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>ar(i)==="trackable").map(([n,i])=>({folderRoot:n}))}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let o=i.sourceFolder;if(o!==void 0&&o.initialEnumerationComplete)return o.diskFileManager.itemsInFlight}};var jl=class extends mt{constructor(n,i,o,c,u,f,g){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=o;this._auth=c;this._featureFlagManager=u;this._workspaceFolders=f;this._initialModelConfig=g;this._completionAcceptanceReporter=new gl(o),this._clientMetricsReporter=new hl(o),this._completionsModel=new dl(this,this._augmentConfigListener,this._clientMetricsReporter)}_completionServer=void 0;workspaceManager=void 0;_enableCancel;_modelInfo;get modelInfo(){return this._modelInfo}_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=Ie("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Ee(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){(0,LT.assert)(!this.enabled);let i=this._workspaceFolders.map((u,f)=>({uri:Ze.parse(u.uri),name:u.name,index:f}));if(this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let o;try{if(o=this._initialModelConfig,o.models.length===0)throw new Do;let u=o.defaultModel;if(this._modelInfo=o.models.find(f=>[f.name,f.internalName].includes(u)||f.name===(0,OT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new To(u)}catch(u){let f=Ee(u);throw this._logger.error(`Failed to get model config: ${f}`),u}this._completionServer=new ul(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let c=this._featureFlagManager.currentFlags.maxUploadSizeBytes;this.workspaceManager=new Wl(this._extensionContext,this._apiServer,this._featureFlagManager,this._completionServer,c,i),this.disposeOnDisable.push(this.workspaceManager);{let u=[this._completionAcceptanceReporter];for(let f of u)f.enableUpload(),this.disposeOnDisable.push(f)}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function BT(e){let t=e.get("sessionId");return(t===void 0||!rg(t))&&(t=Ns(),e.update("sessionId",t)),t}var En=(0,Ne.createConnection)(),Mp=new Ne.TextDocuments(hc),jT,Q2=".config/augment/api_token",J2="https://staging-shard-0.api.augmentcode.com/",X2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},K2=process.env.TEST_TMPDIR?_a.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||_a.join(WT.default.homedir(),".local","share"),zT=_a.join(K2,"vim-augment"),UT=_a.join(process.env.HOME||"~",Q2),Y2=Hl.existsSync(UT)?Hl.readFileSync(UT,"utf8").trim():"",me=Ie("server"),rs,Np,cr,$T=new tl,zt,zl=new ol;async function HT(e,t){if(await cr.initState(),!cr.isLoggedIn)throw new Error("Not logged in. Please login first.");let n=await rs.getModelConfig();if(n.models.length===0)throw new Do;me.debug(`Received modelConfig: ${JSON.stringify(n,null,2)}`);let i=n.defaultModel,o=n.models.find(c=>c.name===n.defaultModel);if(o===void 0)throw new To(i);return o.name=i,$T.update(n.featureFlags),new jl(e,zl,rs,cr,$T,t,n)}En.onInitialize(async e=>{me.info("Initializing Language Server"),jT=e;let t=e.initializationOptions?.editor??"unknown",n=e.initializationOptions?.pluginVersion??"unknown",i=e.initializationOptions?.vimVersion??"unknown",o=`Augment.vim/${n} ${t}/${i}`;me.info(`User agent: ${o}`);let c=e.workspaceFolders??[];me.info(`Roots: ${JSON.stringify(c)}`);for(let k of c)me.info(`Root name, URI: ${k.name}, ${k.uri}`);let u;try{u=new na(Ze.file(zT))}catch(k){throw me.error(`Error initializing server context storage: ${Ee(k)}`),k}cr=new sl(u,zl);let f=new pl(u),g=BT(f);me.info(`Session ID: ${g}`);let b={...zl.config,oauth:X2,apiToken:Y2};rs=new rl(zl,cr,g,o,global.fetch),Np=new cl(u,b,rs,cr);let x={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ne.TextDocumentSyncKind.Incremental}};try{zt=await HT(u,c),await zt.enable(),me.info("Initialized completion server")}catch(k){me.error(`Error initializing completion server: ${Ee(k)}`)}return x});En.onInitialized(()=>{me.info("Language server initialized")});En.onCompletion(async e=>{let t=Mp.get(e.textDocument.uri);if(!t)return me.warn(`Not tracking the document ${e.textDocument.uri}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Not tracking the document ${e.textDocument.uri}`);if(zt?.completionServer===void 0)return me.warn("Completion server is not initialized."),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Completion server is not initialized");if(!cr.isLoggedIn)return me.warn("Not logged in. Please login first."),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new Zu(t),i=await zt.completionsModel.generateCompletion(n,e.position);return me.info(`Completion: ${i?.requestId}`),me.debug(`Completion result: ${JSON.stringify(i)}`),[{label:i?.requestId??"",insertText:i?.completions[0]?.completionText??""}]}catch(n){return me.error(`Error getting completion: ${Ee(n)}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Error getting completion: ${Ee(n)}`)}});En.onRequest("augment/login",async()=>{try{return cr.isLoggedIn?(me.info("Already logged in"),{loggedIn:!0,url:""}):(me.info("Logging in..."),{loggedIn:!1,url:await Np.startFlow()})}catch(e){let t=e instanceof Error?e.stack:"No stack trace available",n=Ee(e);return me.error(`Error handling augment/login: ${n}`),me.error(`Stack trace: ${t}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});En.onRequest("augment/logout",async()=>{try{return await cr.removeSession(),zt?.disable(),me.info("Logged out."),{success:!0}}catch(e){let t=e instanceof Error?e.stack:"No stack trace available",n=Ee(e);return me.error(`Error handling augment/logout: ${n}`),me.error(`Stack trace: ${t}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});En.onRequest("augment/token",async e=>{try{if(await Np.handleAuthJson(e.code),!zt){let t=new na(Ze.file(zT)),n=jT?.workspaceFolders??[];zt=await HT(t,n),me.info("Initialized completion server")}return await zt.enable(),me.info("Logged in."),{success:!0}}catch(t){let n=t instanceof Error?t.stack:"No stack trace available",i=Ee(t);return me.error(`Error creating completion server: ${i}`),me.error(`Stack trace: ${n}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});En.onRequest("augment/status",()=>{let e=!!cr.isLoggedIn,t;if(zt?.workspaceManager){let n=0,i=0,o=zt.workspaceManager.getSyncingProgress();for(let c of o)c.progress&&c.progress.newlyTracked&&(me.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),n+=c.progress.trackedFiles,i+=c.progress.trackedFiles-c.progress.backlogSize);t=n>0?Math.floor(i/n*100):100}return{loggedIn:e,syncPercentage:t}});En.onRequest("augment/chat",async e=>{let t=e.textDocumentPosition.textDocument.uri,n=Mp.get(t);if(n||me.warn(`Not tracking the document ${t}`),zt?.completionServer===void 0)return me.warn("Completion server is not initialized."),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Completion server is not initialized");if(!cr.isLoggedIn)return me.warn("Not logged in. Please login first."),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=e.textDocumentPosition.position,o=n?.offsetAt(i)||0,c=n?.getText()||"",u=o,f=c.length-o,g=c.slice(Math.max(0,o-u),o),b=c.slice(o,o+f),x=zt.completionServer.createRequestId();me.info(`Chat (${x}) requested`),n&&(me.debug(`Document URI: ${n.uri}`),me.debug(`Language ID: ${n.languageId}`)),e.selectedText!==void 0&&me.debug(`Selected text: ${e.selectedText}`);let I=zt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]};if(e.partialResultToken===void 0){me.info("No partialResultToken provided. Sending full response.");try{let N=await rs.chat(x,e.message,[],I,[],[],void 0,[],void 0,e.selectedText,g,b,n?.uri,n?.languageId);return me.debug(`Chat result: ${JSON.stringify(N)}`),zt.workspaceManager?.recordChatReponse(N.text),{label:x,text:N.text}}catch(N){return me.error(`Error getting chat: ${Ee(N)}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Error getting chat: ${Ee(N)}`)}}me.debug(`PartialResultToken provided: ${e.partialResultToken}`);let M="";try{let N=await rs.chatStream(x,e.message,[],I,[],[],void 0,[],void 0,e.selectedText,g,b,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let B of N)me.debug(`Chat chunk for ${x}: ${B.text}`),await En.sendNotification("augment/chatChunk",{token:e.partialResultToken,value:{label:x,text:B.text}}),M+=B.text}catch(N){return me.error(`Error streaming chat: ${Ee(N)}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Error streaming chat: ${Ee(N)}`)}return zt.workspaceManager?.recordChatReponse(M),{label:x,text:""}});var Z2="https://api.github.com/repos/augmentcode/augment.vim/tags?per_page=1";En.onRequest("augment/pluginVersion",async()=>{try{let e=await fetch(Z2);if(!e.ok)return me.error(`Failed to fetch version: ${e.statusText}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Failed to fetch plugin version: ${e.statusText}`);let t=await e.json();return Array.isArray(t)&&t.length>0&&typeof t[0].name=="string"?{version:t[0].name}:new Ne.ResponseError(Ne.ErrorCodes.InternalError,"No version tags found for plugin")}catch(e){return me.error(`Error fetching version: ${Ee(e)}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Ee(e)}`)}});En.onNotification("augment/resolveCompletion",e=>{if(me.info(`Completion (${e.requestId}) resolved with accept=${e.accept}`),zt?.completionReporter===void 0){me.warn("Completion reporter is not yet initialized.");return}zt.completionReporter.reportResolution(e.requestId,Date.now(),Date.now(),e.accept?0:void 0)});Mp.listen(En);En.listen();me.info("Language server started");0&&(module.exports={API_ENDPOINT}); /*! Bundled license information: lodash/lodash.js: From 349da6db409e0c74c980d52656e509391fb00070 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 5 Feb 2025 21:19:46 +0000 Subject: [PATCH 02/41] Augment Vim v0.7.0 --- autoload/augment/version.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 21afbb3..f5b0a54 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.6.0' + return '0.7.0' endfunction From ac21d72efaf654f16e244198740ca2ba03da4183 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 5 Feb 2025 21:23:11 +0000 Subject: [PATCH 03/41] Augment Vim v0.8.0 --- README.md | 16 ++-- autoload/augment.vim | 33 ++++--- autoload/augment/chat.vim | 161 ++++++++++++++++++++++++++++++++--- autoload/augment/client.vim | 58 ++++++------- autoload/augment/version.vim | 2 +- dist/server.js | 111 +++++++++++++----------- doc/augment.txt | 19 +++++ 7 files changed, 284 insertions(+), 116 deletions(-) diff --git a/README.md b/README.md index 94ec538..7682c41 100644 --- a/README.md +++ b/README.md @@ -58,13 +58,15 @@ appear. The following commands are provided: ```vim -:Augment status " View the current status of the plugin -:Augment signin " Start the sign in flow -:Augment signout " Sign out of Augment -:Augment enable " Globally enable suggestions (on by default) -:Augment disable " Globally disable suggestions -:Augment log " View the plugin log -:Augment chat " Start a chat with Augment AI +:Augment status " View the current status of the plugin +:Augment signin " Start the sign in flow +:Augment signout " Sign out of Augment +:Augment enable " Globally enable suggestions (on by default) +:Augment disable " Globally disable suggestions +:Augment log " View the plugin log +:Augment chat " Send a chat message to Augment AI +:Augment chat-new " Start a new chat conversation +:Augment chat-toggle " Toggle the chat panel visibility ``` ## Chat diff --git a/autoload/augment.vim b/autoload/augment.vim index fd2eb7d..8ff329b 100644 --- a/autoload/augment.vim +++ b/autoload/augment.vim @@ -171,6 +171,9 @@ function! s:CommandChat(range, args) abort let selected_text = '' endif + let uri = augment#chat#GetUri() + let history = augment#chat#GetHistory() + " Use the message from the additional command arguments if provided, or " prompt the user for a message let message = empty(a:args) ? input('Message: ') : a:args @@ -182,21 +185,18 @@ function! s:CommandChat(range, args) abort return endif - " Create new buffer for chat response - let chat_bufname = 'AugmentChat-' . strftime("%Y%m%d-%H%M%S") - let current_win = bufwinid(bufnr('%')) - call augment#chat#CreateBuffer(chat_bufname) - call win_gotoid(current_win) + call augment#chat#OpenChatPanel() + call augment#chat#AppendMessage(message) call augment#log#Info( - \ 'Making chat request in buffer ' . chat_bufname - \ . ' with selected_text="' . selected_text + \ 'Making chat request with file=' . uri + \ . ' selected_text="' . selected_text \ . '"' . ' message="' . message . '"') let params = { \ 'textDocumentPosition': { \ 'textDocument': { - \ 'uri': 'file://' . expand('%:p'), + \ 'uri': uri, \ }, \ 'position': { \ 'line': line('.') - 1, @@ -204,17 +204,27 @@ function! s:CommandChat(range, args) abort \ }, \ }, \ 'message': message, - \ 'partialResultToken': chat_bufname, \ } - " Add selected text if available + " Add selected text and history if available if !empty(selected_text) let params['selectedText'] = selected_text endif + if !empty(history) + let params['history'] = history + endif call augment#client#Client().Request('augment/chat', params) endfunction +function! s:CommandChatNew(range, args) abort + call augment#chat#Reset() +endfunction + +function! s:CommandChatToggle(range, args) abort + call augment#chat#Toggle() +endfunction + " Handle user commands let s:command_handlers = { \ 'log': function('s:CommandLog'), @@ -224,6 +234,8 @@ let s:command_handlers = { \ 'disable': function('s:CommandDisable'), \ 'status': function('s:CommandStatus'), \ 'chat': function('s:CommandChat'), + \ 'chat-new': function('s:CommandChatNew'), + \ 'chat-toggle': function('s:CommandChatToggle'), \ } function! augment#Command(range, args) abort range @@ -261,6 +273,7 @@ endfunction function! augment#OnBufEnter() abort call s:OpenBuffer() + call augment#chat#SaveUri() endfunction function! augment#OnTextChanged() abort diff --git a/autoload/augment/chat.vim b/autoload/augment/chat.vim index 29b46a0..0f0f4df 100644 --- a/autoload/augment/chat.vim +++ b/autoload/augment/chat.vim @@ -3,6 +3,155 @@ " Utilities for chat +function! s:ResetChatContents() abort + let chat_buf = bufnr('AugmentChatHistory') + if chat_buf == -1 + call augment#log#Error('Chat reset failed: Could not find chat history buffer') + return + endif + + call setbufvar(chat_buf, '&modifiable', v:true) + call deletebufline(chat_buf, 1, '$') + call augment#chat#AppendText('# Augment Chat History' + \ . "\n\n" + \ . '`:Augment chat` Send a chat message in the current conversation' + \ . "\n" + \ . '`:Augment chat-new` Start a new conversation' + \ . "\n" + \ . '`:Augment chat-toggle` Toggle the chat panel visibility' + \ . "\n\n") +endfunction + +function! augment#chat#Toggle() abort + let chat_id = bufwinid('AugmentChatHistory') + if chat_id == -1 + call augment#chat#OpenChatPanel() + else + " Don't close if it's the last window + if winnr('$') > 1 + call win_execute(chat_id, 'close') + endif + endif +endfunction + +function! augment#chat#OpenChatPanel() abort + let current_win = win_getid() + + " Check if the panel already exists and has been setup + if bufexists('AugmentChatHistory') && !getbufvar('AugmentChatHistory', '&modifiable') + if bufwinid('AugmentChatHistory') == -1 + botright 80vnew AugmentChatHistory + endif + call win_gotoid(current_win) + return + endif + + " Open a buffer for the chat history with a width of 80 characters + botright 80vnew AugmentChatHistory + setlocal buftype=nofile " Buffer will never be written to a file + setlocal nomodifiable " Prevent any modifications + setlocal noswapfile " Don't create a swapfile + setlocal winfixbuf " Keep buffer in window when splitting + setlocal bufhidden=hide " When buffer is abandoned, hide it + setlocal nobuflisted " Hide from :ls + setlocal wrap " Wrap long lines + setlocal linebreak " Wrap at word boundaries + setlocal filetype=markdown " Use markdown syntax highlighting + setlocal nonumber " Hide line numbers + setlocal norelativenumber " Hide relative line numbers + setlocal signcolumn=no " Hide sign column + setlocal nocursorline " Disable cursor line highlighting + setlocal nospell " Disable spell checking + setlocal nofoldenable " Disable folding + setlocal textwidth=0 " Disable text width limit + setlocal scrolloff=0 " Disable scrolloff + + " Add the chat header to the buffer + call s:ResetChatContents() + + " TODO(AU-6480): create another buffer for the chat input + " new AugmentChatInput + + call win_gotoid(current_win) +endfunction + +function! augment#chat#Reset() abort + call s:ResetChatContents() + call s:ResetHistory() +endfunction + +function! s:ResetHistory() abort + let g:_augment_chat_history = [] +endfunction + +function! augment#chat#AppendText(text) abort + let chat_buf = bufnr('AugmentChatHistory') + if chat_buf == -1 + call augment#log#Error('Chat append failed: Could not find chat history buffer') + return + endif + + let lines = split(a:text, "\n", v:true) + let last_line = getbufline(chat_buf, '$')[0] + + call setbufvar(chat_buf, '&modifiable', v:true) + call setbufline(chat_buf, '$', last_line . lines[0]) + call appendbufline(chat_buf, '$', lines[1:]) + call setbufvar(chat_buf, '&modifiable', v:false) +endfunction + +function! augment#chat#AppendMessage(message) abort + " If not the first message, scroll to the bottom + let chat_id = bufwinid('AugmentChatHistory') + if !empty(augment#chat#GetHistory()) && chat_id != -1 + let command = "call winrestview({'lnum': line('$'), 'topline': line('$')})" + call win_execute(chat_id, command) + endif + + let message_text = '================================================================================' + \ . "\n\n" + \ . "\t*You*" + \ . "\n\n" + \ . a:message + \ . "\n\n" + \ . '--------------------------------------------------------------------------------' + \ . "\n\n" + \ . "\t*Augment*" + \ . "\n\n" + call augment#chat#AppendText(message_text) +endfunction + +function! augment#chat#AppendHistory(request_message, response_text, request_id) abort + if !exists('g:_augment_chat_history') + let g:_augment_chat_history = [] + endif + call add(g:_augment_chat_history, { + \ 'request_message': a:request_message, + \ 'response_text': a:response_text, + \ 'request_id': a:request_id, + \ }) +endfunction + +function! augment#chat#GetHistory() abort + if exists('g:_augment_chat_history') + return g:_augment_chat_history + endif + return [] +endfunction + +function! augment#chat#SaveUri() abort + if bufname('%') !=# 'AugmentChatHistory' + let g:_augment_current_uri = 'file://' . expand('%:p') + endif +endfunction + +function! augment#chat#GetUri() abort + if exists('g:_augment_current_uri') + return g:_augment_current_uri + endif + return 'file://' . expand('%:p') +endfunction + function! s:GetBufSelection(line_start, col_start, line_end, col_end) abort if a:line_start == a:line_end return getline(a:line_start)[a:col_start - 1:a:col_end - 1] @@ -63,15 +212,3 @@ function! augment#chat#GetSelectedText() abort let [line_end, col_end] = getpos("'>")[1:2] return s:GetBufSelection(line_start, col_start, line_end, col_end) endfunction - -function! augment#chat#CreateBuffer(bufname) abort - botright vnew - setlocal buftype=nofile - setlocal bufhidden=hide - setlocal noswapfile - setlocal wrap - setlocal linebreak - execute 'file ' . a:bufname - setlocal readonly - setlocal filetype=markdown -endfunction diff --git a/autoload/augment/client.vim b/autoload/augment/client.vim index ef56e22..66fd2d4 100644 --- a/autoload/augment/client.vim +++ b/autoload/augment/client.vim @@ -10,7 +10,15 @@ if exists('g:augment_job_command') let s:job_command = g:augment_job_command else let server_file = expand(':h:h:h') . '/dist/server.js' - let s:job_command = ['node', server_file, '--stdio'] + + " If provided, use a user-provided node command + if exists('g:augment_node_command') + let s:node_command = g:augment_node_command + else + let s:node_command = 'node' + endif + + let s:job_command = [s:node_command, server_file, '--stdio'] endif function! s:VimNotify(method, params) dict abort @@ -49,17 +57,8 @@ endfunction " Handle a chat chunk notification function! s:HandleChatChunk(client, params) abort - let text = a:params.value.text - let chat_buf = bufnr(a:params.token) - if chat_buf == -1 - call augment#log#Error('Could not find chat buffer ' . a:params.token) - return - endif - - let lines = split(text, "\n", v:true) - let last_line = getbufline(chat_buf, '$')[0] - silent! call setbufline(chat_buf, '$', last_line . lines[0]) - silent! call appendbufline(chat_buf, '$', lines[1:]) + let text = a:params.text + call augment#chat#AppendText(text) endfunction " Handle the initialize response @@ -177,18 +176,11 @@ function! s:HandleChat(client, params, result, err) abort return endif - call augment#log#Info('Received chat response with request_id=' . a:result.label . ' buffer=' . a:params.partialResultToken) + call augment#log#Info('Received chat response with request_id=' . a:result.requestId) - " Update contents of chat buffer - let text = a:result.text - if !empty(text) - let chat_buf = bufnr(a:params.partialResultToken) - if chat_buf == -1 - call augment#log#Error('Could not find chat buffer ' . a:params.partialResultToken) - return - endif - silent! call setbufline(chat_buf, 1, split(text, '\n')) - endif + " Add an extra newline so that the messages are spaced properly + call augment#chat#AppendText("\n\n") + call augment#chat#AppendHistory(a:params.message, a:result.text, a:result.requestId) " Trigger the ChatResponse autocommand (used for testing) silent doautocmd User ChatResponse @@ -203,15 +195,13 @@ function! s:HandlePluginVersion(client, params, result, err) abort " Check version against current, displaying a warning message if outdated let latest_version = a:result.version - let current_version = 'v' . augment#version#Version() + let current_version = augment#version#Version() if latest_version !=# current_version - let warning_message = join([ - \ 'Your plugin version ', + let is_prerelease = a:result.isPrerelease + let warning_message = printf('Your plugin version %s is lower than the latest %s version %s. Please update your plugin to receive the latest features and bug fixes.', \ current_version, - \ ' is lower than the latest version ', - \ latest_version, - \ '. Please update your plugin to receive the latest features and bug fixes.' - \ ], '') + \ is_prerelease ? 'prerelease' : 'stable', + \ latest_version) call augment#log#Warn(warning_message) " If the user has suppressed the version warning, don't show it @@ -316,7 +306,8 @@ endfunction " Run a new server and create a new client object function! s:New() abort - call augment#log#Info('Starting augment server v' . augment#version#Version()) + let plugin_version = augment#version#Version() + call augment#log#Info('Starting Augment Server v' . plugin_version) " If debugging is enabled, set the AUGMENT_LOG_LEVEL environment variable " which will enable debug logging in the server @@ -349,7 +340,7 @@ function! s:New() abort " Check that the runtime environment is installed. If not, return a partially initialized client if executable(s:job_command[0]) == 0 - call augment#log#Error('The Augment runtime (' . s:job_command[0] . ') was not found.') + call augment#log#Error('The Augment runtime (' . s:job_command[0] . ') was not found. If node is available on your system under a different name, you can set the `g:augment_node_command` variable. See `:help g:augment_node_command` for more details.') return client endif @@ -390,7 +381,6 @@ function! s:New() abort \ }) let vim_version = printf('%d.%d.%d', v:version / 100, v:version % 100, v:versionlong % 1000) - let plugin_version = augment#version#Version() let initialization_options = { \ 'editor': 'vim', \ 'vimVersion': vim_version, @@ -406,7 +396,7 @@ function! s:New() abort endif " Request the plugin version from the server - call client.Request('augment/pluginVersion', {}) + call client.Request('augment/pluginVersion', {'version': plugin_version}) return client endfunction diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index f5b0a54..1ef8b65 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.7.0' + return '0.8.0' endfunction diff --git a/dist/server.js b/dist/server.js index ce2a5a1..6d3d715 100644 --- a/dist/server.js +++ b/dist/server.js @@ -4,81 +4,88 @@ * Licensed for use only with Vim plugin - See LICENSE.md * Modification or reverse engineering prohibited */ -"use strict";var eN=Object.create;var dc=Object.defineProperty;var tN=Object.getOwnPropertyDescriptor;var nN=Object.getOwnPropertyNames;var rN=Object.getPrototypeOf,iN=Object.prototype.hasOwnProperty;var F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),oN=(e,t)=>{for(var n in t)dc(e,n,{get:t[n],enumerable:!0})},a_=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of nN(t))!iN.call(e,o)&&o!==n&&dc(e,o,{get:()=>t[o],enumerable:!(i=tN(t,o))||i.enumerable});return e};var kt=(e,t,n)=>(n=e!=null?eN(rN(e)):{},a_(t||!e||!e.__esModule?dc(n,"default",{value:e,enumerable:!0}):n,e)),sN=e=>a_(dc({},"__esModule",{value:!0}),e);var gc=F(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.thenable=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function cN(e){return e===!0||e===!1}It.boolean=cN;function d_(e){return typeof e=="string"||e instanceof String}It.string=d_;function uN(e){return typeof e=="number"||e instanceof Number}It.number=uN;function lN(e){return e instanceof Error}It.error=lN;function f_(e){return typeof e=="function"}It.func=f_;function h_(e){return Array.isArray(e)}It.array=h_;function dN(e){return h_(e)&&e.every(t=>d_(t))}It.stringArray=dN;function fN(e,t){return Array.isArray(e)&&e.every(t)}It.typedArray=fN;function hN(e){return e&&f_(e.then)}It.thenable=hN});var oo=F(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.stringArray=Qt.array=Qt.func=Qt.error=Qt.number=Qt.string=Qt.boolean=void 0;function gN(e){return e===!0||e===!1}Qt.boolean=gN;function g_(e){return typeof e=="string"||e instanceof String}Qt.string=g_;function pN(e){return typeof e=="number"||e instanceof Number}Qt.number=pN;function mN(e){return e instanceof Error}Qt.error=mN;function bN(e){return typeof e=="function"}Qt.func=bN;function p_(e){return Array.isArray(e)}Qt.array=p_;function _N(e){return p_(e)&&e.every(t=>g_(t))}Qt.stringArray=_N});var Df=F(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});ue.Message=ue.NotificationType9=ue.NotificationType8=ue.NotificationType7=ue.NotificationType6=ue.NotificationType5=ue.NotificationType4=ue.NotificationType3=ue.NotificationType2=ue.NotificationType1=ue.NotificationType0=ue.NotificationType=ue.RequestType9=ue.RequestType8=ue.RequestType7=ue.RequestType6=ue.RequestType5=ue.RequestType4=ue.RequestType3=ue.RequestType2=ue.RequestType1=ue.RequestType=ue.RequestType0=ue.AbstractMessageSignature=ue.ParameterStructures=ue.ResponseError=ue.ErrorCodes=void 0;var Ii=oo(),of;(function(e){e.ParseError=-32700,e.InvalidRequest=-32600,e.MethodNotFound=-32601,e.InvalidParams=-32602,e.InternalError=-32603,e.jsonrpcReservedErrorRangeStart=-32099,e.serverErrorStart=-32099,e.MessageWriteError=-32099,e.MessageReadError=-32098,e.PendingResponseRejected=-32097,e.ConnectionInactive=-32096,e.ServerNotInitialized=-32002,e.UnknownErrorCode=-32001,e.jsonrpcReservedErrorRangeEnd=-32e3,e.serverErrorEnd=-32e3})(of||(ue.ErrorCodes=of={}));var sf=class e extends Error{constructor(t,n,i){super(n),this.code=Ii.number(t)?t:of.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,e.prototype)}toJson(){let t={code:this.code,message:this.message};return this.data!==void 0&&(t.data=this.data),t}};ue.ResponseError=sf;var fn=class e{constructor(t){this.kind=t}static is(t){return t===e.auto||t===e.byName||t===e.byPosition}toString(){return this.kind}};ue.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var ut=class{constructor(t,n){this.method=t,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ue.AbstractMessageSignature=ut;var af=class extends ut{constructor(t){super(t,0)}};ue.RequestType0=af;var cf=class extends ut{constructor(t,n=fn.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.RequestType=cf;var uf=class extends ut{constructor(t,n=fn.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.RequestType1=uf;var lf=class extends ut{constructor(t){super(t,2)}};ue.RequestType2=lf;var df=class extends ut{constructor(t){super(t,3)}};ue.RequestType3=df;var ff=class extends ut{constructor(t){super(t,4)}};ue.RequestType4=ff;var hf=class extends ut{constructor(t){super(t,5)}};ue.RequestType5=hf;var gf=class extends ut{constructor(t){super(t,6)}};ue.RequestType6=gf;var pf=class extends ut{constructor(t){super(t,7)}};ue.RequestType7=pf;var mf=class extends ut{constructor(t){super(t,8)}};ue.RequestType8=mf;var bf=class extends ut{constructor(t){super(t,9)}};ue.RequestType9=bf;var _f=class extends ut{constructor(t,n=fn.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.NotificationType=_f;var vf=class extends ut{constructor(t){super(t,0)}};ue.NotificationType0=vf;var yf=class extends ut{constructor(t,n=fn.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ue.NotificationType1=yf;var xf=class extends ut{constructor(t){super(t,2)}};ue.NotificationType2=xf;var wf=class extends ut{constructor(t){super(t,3)}};ue.NotificationType3=wf;var Pf=class extends ut{constructor(t){super(t,4)}};ue.NotificationType4=Pf;var Sf=class extends ut{constructor(t){super(t,5)}};ue.NotificationType5=Sf;var Cf=class extends ut{constructor(t){super(t,6)}};ue.NotificationType6=Cf;var kf=class extends ut{constructor(t){super(t,7)}};ue.NotificationType7=kf;var Rf=class extends ut{constructor(t){super(t,8)}};ue.NotificationType8=Rf;var Tf=class extends ut{constructor(t){super(t,9)}};ue.NotificationType9=Tf;var m_;(function(e){function t(o){let c=o;return c&&Ii.string(c.method)&&(Ii.string(c.id)||Ii.number(c.id))}e.isRequest=t;function n(o){let c=o;return c&&Ii.string(c.method)&&o.id===void 0}e.isNotification=n;function i(o){let c=o;return c&&(c.result!==void 0||!!c.error)&&(Ii.string(c.id)||Ii.number(c.id)||c.id===null)}e.isResponse=i})(m_||(ue.Message=m_={}))});var If=F(ti=>{"use strict";var b_;Object.defineProperty(ti,"__esModule",{value:!0});ti.LRUCache=ti.LinkedMap=ti.Touch=void 0;var Jt;(function(e){e.None=0,e.First=1,e.AsOld=e.First,e.Last=2,e.AsNew=e.Last})(Jt||(ti.Touch=Jt={}));var pc=class{constructor(){this[b_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(t){return this._map.has(t)}get(t,n=Jt.None){let i=this._map.get(t);if(i)return n!==Jt.None&&this.touch(i,n),i.value}set(t,n,i=Jt.None){let o=this._map.get(t);if(o)o.value=n,i!==Jt.None&&this.touch(o,i);else{switch(o={key:t,value:n,next:void 0,previous:void 0},i){case Jt.None:this.addItemLast(o);break;case Jt.First:this.addItemFirst(o);break;case Jt.Last:this.addItemLast(o);break;default:this.addItemLast(o);break}this._map.set(t,o),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){let n=this._map.get(t);if(n)return this._map.delete(t),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,n){let i=this._state,o=this._head;for(;o;){if(n?t.bind(n)(o.value,o.key,this):t(o.value,o.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");o=o.next}}keys(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.key,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return i}values(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.value,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return i}entries(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:[n.key,n.value],done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return i}[(b_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>t;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw new Error("Invalid list");this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw new Error("Invalid list");this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{let n=t.next,i=t.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}t.next=void 0,t.previous=void 0,this._state++}touch(t,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Jt.First&&n!==Jt.Last)){if(n===Jt.First){if(t===this._head)return;let i=t.next,o=t.previous;t===this._tail?(o.next=void 0,this._tail=o):(i.previous=o,o.next=i),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(n===Jt.Last){if(t===this._tail)return;let i=t.next,o=t.previous;t===this._head?(i.previous=void 0,this._head=i):(i.previous=o,o.next=i),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){let t=[];return this.forEach((n,i)=>{t.push([i,n])}),t}fromJSON(t){this.clear();for(let[n,i]of t)this.set(n,i)}};ti.LinkedMap=pc;var Ef=class extends pc{constructor(t,n=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get ratio(){return this._ratio}set ratio(t){this._ratio=Math.min(Math.max(0,t),1),this.checkTrim()}get(t,n=Jt.AsNew){return super.get(t,n)}peek(t){return super.get(t,Jt.None)}set(t,n){return super.set(t,n,Jt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ti.LRUCache=Ef});var v_=F(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});mc.Disposable=void 0;var __;(function(e){function t(n){return{dispose:n}}e.create=t})(__||(mc.Disposable=__={}))});var ni=F(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Ff;function Af(){if(Ff===void 0)throw new Error("No runtime abstraction layer installed");return Ff}(function(e){function t(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ff=n}e.install=t})(Af||(Af={}));Mf.default=Af});var ao=F(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.Emitter=so.Event=void 0;var vN=ni(),y_;(function(e){let t={dispose(){}};e.None=function(){return t}})(y_||(so.Event=y_={}));var Nf=class{add(t,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(t,n)})}remove(t,n=null){if(!this._callbacks)return;let i=!1;for(let o=0,c=this._callbacks.length;o{this._callbacks||(this._callbacks=new Nf),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,n);let o={dispose:()=>{this._callbacks&&(this._callbacks.remove(t,n),o.dispose=e._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(o),o}),this._event}fire(t){this._callbacks&&this._callbacks.invoke.call(this._callbacks,t)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};so.Emitter=bc;bc._noop=function(){}});var yc=F(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.CancellationTokenSource=co.CancellationToken=void 0;var yN=ni(),xN=oo(),qf=ao(),_c;(function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:qf.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:qf.Event.None});function t(n){let i=n;return i&&(i===e.None||i===e.Cancelled||xN.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}e.is=t})(_c||(co.CancellationToken=_c={}));var wN=Object.freeze(function(e,t){let n=(0,yN.default)().timer.setTimeout(e.bind(t),0);return{dispose(){n.dispose()}}}),vc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?wN:(this._emitter||(this._emitter=new qf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Lf=class{get token(){return this._token||(this._token=new vc),this._token}cancel(){this._token?this._token.cancel():this._token=_c.Cancelled}dispose(){this._token?this._token instanceof vc&&this._token.dispose():this._token=_c.None}};co.CancellationTokenSource=Lf});var x_=F(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.SharedArrayReceiverStrategy=uo.SharedArraySenderStrategy=void 0;var PN=yc(),ys;(function(e){e.Continue=0,e.Cancelled=1})(ys||(ys={}));var Of=class{constructor(){this.buffers=new Map}enableCancellation(t){if(t.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=ys.Continue,this.buffers.set(t.id,n),t.$cancellationData=n}async sendCancellation(t,n){let i=this.buffers.get(n);if(i===void 0)return;let o=new Int32Array(i,0,1);Atomics.store(o,0,ys.Cancelled)}cleanup(t){this.buffers.delete(t)}dispose(){this.buffers.clear()}};uo.SharedArraySenderStrategy=Of;var Bf=class{constructor(t){this.data=new Int32Array(t,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===ys.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Uf=class{constructor(t){this.token=new Bf(t)}cancel(){}dispose(){}},$f=class{constructor(){this.kind="request"}createCancellationTokenSource(t){let n=t.$cancellationData;return n===void 0?new PN.CancellationTokenSource:new Uf(n)}};uo.SharedArrayReceiverStrategy=$f});var jf=F(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.Semaphore=void 0;var SN=ni(),Wf=class{constructor(t=1){if(t<=0)throw new Error("Capacity must be greater than 0");this._capacity=t,this._active=0,this._waiting=[]}lock(t){return new Promise((n,i)=>{this._waiting.push({thunk:t,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,SN.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let t=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=t.thunk();n instanceof Promise?n.then(i=>{this._active--,t.resolve(i),this.runNext()},i=>{this._active--,t.reject(i),this.runNext()}):(this._active--,t.resolve(n),this.runNext())}catch(n){this._active--,t.reject(n),this.runNext()}}};xc.Semaphore=Wf});var P_=F(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});ri.ReadableStreamMessageReader=ri.AbstractMessageReader=ri.MessageReader=void 0;var Hf=ni(),lo=oo(),zf=ao(),CN=jf(),w_;(function(e){function t(n){let i=n;return i&&lo.func(i.listen)&&lo.func(i.dispose)&&lo.func(i.onError)&&lo.func(i.onClose)&&lo.func(i.onPartialMessage)}e.is=t})(w_||(ri.MessageReader=w_={}));var wc=class{constructor(){this.errorEmitter=new zf.Emitter,this.closeEmitter=new zf.Emitter,this.partialMessageEmitter=new zf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t){this.errorEmitter.fire(this.asError(t))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(t){this.partialMessageEmitter.fire(t)}asError(t){return t instanceof Error?t:new Error(`Reader received error. Reason: ${lo.string(t.message)?t.message:"unknown"}`)}};ri.AbstractMessageReader=wc;var Vf;(function(e){function t(n){let i,o,c,u=new Map,f,g=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let b of n.contentDecoders)u.set(b.name,b);if(n.contentTypeDecoder!==void 0&&(f=n.contentTypeDecoder,g.set(f.name,f)),n.contentTypeDecoders!==void 0)for(let b of n.contentTypeDecoders)g.set(b.name,b)}return f===void 0&&(f=(0,Hf.default)().applicationJson.decoder,g.set(f.name,f)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:f,contentTypeDecoders:g}}e.fromOptions=t})(Vf||(Vf={}));var Gf=class extends wc{constructor(t,n){super(),this.readable=t,this.options=Vf.fromOptions(n),this.buffer=(0,Hf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new CN.Semaphore(1)}set partialMessageTimeout(t){this._partialMessageTimeout=t}get partialMessageTimeout(){return this._partialMessageTimeout}listen(t){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=t;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(t){try{for(this.buffer.append(t);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let o=i.get("content-length");if(!o){this.fireError(new Error(`Header must provide a Content-Length property. -${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(o);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${o}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,o=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(o)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,Hf.default)().timer.setTimeout((t,n)=>{this.partialMessageTimer=void 0,t===this.messageToken&&(this.firePartialMessage({messageToken:t,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};ri.ReadableStreamMessageReader=Gf});var T_=F(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.WriteableStreamMessageWriter=ii.AbstractMessageWriter=ii.MessageWriter=void 0;var S_=ni(),xs=oo(),kN=jf(),C_=ao(),RN="Content-Length: ",k_=`\r -`,R_;(function(e){function t(n){let i=n;return i&&xs.func(i.dispose)&&xs.func(i.onClose)&&xs.func(i.onError)&&xs.func(i.write)}e.is=t})(R_||(ii.MessageWriter=R_={}));var Pc=class{constructor(){this.errorEmitter=new C_.Emitter,this.closeEmitter=new C_.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t,n,i){this.errorEmitter.fire([this.asError(t),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(t){return t instanceof Error?t:new Error(`Writer received error. Reason: ${xs.string(t.message)?t.message:"unknown"}`)}};ii.AbstractMessageWriter=Pc;var Qf;(function(e){function t(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,S_.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,S_.default)().applicationJson.encoder}}e.fromOptions=t})(Qf||(Qf={}));var Jf=class extends Pc{constructor(t,n){super(),this.writable=t,this.options=Qf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new kN.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(t){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(t,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let o=[];return o.push(RN,i.byteLength.toString(),k_),o.push(k_),this.doWrite(t,o,i)},i=>{throw this.fireError(i),i}))}async doWrite(t,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(o){return this.handleError(o,t),Promise.reject(o)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){this.writable.end()}};ii.WriteableStreamMessageWriter=Jf});var D_=F(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});Sc.AbstractMessageBuffer=void 0;var TN=13,DN=10,EN=`\r -`,Xf=class{constructor(t="utf-8"){this._encoding=t,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(t){let n=typeof t=="string"?this.fromString(t,this._encoding):t;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(t=!1){if(this._chunks.length===0)return;let n=0,i=0,o=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===t){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=t,this.asNative(c)}if(this._chunks[0].byteLength>t){let c=this._chunks[0],u=this.asNative(c,t);return this._chunks[0]=c.slice(t),this._totalLength-=t,u}let n=this.allocNative(t),i=0,o=0;for(;t>0;){let c=this._chunks[o];if(c.byteLength>t){let u=c.slice(0,t);n.set(u,i),i+=t,this._chunks[o]=c.slice(t),this._totalLength-=t,t-=t}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,t-=c.byteLength}return n}};Sc.AbstractMessageBuffer=Xf});var M_=F(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.createMessageConnection=Pe.ConnectionOptions=Pe.MessageStrategy=Pe.CancellationStrategy=Pe.CancellationSenderStrategy=Pe.CancellationReceiverStrategy=Pe.RequestCancellationReceiverStrategy=Pe.IdCancellationReceiverStrategy=Pe.ConnectionStrategy=Pe.ConnectionError=Pe.ConnectionErrors=Pe.LogTraceNotification=Pe.SetTraceNotification=Pe.TraceFormat=Pe.TraceValues=Pe.Trace=Pe.NullLogger=Pe.ProgressType=Pe.ProgressToken=void 0;var E_=ni(),vt=oo(),he=Df(),I_=If(),ws=ao(),Kf=yc(),Cs;(function(e){e.type=new he.NotificationType("$/cancelRequest")})(Cs||(Cs={}));var Yf;(function(e){function t(n){return typeof n=="string"||typeof n=="number"}e.is=t})(Yf||(Pe.ProgressToken=Yf={}));var Ps;(function(e){e.type=new he.NotificationType("$/progress")})(Ps||(Ps={}));var Zf=class{constructor(){}};Pe.ProgressType=Zf;var eh;(function(e){function t(n){return vt.func(n)}e.is=t})(eh||(eh={}));Pe.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var Ve;(function(e){e[e.Off=0]="Off",e[e.Messages=1]="Messages",e[e.Compact=2]="Compact",e[e.Verbose=3]="Verbose"})(Ve||(Pe.Trace=Ve={}));var F_;(function(e){e.Off="off",e.Messages="messages",e.Compact="compact",e.Verbose="verbose"})(F_||(Pe.TraceValues=F_={}));(function(e){function t(i){if(!vt.string(i))return e.Off;switch(i=i.toLowerCase(),i){case"off":return e.Off;case"messages":return e.Messages;case"compact":return e.Compact;case"verbose":return e.Verbose;default:return e.Off}}e.fromString=t;function n(i){switch(i){case e.Off:return"off";case e.Messages:return"messages";case e.Compact:return"compact";case e.Verbose:return"verbose";default:return"off"}}e.toString=n})(Ve||(Pe.Trace=Ve={}));var Rn;(function(e){e.Text="text",e.JSON="json"})(Rn||(Pe.TraceFormat=Rn={}));(function(e){function t(n){return vt.string(n)?(n=n.toLowerCase(),n==="json"?e.JSON:e.Text):e.Text}e.fromString=t})(Rn||(Pe.TraceFormat=Rn={}));var th;(function(e){e.type=new he.NotificationType("$/setTrace")})(th||(Pe.SetTraceNotification=th={}));var Cc;(function(e){e.type=new he.NotificationType("$/logTrace")})(Cc||(Pe.LogTraceNotification=Cc={}));var Ss;(function(e){e[e.Closed=1]="Closed",e[e.Disposed=2]="Disposed",e[e.AlreadyListening=3]="AlreadyListening"})(Ss||(Pe.ConnectionErrors=Ss={}));var fo=class e extends Error{constructor(t,n){super(n),this.code=t,Object.setPrototypeOf(this,e.prototype)}};Pe.ConnectionError=fo;var nh;(function(e){function t(n){let i=n;return i&&vt.func(i.cancelUndispatched)}e.is=t})(nh||(Pe.ConnectionStrategy=nh={}));var kc;(function(e){function t(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&vt.func(i.createCancellationTokenSource)&&(i.dispose===void 0||vt.func(i.dispose))}e.is=t})(kc||(Pe.IdCancellationReceiverStrategy=kc={}));var rh;(function(e){function t(n){let i=n;return i&&i.kind==="request"&&vt.func(i.createCancellationTokenSource)&&(i.dispose===void 0||vt.func(i.dispose))}e.is=t})(rh||(Pe.RequestCancellationReceiverStrategy=rh={}));var Rc;(function(e){e.Message=Object.freeze({createCancellationTokenSource(n){return new Kf.CancellationTokenSource}});function t(n){return kc.is(n)||rh.is(n)}e.is=t})(Rc||(Pe.CancellationReceiverStrategy=Rc={}));var Tc;(function(e){e.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Cs.type,{id:i})},cleanup(n){}});function t(n){let i=n;return i&&vt.func(i.sendCancellation)&&vt.func(i.cleanup)}e.is=t})(Tc||(Pe.CancellationSenderStrategy=Tc={}));var Dc;(function(e){e.Message=Object.freeze({receiver:Rc.Message,sender:Tc.Message});function t(n){let i=n;return i&&Rc.is(i.receiver)&&Tc.is(i.sender)}e.is=t})(Dc||(Pe.CancellationStrategy=Dc={}));var Ec;(function(e){function t(n){let i=n;return i&&vt.func(i.handleMessage)}e.is=t})(Ec||(Pe.MessageStrategy=Ec={}));var A_;(function(e){function t(n){let i=n;return i&&(Dc.is(i.cancellationStrategy)||nh.is(i.connectionStrategy)||Ec.is(i.messageStrategy))}e.is=t})(A_||(Pe.ConnectionOptions=A_={}));var Zn;(function(e){e[e.New=1]="New",e[e.Listening=2]="Listening",e[e.Closed=3]="Closed",e[e.Disposed=4]="Disposed"})(Zn||(Zn={}));function IN(e,t,n,i){let o=n!==void 0?n:Pe.NullLogger,c=0,u=0,f=0,g="2.0",b,x=new Map,k,I=new Map,M=new Map,N,B=new I_.LinkedMap,W=new Map,X=new Set,D=new Map,P=Ve.Off,U=Rn.Text,ne,_e=Zn.New,Ue=new ws.Emitter,Ke=new ws.Emitter,Dt=new ws.Emitter,xe=new ws.Emitter,Y=new ws.Emitter,H=i&&i.cancellationStrategy?i.cancellationStrategy:Dc.Message;function ae(S){if(S===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+S.toString()}function ie(S){return S===null?"res-unknown-"+(++f).toString():"res-"+S.toString()}function ke(){return"not-"+(++u).toString()}function ge(S,V){he.Message.isRequest(V)?S.set(ae(V.id),V):he.Message.isResponse(V)?S.set(ie(V.id),V):S.set(ke(),V)}function pe(S){}function wt(){return _e===Zn.Listening}function je(){return _e===Zn.Closed}function ze(){return _e===Zn.Disposed}function bn(){(_e===Zn.New||_e===Zn.Listening)&&(_e=Zn.Closed,Ke.fire(void 0))}function xr(S){Ue.fire([S,void 0,void 0])}function Vn(S){Ue.fire(S)}e.onClose(bn),e.onError(xr),t.onClose(bn),t.onError(Vn);function ur(){N||B.size===0||(N=(0,E_.default)().timer.setImmediate(()=>{N=void 0,lr()}))}function vi(S){he.Message.isRequest(S)?$i(S):he.Message.isNotification(S)?Pr(S):he.Message.isResponse(S)?wr(S):Sr(S)}function lr(){if(B.size===0)return;let S=B.shift();try{let V=i?.messageStrategy;Ec.is(V)?V.handleMessage(S,vi):vi(S)}finally{ur()}}let dr=S=>{try{if(he.Message.isNotification(S)&&S.method===Cs.type.method){let V=S.params.id,ee=ae(V),oe=B.get(ee);if(he.Message.isRequest(oe)){let Be=i?.connectionStrategy,Qe=Be&&Be.cancelUndispatched?Be.cancelUndispatched(oe,pe):void 0;if(Qe&&(Qe.error!==void 0||Qe.result!==void 0)){B.delete(ee),D.delete(V),Qe.id=oe.id,Ut(Qe,S.method,Date.now()),t.write(Qe).catch(()=>o.error("Sending response for canceled message failed."));return}}let $e=D.get(V);if($e!==void 0){$e.cancel(),jr(S);return}else X.add(V)}ge(B,S)}finally{ur()}};function $i(S){if(ze())return;function V(Re,Je,qe){let at={jsonrpc:g,id:S.id};Re instanceof he.ResponseError?at.error=Re.toJson():at.result=Re===void 0?null:Re,Ut(at,Je,qe),t.write(at).catch(()=>o.error("Sending response failed."))}function ee(Re,Je,qe){let at={jsonrpc:g,id:S.id,error:Re.toJson()};Ut(at,Je,qe),t.write(at).catch(()=>o.error("Sending response failed."))}function oe(Re,Je,qe){Re===void 0&&(Re=null);let at={jsonrpc:g,id:S.id,result:Re};Ut(at,Je,qe),t.write(at).catch(()=>o.error("Sending response failed."))}yi(S);let $e=x.get(S.method),Be,Qe;$e&&(Be=$e.type,Qe=$e.handler);let nt=Date.now();if(Qe||b){let Re=S.id??String(Date.now()),Je=kc.is(H.receiver)?H.receiver.createCancellationTokenSource(Re):H.receiver.createCancellationTokenSource(S);S.id!==null&&X.has(S.id)&&Je.cancel(),S.id!==null&&D.set(Re,Je);try{let qe;if(Qe)if(S.params===void 0){if(Be!==void 0&&Be.numberOfParams!==0){ee(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${S.method} defines ${Be.numberOfParams} params but received none.`),S.method,nt);return}qe=Qe(Je.token)}else if(Array.isArray(S.params)){if(Be!==void 0&&Be.parameterStructures===he.ParameterStructures.byName){ee(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by name but received parameters by position`),S.method,nt);return}qe=Qe(...S.params,Je.token)}else{if(Be!==void 0&&Be.parameterStructures===he.ParameterStructures.byPosition){ee(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by position but received parameters by name`),S.method,nt);return}qe=Qe(S.params,Je.token)}else b&&(qe=b(S.method,S.params,Je.token));let at=qe;qe?at.then?at.then(Et=>{D.delete(Re),V(Et,S.method,nt)},Et=>{D.delete(Re),Et instanceof he.ResponseError?ee(Et,S.method,nt):Et&&vt.string(Et.message)?ee(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${Et.message}`),S.method,nt):ee(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,nt)}):(D.delete(Re),V(qe,S.method,nt)):(D.delete(Re),oe(qe,S.method,nt))}catch(qe){D.delete(Re),qe instanceof he.ResponseError?V(qe,S.method,nt):qe&&vt.string(qe.message)?ee(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${qe.message}`),S.method,nt):ee(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,nt)}}else ee(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${S.method}`),S.method,nt)}function wr(S){if(!ze())if(S.id===null)S.error?o.error(`Received response message without id: Error is: -${JSON.stringify(S.error,void 0,4)}`):o.error("Received response message without id. No further error information provided.");else{let V=S.id,ee=W.get(V);if(hr(S,ee),ee!==void 0){W.delete(V);try{if(S.error){let oe=S.error;ee.reject(new he.ResponseError(oe.code,oe.message,oe.data))}else if(S.result!==void 0)ee.resolve(S.result);else throw new Error("Should never happen.")}catch(oe){oe.message?o.error(`Response handler '${ee.method}' failed with message: ${oe.message}`):o.error(`Response handler '${ee.method}' failed unexpectedly.`)}}}}function Pr(S){if(ze())return;let V,ee;if(S.method===Cs.type.method){let oe=S.params.id;X.delete(oe),jr(S);return}else{let oe=I.get(S.method);oe&&(ee=oe.handler,V=oe.type)}if(ee||k)try{if(jr(S),ee)if(S.params===void 0)V!==void 0&&V.numberOfParams!==0&&V.parameterStructures!==he.ParameterStructures.byName&&o.error(`Notification ${S.method} defines ${V.numberOfParams} params but received none.`),ee();else if(Array.isArray(S.params)){let oe=S.params;S.method===Ps.type.method&&oe.length===2&&Yf.is(oe[0])?ee({token:oe[0],value:oe[1]}):(V!==void 0&&(V.parameterStructures===he.ParameterStructures.byName&&o.error(`Notification ${S.method} defines parameters by name but received parameters by position`),V.numberOfParams!==S.params.length&&o.error(`Notification ${S.method} defines ${V.numberOfParams} params but received ${oe.length} arguments`)),ee(...oe))}else V!==void 0&&V.parameterStructures===he.ParameterStructures.byPosition&&o.error(`Notification ${S.method} defines parameters by position but received parameters by name`),ee(S.params);else k&&k(S.method,S.params)}catch(oe){oe.message?o.error(`Notification handler '${S.method}' failed with message: ${oe.message}`):o.error(`Notification handler '${S.method}' failed unexpectedly.`)}else Dt.fire(S)}function Sr(S){if(!S){o.error("Received empty message.");return}o.error(`Received message which is neither a response nor a notification message: -${JSON.stringify(S,null,4)}`);let V=S;if(vt.string(V.id)||vt.number(V.id)){let ee=V.id,oe=W.get(ee);oe&&oe.reject(new Error("The received response has neither a result nor an error property."))}}function bt(S){if(S!=null)switch(P){case Ve.Verbose:return JSON.stringify(S,null,4);case Ve.Compact:return JSON.stringify(S);default:return}}function fr(S){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let V;(P===Ve.Verbose||P===Ve.Compact)&&S.params&&(V=`Params: ${bt(S.params)} +"use strict";var XM=Object.create;var pc=Object.defineProperty;var YM=Object.getOwnPropertyDescriptor;var ZM=Object.getOwnPropertyNames;var eA=Object.getPrototypeOf,tA=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),nA=(t,e)=>{for(var n in e)pc(t,n,{get:e[n],enumerable:!0})},e_=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ZM(e))!tA.call(t,s)&&s!==n&&pc(t,s,{get:()=>e[s],enumerable:!(i=YM(e,s))||i.enumerable});return t};var gt=(t,e,n)=>(n=t!=null?XM(eA(t)):{},e_(e||!t||!t.__esModule?pc(n,"default",{value:t,enumerable:!0}):n,t)),rA=t=>e_(pc({},"__esModule",{value:!0}),t);var bc=I(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.thenable=Et.typedArray=Et.stringArray=Et.array=Et.func=Et.error=Et.number=Et.string=Et.boolean=void 0;function oA(t){return t===!0||t===!1}Et.boolean=oA;function i_(t){return typeof t=="string"||t instanceof String}Et.string=i_;function sA(t){return typeof t=="number"||t instanceof Number}Et.number=sA;function aA(t){return t instanceof Error}Et.error=aA;function o_(t){return typeof t=="function"}Et.func=o_;function s_(t){return Array.isArray(t)}Et.array=s_;function cA(t){return s_(t)&&t.every(e=>i_(e))}Et.stringArray=cA;function uA(t,e){return Array.isArray(t)&&t.every(e)}Et.typedArray=uA;function lA(t){return t&&o_(t.then)}Et.thenable=lA});var ho=I(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.stringArray=Vt.array=Vt.func=Vt.error=Vt.number=Vt.string=Vt.boolean=void 0;function dA(t){return t===!0||t===!1}Vt.boolean=dA;function a_(t){return typeof t=="string"||t instanceof String}Vt.string=a_;function fA(t){return typeof t=="number"||t instanceof Number}Vt.number=fA;function hA(t){return t instanceof Error}Vt.error=hA;function gA(t){return typeof t=="function"}Vt.func=gA;function c_(t){return Array.isArray(t)}Vt.array=c_;function pA(t){return c_(t)&&t.every(e=>a_(e))}Vt.stringArray=pA});var Rf=I(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Message=ce.NotificationType9=ce.NotificationType8=ce.NotificationType7=ce.NotificationType6=ce.NotificationType5=ce.NotificationType4=ce.NotificationType3=ce.NotificationType2=ce.NotificationType1=ce.NotificationType0=ce.NotificationType=ce.RequestType9=ce.RequestType8=ce.RequestType7=ce.RequestType6=ce.RequestType5=ce.RequestType4=ce.RequestType3=ce.RequestType2=ce.RequestType1=ce.RequestType=ce.RequestType0=ce.AbstractMessageSignature=ce.ParameterStructures=ce.ResponseError=ce.ErrorCodes=void 0;var qi=ho(),rf;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(rf||(ce.ErrorCodes=rf={}));var of=class t extends Error{constructor(e,n,i){super(n),this.code=qi.number(e)?e:rf.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ce.ResponseError=of;var fn=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ce.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var ut=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ce.AbstractMessageSignature=ut;var sf=class extends ut{constructor(e){super(e,0)}};ce.RequestType0=sf;var af=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType=af;var cf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType1=cf;var uf=class extends ut{constructor(e){super(e,2)}};ce.RequestType2=uf;var lf=class extends ut{constructor(e){super(e,3)}};ce.RequestType3=lf;var df=class extends ut{constructor(e){super(e,4)}};ce.RequestType4=df;var ff=class extends ut{constructor(e){super(e,5)}};ce.RequestType5=ff;var hf=class extends ut{constructor(e){super(e,6)}};ce.RequestType6=hf;var gf=class extends ut{constructor(e){super(e,7)}};ce.RequestType7=gf;var pf=class extends ut{constructor(e){super(e,8)}};ce.RequestType8=pf;var mf=class extends ut{constructor(e){super(e,9)}};ce.RequestType9=mf;var bf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType=bf;var _f=class extends ut{constructor(e){super(e,0)}};ce.NotificationType0=_f;var vf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType1=vf;var yf=class extends ut{constructor(e){super(e,2)}};ce.NotificationType2=yf;var wf=class extends ut{constructor(e){super(e,3)}};ce.NotificationType3=wf;var Sf=class extends ut{constructor(e){super(e,4)}};ce.NotificationType4=Sf;var xf=class extends ut{constructor(e){super(e,5)}};ce.NotificationType5=xf;var Pf=class extends ut{constructor(e){super(e,6)}};ce.NotificationType6=Pf;var Cf=class extends ut{constructor(e){super(e,7)}};ce.NotificationType7=Cf;var kf=class extends ut{constructor(e){super(e,8)}};ce.NotificationType8=kf;var Tf=class extends ut{constructor(e){super(e,9)}};ce.NotificationType9=Tf;var u_;(function(t){function e(s){let c=s;return c&&qi.string(c.method)&&(qi.string(c.id)||qi.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&qi.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(qi.string(c.id)||qi.number(c.id)||c.id===null)}t.isResponse=i})(u_||(ce.Message=u_={}))});var Ff=I(ri=>{"use strict";var l_;Object.defineProperty(ri,"__esModule",{value:!0});ri.LRUCache=ri.LinkedMap=ri.Touch=void 0;var Gt;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Gt||(ri.Touch=Gt={}));var _c=class{constructor(){this[l_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Gt.None){let i=this._map.get(e);if(i)return n!==Gt.None&&this.touch(i,n),i.value}set(e,n,i=Gt.None){let s=this._map.get(e);if(s)s.value=n,i!==Gt.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Gt.None:this.addItemLast(s);break;case Gt.First:this.addItemFirst(s);break;case Gt.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(l_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Gt.First&&n!==Gt.Last)){if(n===Gt.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Gt.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};ri.LinkedMap=_c;var Df=class extends _c{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Gt.AsNew){return super.get(e,n)}peek(e){return super.get(e,Gt.None)}set(e,n){return super.set(e,n,Gt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ri.LRUCache=Df});var f_=I(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.Disposable=void 0;var d_;(function(t){function e(n){return{dispose:n}}t.create=e})(d_||(vc.Disposable=d_={}))});var ii=I(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Ef;function If(){if(Ef===void 0)throw new Error("No runtime abstraction layer installed");return Ef}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ef=n}t.install=e})(If||(If={}));Mf.default=If});var po=I(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.Emitter=go.Event=void 0;var mA=ii(),h_;(function(t){let e={dispose(){}};t.None=function(){return e}})(h_||(go.Event=h_={}));var Af=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Af),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};go.Emitter=yc;yc._noop=function(){}});var xc=I(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.CancellationTokenSource=mo.CancellationToken=void 0;var bA=ii(),_A=ho(),Nf=po(),wc;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Nf.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Nf.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||_A.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(wc||(mo.CancellationToken=wc={}));var vA=Object.freeze(function(t,e){let n=(0,bA.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),Sc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?vA:(this._emitter||(this._emitter=new Nf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},qf=class{get token(){return this._token||(this._token=new Sc),this._token}cancel(){this._token?this._token.cancel():this._token=wc.Cancelled}dispose(){this._token?this._token instanceof Sc&&this._token.dispose():this._token=wc.None}};mo.CancellationTokenSource=qf});var g_=I(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.SharedArrayReceiverStrategy=bo.SharedArraySenderStrategy=void 0;var yA=xc(),ks;(function(t){t.Continue=0,t.Cancelled=1})(ks||(ks={}));var Of=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=ks.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,ks.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};bo.SharedArraySenderStrategy=Of;var Lf=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===ks.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Bf=class{constructor(e){this.token=new Lf(e)}cancel(){}dispose(){}},Uf=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new yA.CancellationTokenSource:new Bf(n)}};bo.SharedArrayReceiverStrategy=Uf});var Wf=I(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.Semaphore=void 0;var wA=ii(),$f=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,wA.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};Pc.Semaphore=$f});var m_=I(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.ReadableStreamMessageReader=oi.AbstractMessageReader=oi.MessageReader=void 0;var zf=ii(),_o=ho(),jf=po(),SA=Wf(),p_;(function(t){function e(n){let i=n;return i&&_o.func(i.listen)&&_o.func(i.dispose)&&_o.func(i.onError)&&_o.func(i.onClose)&&_o.func(i.onPartialMessage)}t.is=e})(p_||(oi.MessageReader=p_={}));var Cc=class{constructor(){this.errorEmitter=new jf.Emitter,this.closeEmitter=new jf.Emitter,this.partialMessageEmitter=new jf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${_o.string(e.message)?e.message:"unknown"}`)}};oi.AbstractMessageReader=Cc;var Hf;(function(t){function e(n){let i,s,c,u=new Map,d,f=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let m of n.contentDecoders)u.set(m.name,m);if(n.contentTypeDecoder!==void 0&&(d=n.contentTypeDecoder,f.set(d.name,d)),n.contentTypeDecoders!==void 0)for(let m of n.contentTypeDecoders)f.set(m.name,m)}return d===void 0&&(d=(0,zf.default)().applicationJson.decoder,f.set(d.name,d)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:d,contentTypeDecoders:f}}t.fromOptions=e})(Hf||(Hf={}));var Vf=class extends Cc{constructor(e,n){super(),this.readable=e,this.options=Hf.fromOptions(n),this.buffer=(0,zf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new SA.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. +${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,zf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};oi.ReadableStreamMessageReader=Vf});var w_=I(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.WriteableStreamMessageWriter=si.AbstractMessageWriter=si.MessageWriter=void 0;var b_=ii(),Ts=ho(),xA=Wf(),__=po(),PA="Content-Length: ",v_=`\r +`,y_;(function(t){function e(n){let i=n;return i&&Ts.func(i.dispose)&&Ts.func(i.onClose)&&Ts.func(i.onError)&&Ts.func(i.write)}t.is=e})(y_||(si.MessageWriter=y_={}));var kc=class{constructor(){this.errorEmitter=new __.Emitter,this.closeEmitter=new __.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${Ts.string(e.message)?e.message:"unknown"}`)}};si.AbstractMessageWriter=kc;var Gf;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,b_.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,b_.default)().applicationJson.encoder}}t.fromOptions=e})(Gf||(Gf={}));var Qf=class extends kc{constructor(e,n){super(),this.writable=e,this.options=Gf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new xA.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let s=[];return s.push(PA,i.byteLength.toString(),v_),s.push(v_),this.doWrite(e,s,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(s){return this.handleError(s,e),Promise.reject(s)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};si.WriteableStreamMessageWriter=Qf});var S_=I(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.AbstractMessageBuffer=void 0;var CA=13,kA=10,TA=`\r +`,Kf=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let n=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let n=0,i=0,s=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};Tc.AbstractMessageBuffer=Kf});var T_=I(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.createMessageConnection=Pe.ConnectionOptions=Pe.MessageStrategy=Pe.CancellationStrategy=Pe.CancellationSenderStrategy=Pe.CancellationReceiverStrategy=Pe.RequestCancellationReceiverStrategy=Pe.IdCancellationReceiverStrategy=Pe.ConnectionStrategy=Pe.ConnectionError=Pe.ConnectionErrors=Pe.LogTraceNotification=Pe.SetTraceNotification=Pe.TraceFormat=Pe.TraceValues=Pe.Trace=Pe.NullLogger=Pe.ProgressType=Pe.ProgressToken=void 0;var x_=ii(),_t=ho(),he=Rf(),P_=Ff(),Rs=po(),Jf=xc(),Es;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(Es||(Es={}));var Xf;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(Xf||(Pe.ProgressToken=Xf={}));var Ds;(function(t){t.type=new he.NotificationType("$/progress")})(Ds||(Ds={}));var Yf=class{constructor(){}};Pe.ProgressType=Yf;var Zf;(function(t){function e(n){return _t.func(n)}t.is=e})(Zf||(Zf={}));Pe.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(Pe.Trace=He={}));var C_;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(C_||(Pe.TraceValues=C_={}));(function(t){function e(i){if(!_t.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(Pe.Trace=He={}));var Tn;(function(t){t.Text="text",t.JSON="json"})(Tn||(Pe.TraceFormat=Tn={}));(function(t){function e(n){return _t.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Tn||(Pe.TraceFormat=Tn={}));var eh;(function(t){t.type=new he.NotificationType("$/setTrace")})(eh||(Pe.SetTraceNotification=eh={}));var Rc;(function(t){t.type=new he.NotificationType("$/logTrace")})(Rc||(Pe.LogTraceNotification=Rc={}));var Fs;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(Fs||(Pe.ConnectionErrors=Fs={}));var vo=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Pe.ConnectionError=vo;var th;(function(t){function e(n){let i=n;return i&&_t.func(i.cancelUndispatched)}t.is=e})(th||(Pe.ConnectionStrategy=th={}));var Dc;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(Dc||(Pe.IdCancellationReceiverStrategy=Dc={}));var nh;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(nh||(Pe.RequestCancellationReceiverStrategy=nh={}));var Fc;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new Jf.CancellationTokenSource}});function e(n){return Dc.is(n)||nh.is(n)}t.is=e})(Fc||(Pe.CancellationReceiverStrategy=Fc={}));var Ec;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Es.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&_t.func(i.sendCancellation)&&_t.func(i.cleanup)}t.is=e})(Ec||(Pe.CancellationSenderStrategy=Ec={}));var Ic;(function(t){t.Message=Object.freeze({receiver:Fc.Message,sender:Ec.Message});function e(n){let i=n;return i&&Fc.is(i.receiver)&&Ec.is(i.sender)}t.is=e})(Ic||(Pe.CancellationStrategy=Ic={}));var Mc;(function(t){function e(n){let i=n;return i&&_t.func(i.handleMessage)}t.is=e})(Mc||(Pe.MessageStrategy=Mc={}));var k_;(function(t){function e(n){let i=n;return i&&(Ic.is(i.cancellationStrategy)||th.is(i.connectionStrategy)||Mc.is(i.messageStrategy))}t.is=e})(k_||(Pe.ConnectionOptions=k_={}));var Zn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Zn||(Zn={}));function RA(t,e,n,i){let s=n!==void 0?n:Pe.NullLogger,c=0,u=0,d=0,f="2.0",m,v=new Map,x,D=new Map,N=new Map,A,L=new P_.LinkedMap,B=new Map,K=new Set,F=new Map,P=He.Off,U=Tn.Text,te,ve=Zn.New,Be=new Rs.Emitter,Je=new Rs.Emitter,Dt=new Rs.Emitter,Se=new Rs.Emitter,X=new Rs.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Ic.Message;function se(C){if(C===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+C.toString()}function re(C){return C===null?"res-unknown-"+(++d).toString():"res-"+C.toString()}function Te(){return"not-"+(++u).toString()}function ge(C,H){he.Message.isRequest(H)?C.set(se(H.id),H):he.Message.isResponse(H)?C.set(re(H.id),H):C.set(Te(),H)}function me(C){}function St(){return ve===Zn.Listening}function We(){return ve===Zn.Closed}function je(){return ve===Zn.Disposed}function bn(){(ve===Zn.New||ve===Zn.Listening)&&(ve=Zn.Closed,Je.fire(void 0))}function wr(C){Be.fire([C,void 0,void 0])}function Vn(C){Be.fire(C)}t.onClose(bn),t.onError(wr),e.onClose(bn),e.onError(Vn);function lr(){A||L.size===0||(A=(0,x_.default)().timer.setImmediate(()=>{A=void 0,dr()}))}function xi(C){he.Message.isRequest(C)?Qi(C):he.Message.isNotification(C)?xr(C):he.Message.isResponse(C)?Sr(C):Pr(C)}function dr(){if(L.size===0)return;let C=L.shift();try{let H=i?.messageStrategy;Mc.is(H)?H.handleMessage(C,xi):xi(C)}finally{lr()}}let fr=C=>{try{if(he.Message.isNotification(C)&&C.method===Es.type.method){let H=C.params.id,Z=se(H),ie=L.get(Z);if(he.Message.isRequest(ie)){let Le=i?.connectionStrategy,Ge=Le&&Le.cancelUndispatched?Le.cancelUndispatched(ie,me):void 0;if(Ge&&(Ge.error!==void 0||Ge.result!==void 0)){L.delete(Z),F.delete(H),Ge.id=ie.id,Bt(Ge,C.method,Date.now()),e.write(Ge).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=F.get(H);if(Ue!==void 0){Ue.cancel(),Hr(C);return}else K.add(H)}ge(L,C)}finally{lr()}};function Qi(C){if(je())return;function H(Re,Qe,Ne){let at={jsonrpc:f,id:C.id};Re instanceof he.ResponseError?at.error=Re.toJson():at.result=Re===void 0?null:Re,Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function Z(Re,Qe,Ne){let at={jsonrpc:f,id:C.id,error:Re.toJson()};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function ie(Re,Qe,Ne){Re===void 0&&(Re=null);let at={jsonrpc:f,id:C.id,result:Re};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}Pi(C);let Ue=v.get(C.method),Le,Ge;Ue&&(Le=Ue.type,Ge=Ue.handler);let tt=Date.now();if(Ge||m){let Re=C.id??String(Date.now()),Qe=Dc.is(z.receiver)?z.receiver.createCancellationTokenSource(Re):z.receiver.createCancellationTokenSource(C);C.id!==null&&K.has(C.id)&&Qe.cancel(),C.id!==null&&F.set(Re,Qe);try{let Ne;if(Ge)if(C.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines ${Le.numberOfParams} params but received none.`),C.method,tt);return}Ne=Ge(Qe.token)}else if(Array.isArray(C.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by name but received parameters by position`),C.method,tt);return}Ne=Ge(...C.params,Qe.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by position but received parameters by name`),C.method,tt);return}Ne=Ge(C.params,Qe.token)}else m&&(Ne=m(C.method,C.params,Qe.token));let at=Ne;Ne?at.then?at.then(Ft=>{F.delete(Re),H(Ft,C.method,tt)},Ft=>{F.delete(Re),Ft instanceof he.ResponseError?Z(Ft,C.method,tt):Ft&&_t.string(Ft.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ft.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}):(F.delete(Re),H(Ne,C.method,tt)):(F.delete(Re),ie(Ne,C.method,tt))}catch(Ne){F.delete(Re),Ne instanceof he.ResponseError?H(Ne,C.method,tt):Ne&&_t.string(Ne.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ne.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${C.method}`),C.method,tt)}function Sr(C){if(!je())if(C.id===null)C.error?s.error(`Received response message without id: Error is: +${JSON.stringify(C.error,void 0,4)}`):s.error("Received response message without id. No further error information provided.");else{let H=C.id,Z=B.get(H);if(gr(C,Z),Z!==void 0){B.delete(H);try{if(C.error){let ie=C.error;Z.reject(new he.ResponseError(ie.code,ie.message,ie.data))}else if(C.result!==void 0)Z.resolve(C.result);else throw new Error("Should never happen.")}catch(ie){ie.message?s.error(`Response handler '${Z.method}' failed with message: ${ie.message}`):s.error(`Response handler '${Z.method}' failed unexpectedly.`)}}}}function xr(C){if(je())return;let H,Z;if(C.method===Es.type.method){let ie=C.params.id;K.delete(ie),Hr(C);return}else{let ie=D.get(C.method);ie&&(Z=ie.handler,H=ie.type)}if(Z||x)try{if(Hr(C),Z)if(C.params===void 0)H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received none.`),Z();else if(Array.isArray(C.params)){let ie=C.params;C.method===Ds.type.method&&ie.length===2&&Xf.is(ie[0])?Z({token:ie[0],value:ie[1]}):(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines parameters by name but received parameters by position`),H.numberOfParams!==C.params.length&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received ${ie.length} arguments`)),Z(...ie))}else H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&s.error(`Notification ${C.method} defines parameters by position but received parameters by name`),Z(C.params);else x&&x(C.method,C.params)}catch(ie){ie.message?s.error(`Notification handler '${C.method}' failed with message: ${ie.message}`):s.error(`Notification handler '${C.method}' failed unexpectedly.`)}else Dt.fire(C)}function Pr(C){if(!C){s.error("Received empty message.");return}s.error(`Received message which is neither a response nor a notification message: +${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z=H.id,ie=B.get(Z);ie&&ie.reject(new Error("The received response has neither a result nor an error property."))}}function mt(C){if(C!=null)switch(P){case He.Verbose:return JSON.stringify(C,null,4);case He.Compact:return JSON.stringify(C);default:return}}function hr(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} -`),ne.log(`Sending request '${S.method} - (${S.id})'.`,V)}else Pt("send-request",S)}function Wi(S){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let V;(P===Ve.Verbose||P===Ve.Compact)&&(S.params?V=`Params: ${bt(S.params)} +`),te.log(`Sending request '${C.method} - (${C.id})'.`,H)}else xt("send-request",C)}function Ki(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} -`:V=`No parameters provided. +`:H=`No parameters provided. -`),ne.log(`Sending notification '${S.method}'.`,V)}else Pt("send-notification",S)}function Ut(S,V,ee){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let oe;(P===Ve.Verbose||P===Ve.Compact)&&(S.error&&S.error.data?oe=`Error data: ${bt(S.error.data)} +`),te.log(`Sending notification '${C.method}'.`,H)}else xt("send-notification",C)}function Bt(C,H,Z){if(!(P===He.Off||!te))if(U===Tn.Text){let ie;(P===He.Verbose||P===He.Compact)&&(C.error&&C.error.data?ie=`Error data: ${mt(C.error.data)} -`:S.result?oe=`Result: ${bt(S.result)} +`:C.result?ie=`Result: ${mt(C.result)} -`:S.error===void 0&&(oe=`No result returned. +`:C.error===void 0&&(ie=`No result returned. -`)),ne.log(`Sending response '${V} - (${S.id})'. Processing request took ${Date.now()-ee}ms`,oe)}else Pt("send-response",S)}function yi(S){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let V;(P===Ve.Verbose||P===Ve.Compact)&&S.params&&(V=`Params: ${bt(S.params)} +`)),te.log(`Sending response '${H} - (${C.id})'. Processing request took ${Date.now()-Z}ms`,ie)}else xt("send-response",C)}function Pi(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} -`),ne.log(`Received request '${S.method} - (${S.id})'.`,V)}else Pt("receive-request",S)}function jr(S){if(!(P===Ve.Off||!ne||S.method===Cc.type.method))if(U===Rn.Text){let V;(P===Ve.Verbose||P===Ve.Compact)&&(S.params?V=`Params: ${bt(S.params)} +`),te.log(`Received request '${C.method} - (${C.id})'.`,H)}else xt("receive-request",C)}function Hr(C){if(!(P===He.Off||!te||C.method===Rc.type.method))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} -`:V=`No parameters provided. +`:H=`No parameters provided. -`),ne.log(`Received notification '${S.method}'.`,V)}else Pt("receive-notification",S)}function hr(S,V){if(!(P===Ve.Off||!ne))if(U===Rn.Text){let ee;if((P===Ve.Verbose||P===Ve.Compact)&&(S.error&&S.error.data?ee=`Error data: ${bt(S.error.data)} +`),te.log(`Received notification '${C.method}'.`,H)}else xt("receive-notification",C)}function gr(C,H){if(!(P===He.Off||!te))if(U===Tn.Text){let Z;if((P===He.Verbose||P===He.Compact)&&(C.error&&C.error.data?Z=`Error data: ${mt(C.error.data)} -`:S.result?ee=`Result: ${bt(S.result)} +`:C.result?Z=`Result: ${mt(C.result)} -`:S.error===void 0&&(ee=`No result returned. +`:C.error===void 0&&(Z=`No result returned. -`)),V){let oe=S.error?` Request failed: ${S.error.message} (${S.error.code}).`:"";ne.log(`Received response '${V.method} - (${S.id})' in ${Date.now()-V.timerStart}ms.${oe}`,ee)}else ne.log(`Received response ${S.id} without active response promise.`,ee)}else Pt("receive-response",S)}function Pt(S,V){if(!ne||P===Ve.Off)return;let ee={isLSPMessage:!0,type:S,message:V,timestamp:Date.now()};ne.log(ee)}function sn(){if(je())throw new fo(Ss.Closed,"Connection is closed.");if(ze())throw new fo(Ss.Disposed,"Connection is disposed.")}function Cr(){if(wt())throw new fo(Ss.AlreadyListening,"Connection is already listening")}function ji(){if(!wt())throw new Error("Call listen() first.")}function Ht(S){return S===void 0?null:S}function xi(S){if(S!==null)return S}function Gn(S){return S!=null&&!Array.isArray(S)&&typeof S=="object"}function _n(S,V){switch(S){case he.ParameterStructures.auto:return Gn(V)?xi(V):[Ht(V)];case he.ParameterStructures.byName:if(!Gn(V))throw new Error("Received parameters by name but param is not an object literal.");return xi(V);case he.ParameterStructures.byPosition:return[Ht(V)];default:throw new Error(`Unknown parameter structure ${S.toString()}`)}}function kr(S,V){let ee,oe=S.numberOfParams;switch(oe){case 0:ee=void 0;break;case 1:ee=_n(S.parameterStructures,V[0]);break;default:ee=[];for(let $e=0;$e{sn();let ee,oe;if(vt.string(S)){ee=S;let Be=V[0],Qe=0,nt=he.ParameterStructures.auto;he.ParameterStructures.is(Be)&&(Qe=1,nt=Be);let Re=V.length,Je=Re-Qe;switch(Je){case 0:oe=void 0;break;case 1:oe=_n(nt,V[Qe]);break;default:if(nt===he.ParameterStructures.byName)throw new Error(`Received ${Je} parameters for 'by Name' notification parameter structure.`);oe=V.slice(Qe,Re).map(qe=>Ht(qe));break}}else{let Be=V;ee=S.method,oe=kr(S,Be)}let $e={jsonrpc:g,method:ee,params:oe};return Wi($e),t.write($e).catch(Be=>{throw o.error("Sending notification failed."),Be})},onNotification:(S,V)=>{sn();let ee;return vt.func(S)?k=S:V&&(vt.string(S)?(ee=S,I.set(S,{type:void 0,handler:V})):(ee=S.method,I.set(S.method,{type:S,handler:V}))),{dispose:()=>{ee!==void 0?I.delete(ee):k=void 0}}},onProgress:(S,V,ee)=>{if(M.has(V))throw new Error(`Progress handler for token ${V} already registered`);return M.set(V,ee),{dispose:()=>{M.delete(V)}}},sendProgress:(S,V,ee)=>vn.sendNotification(Ps.type,{token:V,value:ee}),onUnhandledProgress:xe.event,sendRequest:(S,...V)=>{sn(),ji();let ee,oe,$e;if(vt.string(S)){ee=S;let Re=V[0],Je=V[V.length-1],qe=0,at=he.ParameterStructures.auto;he.ParameterStructures.is(Re)&&(qe=1,at=Re);let Et=V.length;Kf.CancellationToken.is(Je)&&(Et=Et-1,$e=Je);let Zt=Et-qe;switch(Zt){case 0:oe=void 0;break;case 1:oe=_n(at,V[qe]);break;default:if(at===he.ParameterStructures.byName)throw new Error(`Received ${Zt} parameters for 'by Name' request parameter structure.`);oe=V.slice(qe,Et).map(zi=>Ht(zi));break}}else{let Re=V;ee=S.method,oe=kr(S,Re);let Je=S.numberOfParams;$e=Kf.CancellationToken.is(Re[Je])?Re[Je]:void 0}let Be=c++,Qe;$e&&(Qe=$e.onCancellationRequested(()=>{let Re=H.sender.sendCancellation(vn,Be);return Re===void 0?(o.log(`Received no promise from cancellation strategy when cancelling id ${Be}`),Promise.resolve()):Re.catch(()=>{o.log(`Sending cancellation messages for id ${Be} failed`)})}));let nt={jsonrpc:g,id:Be,method:ee,params:oe};return fr(nt),typeof H.sender.enableCancellation=="function"&&H.sender.enableCancellation(nt),new Promise(async(Re,Je)=>{let qe=Zt=>{Re(Zt),H.sender.cleanup(Be),Qe?.dispose()},at=Zt=>{Je(Zt),H.sender.cleanup(Be),Qe?.dispose()},Et={method:ee,timerStart:Date.now(),resolve:qe,reject:at};try{await t.write(nt),W.set(Be,Et)}catch(Zt){throw o.error("Sending request failed."),Et.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Zt.message?Zt.message:"Unknown reason")),Zt}})},onRequest:(S,V)=>{sn();let ee=null;return eh.is(S)?(ee=void 0,b=S):vt.string(S)?(ee=null,V!==void 0&&(ee=S,x.set(S,{handler:V,type:void 0}))):V!==void 0&&(ee=S.method,x.set(S.method,{type:S,handler:V})),{dispose:()=>{ee!==null&&(ee!==void 0?x.delete(ee):b=void 0)}}},hasPendingResponse:()=>W.size>0,trace:async(S,V,ee)=>{let oe=!1,$e=Rn.Text;ee!==void 0&&(vt.boolean(ee)?oe=ee:(oe=ee.sendNotification||!1,$e=ee.traceFormat||Rn.Text)),P=S,U=$e,P===Ve.Off?ne=void 0:ne=V,oe&&!je()&&!ze()&&await vn.sendNotification(th.type,{value:Ve.toString(S)})},onError:Ue.event,onClose:Ke.event,onUnhandledNotification:Dt.event,onDispose:Y.event,end:()=>{t.end()},dispose:()=>{if(ze())return;_e=Zn.Disposed,Y.fire(void 0);let S=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let V of W.values())V.reject(S);W=new Map,D=new Map,X=new Set,B=new I_.LinkedMap,vt.func(t.dispose)&&t.dispose(),vt.func(e.dispose)&&e.dispose()},listen:()=>{sn(),Cr(),_e=Zn.Listening,e.listen(dr)},inspect:()=>{(0,E_.default)().console.log("inspect")}};return vn.onNotification(Cc.type,S=>{if(P===Ve.Off||!ne)return;let V=P===Ve.Verbose||P===Ve.Compact;ne.log(S.message,V?S.verbose:void 0)}),vn.onNotification(Ps.type,S=>{let V=M.get(S.token);V?V(S.value):xe.fire(S)}),vn}Pe.createMessageConnection=IN});var Ic=F(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.ProgressType=z.ProgressToken=z.createMessageConnection=z.NullLogger=z.ConnectionOptions=z.ConnectionStrategy=z.AbstractMessageBuffer=z.WriteableStreamMessageWriter=z.AbstractMessageWriter=z.MessageWriter=z.ReadableStreamMessageReader=z.AbstractMessageReader=z.MessageReader=z.SharedArrayReceiverStrategy=z.SharedArraySenderStrategy=z.CancellationToken=z.CancellationTokenSource=z.Emitter=z.Event=z.Disposable=z.LRUCache=z.Touch=z.LinkedMap=z.ParameterStructures=z.NotificationType9=z.NotificationType8=z.NotificationType7=z.NotificationType6=z.NotificationType5=z.NotificationType4=z.NotificationType3=z.NotificationType2=z.NotificationType1=z.NotificationType0=z.NotificationType=z.ErrorCodes=z.ResponseError=z.RequestType9=z.RequestType8=z.RequestType7=z.RequestType6=z.RequestType5=z.RequestType4=z.RequestType3=z.RequestType2=z.RequestType1=z.RequestType0=z.RequestType=z.Message=z.RAL=void 0;z.MessageStrategy=z.CancellationStrategy=z.CancellationSenderStrategy=z.CancellationReceiverStrategy=z.ConnectionError=z.ConnectionErrors=z.LogTraceNotification=z.SetTraceNotification=z.TraceFormat=z.TraceValues=z.Trace=void 0;var it=Df();Object.defineProperty(z,"Message",{enumerable:!0,get:function(){return it.Message}});Object.defineProperty(z,"RequestType",{enumerable:!0,get:function(){return it.RequestType}});Object.defineProperty(z,"RequestType0",{enumerable:!0,get:function(){return it.RequestType0}});Object.defineProperty(z,"RequestType1",{enumerable:!0,get:function(){return it.RequestType1}});Object.defineProperty(z,"RequestType2",{enumerable:!0,get:function(){return it.RequestType2}});Object.defineProperty(z,"RequestType3",{enumerable:!0,get:function(){return it.RequestType3}});Object.defineProperty(z,"RequestType4",{enumerable:!0,get:function(){return it.RequestType4}});Object.defineProperty(z,"RequestType5",{enumerable:!0,get:function(){return it.RequestType5}});Object.defineProperty(z,"RequestType6",{enumerable:!0,get:function(){return it.RequestType6}});Object.defineProperty(z,"RequestType7",{enumerable:!0,get:function(){return it.RequestType7}});Object.defineProperty(z,"RequestType8",{enumerable:!0,get:function(){return it.RequestType8}});Object.defineProperty(z,"RequestType9",{enumerable:!0,get:function(){return it.RequestType9}});Object.defineProperty(z,"ResponseError",{enumerable:!0,get:function(){return it.ResponseError}});Object.defineProperty(z,"ErrorCodes",{enumerable:!0,get:function(){return it.ErrorCodes}});Object.defineProperty(z,"NotificationType",{enumerable:!0,get:function(){return it.NotificationType}});Object.defineProperty(z,"NotificationType0",{enumerable:!0,get:function(){return it.NotificationType0}});Object.defineProperty(z,"NotificationType1",{enumerable:!0,get:function(){return it.NotificationType1}});Object.defineProperty(z,"NotificationType2",{enumerable:!0,get:function(){return it.NotificationType2}});Object.defineProperty(z,"NotificationType3",{enumerable:!0,get:function(){return it.NotificationType3}});Object.defineProperty(z,"NotificationType4",{enumerable:!0,get:function(){return it.NotificationType4}});Object.defineProperty(z,"NotificationType5",{enumerable:!0,get:function(){return it.NotificationType5}});Object.defineProperty(z,"NotificationType6",{enumerable:!0,get:function(){return it.NotificationType6}});Object.defineProperty(z,"NotificationType7",{enumerable:!0,get:function(){return it.NotificationType7}});Object.defineProperty(z,"NotificationType8",{enumerable:!0,get:function(){return it.NotificationType8}});Object.defineProperty(z,"NotificationType9",{enumerable:!0,get:function(){return it.NotificationType9}});Object.defineProperty(z,"ParameterStructures",{enumerable:!0,get:function(){return it.ParameterStructures}});var ih=If();Object.defineProperty(z,"LinkedMap",{enumerable:!0,get:function(){return ih.LinkedMap}});Object.defineProperty(z,"LRUCache",{enumerable:!0,get:function(){return ih.LRUCache}});Object.defineProperty(z,"Touch",{enumerable:!0,get:function(){return ih.Touch}});var FN=v_();Object.defineProperty(z,"Disposable",{enumerable:!0,get:function(){return FN.Disposable}});var N_=ao();Object.defineProperty(z,"Event",{enumerable:!0,get:function(){return N_.Event}});Object.defineProperty(z,"Emitter",{enumerable:!0,get:function(){return N_.Emitter}});var q_=yc();Object.defineProperty(z,"CancellationTokenSource",{enumerable:!0,get:function(){return q_.CancellationTokenSource}});Object.defineProperty(z,"CancellationToken",{enumerable:!0,get:function(){return q_.CancellationToken}});var L_=x_();Object.defineProperty(z,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return L_.SharedArraySenderStrategy}});Object.defineProperty(z,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return L_.SharedArrayReceiverStrategy}});var oh=P_();Object.defineProperty(z,"MessageReader",{enumerable:!0,get:function(){return oh.MessageReader}});Object.defineProperty(z,"AbstractMessageReader",{enumerable:!0,get:function(){return oh.AbstractMessageReader}});Object.defineProperty(z,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return oh.ReadableStreamMessageReader}});var sh=T_();Object.defineProperty(z,"MessageWriter",{enumerable:!0,get:function(){return sh.MessageWriter}});Object.defineProperty(z,"AbstractMessageWriter",{enumerable:!0,get:function(){return sh.AbstractMessageWriter}});Object.defineProperty(z,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return sh.WriteableStreamMessageWriter}});var AN=D_();Object.defineProperty(z,"AbstractMessageBuffer",{enumerable:!0,get:function(){return AN.AbstractMessageBuffer}});var Wt=M_();Object.defineProperty(z,"ConnectionStrategy",{enumerable:!0,get:function(){return Wt.ConnectionStrategy}});Object.defineProperty(z,"ConnectionOptions",{enumerable:!0,get:function(){return Wt.ConnectionOptions}});Object.defineProperty(z,"NullLogger",{enumerable:!0,get:function(){return Wt.NullLogger}});Object.defineProperty(z,"createMessageConnection",{enumerable:!0,get:function(){return Wt.createMessageConnection}});Object.defineProperty(z,"ProgressToken",{enumerable:!0,get:function(){return Wt.ProgressToken}});Object.defineProperty(z,"ProgressType",{enumerable:!0,get:function(){return Wt.ProgressType}});Object.defineProperty(z,"Trace",{enumerable:!0,get:function(){return Wt.Trace}});Object.defineProperty(z,"TraceValues",{enumerable:!0,get:function(){return Wt.TraceValues}});Object.defineProperty(z,"TraceFormat",{enumerable:!0,get:function(){return Wt.TraceFormat}});Object.defineProperty(z,"SetTraceNotification",{enumerable:!0,get:function(){return Wt.SetTraceNotification}});Object.defineProperty(z,"LogTraceNotification",{enumerable:!0,get:function(){return Wt.LogTraceNotification}});Object.defineProperty(z,"ConnectionErrors",{enumerable:!0,get:function(){return Wt.ConnectionErrors}});Object.defineProperty(z,"ConnectionError",{enumerable:!0,get:function(){return Wt.ConnectionError}});Object.defineProperty(z,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return Wt.CancellationReceiverStrategy}});Object.defineProperty(z,"CancellationSenderStrategy",{enumerable:!0,get:function(){return Wt.CancellationSenderStrategy}});Object.defineProperty(z,"CancellationStrategy",{enumerable:!0,get:function(){return Wt.CancellationStrategy}});Object.defineProperty(z,"MessageStrategy",{enumerable:!0,get:function(){return Wt.MessageStrategy}});var MN=ni();z.RAL=MN.default});var U_=F(lh=>{"use strict";Object.defineProperty(lh,"__esModule",{value:!0});var O_=require("util"),qr=Ic(),Fc=class e extends qr.AbstractMessageBuffer{constructor(t="utf-8"){super(t)}emptyBuffer(){return e.emptyBuffer}fromString(t,n){return Buffer.from(t,n)}toString(t,n){return t instanceof Buffer?t.toString(n):new O_.TextDecoder(n).decode(t)}asNative(t,n){return n===void 0?t instanceof Buffer?t:Buffer.from(t):t instanceof Buffer?t.slice(0,n):Buffer.from(t,0,n)}allocNative(t){return Buffer.allocUnsafe(t)}};Fc.emptyBuffer=Buffer.allocUnsafe(0);var ah=class{constructor(t){this.stream=t}onClose(t){return this.stream.on("close",t),qr.Disposable.create(()=>this.stream.off("close",t))}onError(t){return this.stream.on("error",t),qr.Disposable.create(()=>this.stream.off("error",t))}onEnd(t){return this.stream.on("end",t),qr.Disposable.create(()=>this.stream.off("end",t))}onData(t){return this.stream.on("data",t),qr.Disposable.create(()=>this.stream.off("data",t))}},ch=class{constructor(t){this.stream=t}onClose(t){return this.stream.on("close",t),qr.Disposable.create(()=>this.stream.off("close",t))}onError(t){return this.stream.on("error",t),qr.Disposable.create(()=>this.stream.off("error",t))}onEnd(t){return this.stream.on("end",t),qr.Disposable.create(()=>this.stream.off("end",t))}write(t,n){return new Promise((i,o)=>{let c=u=>{u==null?i():o(u)};typeof t=="string"?this.stream.write(t,n,c):this.stream.write(t,c)})}end(){this.stream.end()}},B_=Object.freeze({messageBuffer:Object.freeze({create:e=>new Fc(e)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(e,t)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(e,void 0,0),t.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(e,t)=>{try{return e instanceof Buffer?Promise.resolve(JSON.parse(e.toString(t.charset))):Promise.resolve(JSON.parse(new O_.TextDecoder(t.charset).decode(e)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:e=>new ah(e),asWritableStream:e=>new ch(e)}),console,timer:Object.freeze({setTimeout(e,t,...n){let i=setTimeout(e,t,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(e,...t){let n=setImmediate(e,...t);return{dispose:()=>clearImmediate(n)}},setInterval(e,t,...n){let i=setInterval(e,t,...n);return{dispose:()=>clearInterval(i)}}})});function uh(){return B_}(function(e){function t(){qr.RAL.install(B_)}e.install=t})(uh||(uh={}));lh.default=uh});var Mi=F(Oe=>{"use strict";var NN=Oe&&Oe.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),qN=Oe&&Oe.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&NN(t,e,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var ho=U_();ho.default.install();var $_=require("path"),LN=require("os"),ON=require("crypto"),Nc=require("net"),Tn=Ic();qN(Ic(),Oe);var dh=class extends Tn.AbstractMessageReader{constructor(t){super(),this.process=t;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(t){return this.process.on("message",t),Tn.Disposable.create(()=>this.process.off("message",t))}};Oe.IPCMessageReader=dh;var fh=class extends Tn.AbstractMessageWriter{constructor(t){super(),this.process=t,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(t){try{return typeof this.process.send=="function"&&this.process.send(t,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,t)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,t),Promise.reject(n)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=fh;var hh=class extends Tn.AbstractMessageReader{constructor(t){super(),this.onData=new Tn.Emitter,t.on("close",()=>this.fireClose),t.on("error",n=>this.fireError(n)),t.on("message",n=>{this.onData.fire(n)})}listen(t){return this.onData.event(t)}};Oe.PortMessageReader=hh;var gh=class extends Tn.AbstractMessageWriter{constructor(t){super(),this.port=t,this.errorCount=0,t.on("close",()=>this.fireClose()),t.on("error",n=>this.fireError(n))}write(t){try{return this.port.postMessage(t),Promise.resolve()}catch(n){return this.handleError(n,t),Promise.reject(n)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){}};Oe.PortMessageWriter=gh;var Fi=class extends Tn.ReadableStreamMessageReader{constructor(t,n="utf-8"){super((0,ho.default)().stream.asReadableStream(t),n)}};Oe.SocketMessageReader=Fi;var Ai=class extends Tn.WriteableStreamMessageWriter{constructor(t,n){super((0,ho.default)().stream.asWritableStream(t),n),this.socket=t}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Ai;var Ac=class extends Tn.ReadableStreamMessageReader{constructor(t,n){super((0,ho.default)().stream.asReadableStream(t),n)}};Oe.StreamMessageReader=Ac;var Mc=class extends Tn.WriteableStreamMessageWriter{constructor(t,n){super((0,ho.default)().stream.asWritableStream(t),n)}};Oe.StreamMessageWriter=Mc;var W_=process.env.XDG_RUNTIME_DIR,BN=new Map([["linux",107],["darwin",103]]);function UN(){let e=(0,ON.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${e}-sock`;let t;W_?t=$_.join(W_,`vscode-ipc-${e}.sock`):t=$_.join(LN.tmpdir(),`vscode-${e}.sock`);let n=BN.get(process.platform);return n!==void 0&&t.length>n&&(0,ho.default)().console.warn(`WARNING: IPC handle "${t}" is longer than ${n} characters.`),t}Oe.generateRandomPipeName=UN;function $N(e,t="utf-8"){let n,i=new Promise((o,c)=>{n=o});return new Promise((o,c)=>{let u=(0,Nc.createServer)(f=>{u.close(),n([new Fi(f,t),new Ai(f,t)])});u.on("error",c),u.listen(e,()=>{u.removeListener("error",c),o({onConnected:()=>i})})})}Oe.createClientPipeTransport=$N;function WN(e,t="utf-8"){let n=(0,Nc.createConnection)(e);return[new Fi(n,t),new Ai(n,t)]}Oe.createServerPipeTransport=WN;function jN(e,t="utf-8"){let n,i=new Promise((o,c)=>{n=o});return new Promise((o,c)=>{let u=(0,Nc.createServer)(f=>{u.close(),n([new Fi(f,t),new Ai(f,t)])});u.on("error",c),u.listen(e,"127.0.0.1",()=>{u.removeListener("error",c),o({onConnected:()=>i})})})}Oe.createClientSocketTransport=jN;function zN(e,t="utf-8"){let n=(0,Nc.createConnection)(e,"127.0.0.1");return[new Fi(n,t),new Ai(n,t)]}Oe.createServerSocketTransport=zN;function HN(e){let t=e;return t.read!==void 0&&t.addListener!==void 0}function VN(e){let t=e;return t.write!==void 0&&t.addListener!==void 0}function GN(e,t,n,i){n||(n=Tn.NullLogger);let o=HN(e)?new Ac(e):e,c=VN(t)?new Mc(t):t;return Tn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Tn.createMessageConnection)(o,c,n,i)}Oe.createMessageConnection=GN});var ph=F((yz,j_)=>{"use strict";j_.exports=Mi()});var Lc=F((z_,qc)=>{"use strict";(function(e){if(typeof qc=="object"&&typeof qc.exports=="object"){var t=e(require,z_);t!==void 0&&(qc.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextDocument=t.EOL=t.WorkspaceFolder=t.InlineCompletionContext=t.SelectedCompletionInfo=t.InlineCompletionTriggerKind=t.InlineCompletionList=t.InlineCompletionItem=t.StringValue=t.InlayHint=t.InlayHintLabelPart=t.InlayHintKind=t.InlineValueContext=t.InlineValueEvaluatableExpression=t.InlineValueVariableLookup=t.InlineValueText=t.SemanticTokens=t.SemanticTokenModifiers=t.SemanticTokenTypes=t.SelectionRange=t.DocumentLink=t.FormattingOptions=t.CodeLens=t.CodeAction=t.CodeActionContext=t.CodeActionTriggerKind=t.CodeActionKind=t.DocumentSymbol=t.WorkspaceSymbol=t.SymbolInformation=t.SymbolTag=t.SymbolKind=t.DocumentHighlight=t.DocumentHighlightKind=t.SignatureInformation=t.ParameterInformation=t.Hover=t.MarkedString=t.CompletionList=t.CompletionItem=t.CompletionItemLabelDetails=t.InsertTextMode=t.InsertReplaceEdit=t.CompletionItemTag=t.InsertTextFormat=t.CompletionItemKind=t.MarkupContent=t.MarkupKind=t.TextDocumentItem=t.OptionalVersionedTextDocumentIdentifier=t.VersionedTextDocumentIdentifier=t.TextDocumentIdentifier=t.WorkspaceChange=t.WorkspaceEdit=t.DeleteFile=t.RenameFile=t.CreateFile=t.TextDocumentEdit=t.AnnotatedTextEdit=t.ChangeAnnotationIdentifier=t.ChangeAnnotation=t.TextEdit=t.Command=t.Diagnostic=t.CodeDescription=t.DiagnosticTag=t.DiagnosticSeverity=t.DiagnosticRelatedInformation=t.FoldingRange=t.FoldingRangeKind=t.ColorPresentation=t.ColorInformation=t.Color=t.LocationLink=t.Location=t.Range=t.Position=t.uinteger=t.integer=t.URI=t.DocumentUri=void 0;var n;(function(p){function C(T){return typeof T=="string"}p.is=C})(n||(t.DocumentUri=n={}));var i;(function(p){function C(T){return typeof T=="string"}p.is=C})(i||(t.URI=i={}));var o;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function C(T){return typeof T=="number"&&p.MIN_VALUE<=T&&T<=p.MAX_VALUE}p.is=C})(o||(t.integer=o={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function C(T){return typeof T=="number"&&p.MIN_VALUE<=T&&T<=p.MAX_VALUE}p.is=C})(c||(t.uinteger=c={}));var u;(function(p){function C(v,h){return v===Number.MAX_VALUE&&(v=c.MAX_VALUE),h===Number.MAX_VALUE&&(h=c.MAX_VALUE),{line:v,character:h}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.uinteger(h.line)&&q.uinteger(h.character)}p.is=T})(u||(t.Position=u={}));var f;(function(p){function C(v,h,L,Q){if(q.uinteger(v)&&q.uinteger(h)&&q.uinteger(L)&&q.uinteger(Q))return{start:u.create(v,h),end:u.create(L,Q)};if(u.is(v)&&u.is(h))return{start:v,end:h};throw new Error("Range#create called with invalid arguments[".concat(v,", ").concat(h,", ").concat(L,", ").concat(Q,"]"))}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&u.is(h.start)&&u.is(h.end)}p.is=T})(f||(t.Range=f={}));var g;(function(p){function C(v,h){return{uri:v,range:h}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&f.is(h.range)&&(q.string(h.uri)||q.undefined(h.uri))}p.is=T})(g||(t.Location=g={}));var b;(function(p){function C(v,h,L,Q){return{targetUri:v,targetRange:h,targetSelectionRange:L,originSelectionRange:Q}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&f.is(h.targetRange)&&q.string(h.targetUri)&&f.is(h.targetSelectionRange)&&(f.is(h.originSelectionRange)||q.undefined(h.originSelectionRange))}p.is=T})(b||(t.LocationLink=b={}));var x;(function(p){function C(v,h,L,Q){return{red:v,green:h,blue:L,alpha:Q}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.numberRange(h.red,0,1)&&q.numberRange(h.green,0,1)&&q.numberRange(h.blue,0,1)&&q.numberRange(h.alpha,0,1)}p.is=T})(x||(t.Color=x={}));var k;(function(p){function C(v,h){return{range:v,color:h}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&f.is(h.range)&&x.is(h.color)}p.is=T})(k||(t.ColorInformation=k={}));var I;(function(p){function C(v,h,L){return{label:v,textEdit:h,additionalTextEdits:L}}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.string(h.label)&&(q.undefined(h.textEdit)||ne.is(h))&&(q.undefined(h.additionalTextEdits)||q.typedArray(h.additionalTextEdits,ne.is))}p.is=T})(I||(t.ColorPresentation=I={}));var M;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(M||(t.FoldingRangeKind=M={}));var N;(function(p){function C(v,h,L,Q,be,ht){var Ye={startLine:v,endLine:h};return q.defined(L)&&(Ye.startCharacter=L),q.defined(Q)&&(Ye.endCharacter=Q),q.defined(be)&&(Ye.kind=be),q.defined(ht)&&(Ye.collapsedText=ht),Ye}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.uinteger(h.startLine)&&q.uinteger(h.startLine)&&(q.undefined(h.startCharacter)||q.uinteger(h.startCharacter))&&(q.undefined(h.endCharacter)||q.uinteger(h.endCharacter))&&(q.undefined(h.kind)||q.string(h.kind))}p.is=T})(N||(t.FoldingRange=N={}));var B;(function(p){function C(v,h){return{location:v,message:h}}p.create=C;function T(v){var h=v;return q.defined(h)&&g.is(h.location)&&q.string(h.message)}p.is=T})(B||(t.DiagnosticRelatedInformation=B={}));var W;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(W||(t.DiagnosticSeverity=W={}));var X;(function(p){p.Unnecessary=1,p.Deprecated=2})(X||(t.DiagnosticTag=X={}));var D;(function(p){function C(T){var v=T;return q.objectLiteral(v)&&q.string(v.href)}p.is=C})(D||(t.CodeDescription=D={}));var P;(function(p){function C(v,h,L,Q,be,ht){var Ye={range:v,message:h};return q.defined(L)&&(Ye.severity=L),q.defined(Q)&&(Ye.code=Q),q.defined(be)&&(Ye.source=be),q.defined(ht)&&(Ye.relatedInformation=ht),Ye}p.create=C;function T(v){var h,L=v;return q.defined(L)&&f.is(L.range)&&q.string(L.message)&&(q.number(L.severity)||q.undefined(L.severity))&&(q.integer(L.code)||q.string(L.code)||q.undefined(L.code))&&(q.undefined(L.codeDescription)||q.string((h=L.codeDescription)===null||h===void 0?void 0:h.href))&&(q.string(L.source)||q.undefined(L.source))&&(q.undefined(L.relatedInformation)||q.typedArray(L.relatedInformation,B.is))}p.is=T})(P||(t.Diagnostic=P={}));var U;(function(p){function C(v,h){for(var L=[],Q=2;Q0&&(be.arguments=L),be}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.title)&&q.string(h.command)}p.is=T})(U||(t.Command=U={}));var ne;(function(p){function C(L,Q){return{range:L,newText:Q}}p.replace=C;function T(L,Q){return{range:{start:L,end:L},newText:Q}}p.insert=T;function v(L){return{range:L,newText:""}}p.del=v;function h(L){var Q=L;return q.objectLiteral(Q)&&q.string(Q.newText)&&f.is(Q.range)}p.is=h})(ne||(t.TextEdit=ne={}));var _e;(function(p){function C(v,h,L){var Q={label:v};return h!==void 0&&(Q.needsConfirmation=h),L!==void 0&&(Q.description=L),Q}p.create=C;function T(v){var h=v;return q.objectLiteral(h)&&q.string(h.label)&&(q.boolean(h.needsConfirmation)||h.needsConfirmation===void 0)&&(q.string(h.description)||h.description===void 0)}p.is=T})(_e||(t.ChangeAnnotation=_e={}));var Ue;(function(p){function C(T){var v=T;return q.string(v)}p.is=C})(Ue||(t.ChangeAnnotationIdentifier=Ue={}));var Ke;(function(p){function C(L,Q,be){return{range:L,newText:Q,annotationId:be}}p.replace=C;function T(L,Q,be){return{range:{start:L,end:L},newText:Q,annotationId:be}}p.insert=T;function v(L,Q){return{range:L,newText:"",annotationId:Q}}p.del=v;function h(L){var Q=L;return ne.is(Q)&&(_e.is(Q.annotationId)||Ue.is(Q.annotationId))}p.is=h})(Ke||(t.AnnotatedTextEdit=Ke={}));var Dt;(function(p){function C(v,h){return{textDocument:v,edits:h}}p.create=C;function T(v){var h=v;return q.defined(h)&&je.is(h.textDocument)&&Array.isArray(h.edits)}p.is=T})(Dt||(t.TextDocumentEdit=Dt={}));var xe;(function(p){function C(v,h,L){var Q={kind:"create",uri:v};return h!==void 0&&(h.overwrite!==void 0||h.ignoreIfExists!==void 0)&&(Q.options=h),L!==void 0&&(Q.annotationId=L),Q}p.create=C;function T(v){var h=v;return h&&h.kind==="create"&&q.string(h.uri)&&(h.options===void 0||(h.options.overwrite===void 0||q.boolean(h.options.overwrite))&&(h.options.ignoreIfExists===void 0||q.boolean(h.options.ignoreIfExists)))&&(h.annotationId===void 0||Ue.is(h.annotationId))}p.is=T})(xe||(t.CreateFile=xe={}));var Y;(function(p){function C(v,h,L,Q){var be={kind:"rename",oldUri:v,newUri:h};return L!==void 0&&(L.overwrite!==void 0||L.ignoreIfExists!==void 0)&&(be.options=L),Q!==void 0&&(be.annotationId=Q),be}p.create=C;function T(v){var h=v;return h&&h.kind==="rename"&&q.string(h.oldUri)&&q.string(h.newUri)&&(h.options===void 0||(h.options.overwrite===void 0||q.boolean(h.options.overwrite))&&(h.options.ignoreIfExists===void 0||q.boolean(h.options.ignoreIfExists)))&&(h.annotationId===void 0||Ue.is(h.annotationId))}p.is=T})(Y||(t.RenameFile=Y={}));var H;(function(p){function C(v,h,L){var Q={kind:"delete",uri:v};return h!==void 0&&(h.recursive!==void 0||h.ignoreIfNotExists!==void 0)&&(Q.options=h),L!==void 0&&(Q.annotationId=L),Q}p.create=C;function T(v){var h=v;return h&&h.kind==="delete"&&q.string(h.uri)&&(h.options===void 0||(h.options.recursive===void 0||q.boolean(h.options.recursive))&&(h.options.ignoreIfNotExists===void 0||q.boolean(h.options.ignoreIfNotExists)))&&(h.annotationId===void 0||Ue.is(h.annotationId))}p.is=T})(H||(t.DeleteFile=H={}));var ae;(function(p){function C(T){var v=T;return v&&(v.changes!==void 0||v.documentChanges!==void 0)&&(v.documentChanges===void 0||v.documentChanges.every(function(h){return q.string(h.kind)?xe.is(h)||Y.is(h)||H.is(h):Dt.is(h)}))}p.is=C})(ae||(t.WorkspaceEdit=ae={}));var ie=function(){function p(C,T){this.edits=C,this.changeAnnotations=T}return p.prototype.insert=function(C,T,v){var h,L;if(v===void 0?h=ne.insert(C,T):Ue.is(v)?(L=v,h=Ke.insert(C,T,v)):(this.assertChangeAnnotations(this.changeAnnotations),L=this.changeAnnotations.manage(v),h=Ke.insert(C,T,L)),this.edits.push(h),L!==void 0)return L},p.prototype.replace=function(C,T,v){var h,L;if(v===void 0?h=ne.replace(C,T):Ue.is(v)?(L=v,h=Ke.replace(C,T,v)):(this.assertChangeAnnotations(this.changeAnnotations),L=this.changeAnnotations.manage(v),h=Ke.replace(C,T,L)),this.edits.push(h),L!==void 0)return L},p.prototype.delete=function(C,T){var v,h;if(T===void 0?v=ne.del(C):Ue.is(T)?(h=T,v=Ke.del(C,T)):(this.assertChangeAnnotations(this.changeAnnotations),h=this.changeAnnotations.manage(T),v=Ke.del(C,h)),this.edits.push(v),h!==void 0)return h},p.prototype.add=function(C){this.edits.push(C)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(C){if(C===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),ke=function(){function p(C){this._annotations=C===void 0?Object.create(null):C,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(C,T){var v;if(Ue.is(C)?v=C:(v=this.nextId(),T=C),this._annotations[v]!==void 0)throw new Error("Id ".concat(v," is already in use."));if(T===void 0)throw new Error("No annotation provided for id ".concat(v));return this._annotations[v]=T,this._size++,v},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(C){var T=this;this._textEditChanges=Object.create(null),C!==void 0?(this._workspaceEdit=C,C.documentChanges?(this._changeAnnotations=new ke(C.changeAnnotations),C.changeAnnotations=this._changeAnnotations.all(),C.documentChanges.forEach(function(v){if(Dt.is(v)){var h=new ie(v.edits,T._changeAnnotations);T._textEditChanges[v.textDocument.uri]=h}})):C.changes&&Object.keys(C.changes).forEach(function(v){var h=new ie(C.changes[v]);T._textEditChanges[v]=h})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(C){if(je.is(C)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var T={uri:C.uri,version:C.version},v=this._textEditChanges[T.uri];if(!v){var h=[],L={textDocument:T,edits:h};this._workspaceEdit.documentChanges.push(L),v=new ie(h,this._changeAnnotations),this._textEditChanges[T.uri]=v}return v}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var v=this._textEditChanges[C];if(!v){var h=[];this._workspaceEdit.changes[C]=h,v=new ie(h),this._textEditChanges[C]=v}return v}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ke,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(C,T,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var h;_e.is(T)||Ue.is(T)?h=T:v=T;var L,Q;if(h===void 0?L=xe.create(C,v):(Q=Ue.is(h)?h:this._changeAnnotations.manage(h),L=xe.create(C,v,Q)),this._workspaceEdit.documentChanges.push(L),Q!==void 0)return Q},p.prototype.renameFile=function(C,T,v,h){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var L;_e.is(v)||Ue.is(v)?L=v:h=v;var Q,be;if(L===void 0?Q=Y.create(C,T,h):(be=Ue.is(L)?L:this._changeAnnotations.manage(L),Q=Y.create(C,T,h,be)),this._workspaceEdit.documentChanges.push(Q),be!==void 0)return be},p.prototype.deleteFile=function(C,T,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var h;_e.is(T)||Ue.is(T)?h=T:v=T;var L,Q;if(h===void 0?L=H.create(C,v):(Q=Ue.is(h)?h:this._changeAnnotations.manage(h),L=H.create(C,v,Q)),this._workspaceEdit.documentChanges.push(L),Q!==void 0)return Q},p}();t.WorkspaceChange=ge;var pe;(function(p){function C(v){return{uri:v}}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.uri)}p.is=T})(pe||(t.TextDocumentIdentifier=pe={}));var wt;(function(p){function C(v,h){return{uri:v,version:h}}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.uri)&&q.integer(h.version)}p.is=T})(wt||(t.VersionedTextDocumentIdentifier=wt={}));var je;(function(p){function C(v,h){return{uri:v,version:h}}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.uri)&&(h.version===null||q.integer(h.version))}p.is=T})(je||(t.OptionalVersionedTextDocumentIdentifier=je={}));var ze;(function(p){function C(v,h,L,Q){return{uri:v,languageId:h,version:L,text:Q}}p.create=C;function T(v){var h=v;return q.defined(h)&&q.string(h.uri)&&q.string(h.languageId)&&q.integer(h.version)&&q.string(h.text)}p.is=T})(ze||(t.TextDocumentItem=ze={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function C(T){var v=T;return v===p.PlainText||v===p.Markdown}p.is=C})(bn||(t.MarkupKind=bn={}));var xr;(function(p){function C(T){var v=T;return q.objectLiteral(T)&&bn.is(v.kind)&&q.string(v.value)}p.is=C})(xr||(t.MarkupContent=xr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(t.CompletionItemKind=Vn={}));var ur;(function(p){p.PlainText=1,p.Snippet=2})(ur||(t.InsertTextFormat=ur={}));var vi;(function(p){p.Deprecated=1})(vi||(t.CompletionItemTag=vi={}));var lr;(function(p){function C(v,h,L){return{newText:v,insert:h,replace:L}}p.create=C;function T(v){var h=v;return h&&q.string(h.newText)&&f.is(h.insert)&&f.is(h.replace)}p.is=T})(lr||(t.InsertReplaceEdit=lr={}));var dr;(function(p){p.asIs=1,p.adjustIndentation=2})(dr||(t.InsertTextMode=dr={}));var $i;(function(p){function C(T){var v=T;return v&&(q.string(v.detail)||v.detail===void 0)&&(q.string(v.description)||v.description===void 0)}p.is=C})($i||(t.CompletionItemLabelDetails=$i={}));var wr;(function(p){function C(T){return{label:T}}p.create=C})(wr||(t.CompletionItem=wr={}));var Pr;(function(p){function C(T,v){return{items:T||[],isIncomplete:!!v}}p.create=C})(Pr||(t.CompletionList=Pr={}));var Sr;(function(p){function C(v){return v.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=C;function T(v){var h=v;return q.string(h)||q.objectLiteral(h)&&q.string(h.language)&&q.string(h.value)}p.is=T})(Sr||(t.MarkedString=Sr={}));var bt;(function(p){function C(T){var v=T;return!!v&&q.objectLiteral(v)&&(xr.is(v.contents)||Sr.is(v.contents)||q.typedArray(v.contents,Sr.is))&&(T.range===void 0||f.is(T.range))}p.is=C})(bt||(t.Hover=bt={}));var fr;(function(p){function C(T,v){return v?{label:T,documentation:v}:{label:T}}p.create=C})(fr||(t.ParameterInformation=fr={}));var Wi;(function(p){function C(T,v){for(var h=[],L=2;L{sn();let Z,ie;if(_t.string(C)){Z=C;let Le=H[0],Ge=0,tt=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Ge=1,tt=Le);let Re=H.length,Qe=Re-Ge;switch(Qe){case 0:ie=void 0;break;case 1:ie=_n(tt,H[Ge]);break;default:if(tt===he.ParameterStructures.byName)throw new Error(`Received ${Qe} parameters for 'by Name' notification parameter structure.`);ie=H.slice(Ge,Re).map(Ne=>jt(Ne));break}}else{let Le=H;Z=C.method,ie=kr(C,Le)}let Ue={jsonrpc:f,method:Z,params:ie};return Ki(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(C,H)=>{sn();let Z;return _t.func(C)?x=C:H&&(_t.string(C)?(Z=C,D.set(C,{type:void 0,handler:H})):(Z=C.method,D.set(C.method,{type:C,handler:H}))),{dispose:()=>{Z!==void 0?D.delete(Z):x=void 0}}},onProgress:(C,H,Z)=>{if(N.has(H))throw new Error(`Progress handler for token ${H} already registered`);return N.set(H,Z),{dispose:()=>{N.delete(H)}}},sendProgress:(C,H,Z)=>vn.sendNotification(Ds.type,{token:H,value:Z}),onUnhandledProgress:Se.event,sendRequest:(C,...H)=>{sn(),Ji();let Z,ie,Ue;if(_t.string(C)){Z=C;let Re=H[0],Qe=H[H.length-1],Ne=0,at=he.ParameterStructures.auto;he.ParameterStructures.is(Re)&&(Ne=1,at=Re);let Ft=H.length;Jf.CancellationToken.is(Qe)&&(Ft=Ft-1,Ue=Qe);let Yt=Ft-Ne;switch(Yt){case 0:ie=void 0;break;case 1:ie=_n(at,H[Ne]);break;default:if(at===he.ParameterStructures.byName)throw new Error(`Received ${Yt} parameters for 'by Name' request parameter structure.`);ie=H.slice(Ne,Ft).map(Xi=>jt(Xi));break}}else{let Re=H;Z=C.method,ie=kr(C,Re);let Qe=C.numberOfParams;Ue=Jf.CancellationToken.is(Re[Qe])?Re[Qe]:void 0}let Le=c++,Ge;Ue&&(Ge=Ue.onCancellationRequested(()=>{let Re=z.sender.sendCancellation(vn,Le);return Re===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):Re.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let tt={jsonrpc:f,id:Le,method:Z,params:ie};return hr(tt),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(tt),new Promise(async(Re,Qe)=>{let Ne=Yt=>{Re(Yt),z.sender.cleanup(Le),Ge?.dispose()},at=Yt=>{Qe(Yt),z.sender.cleanup(Le),Ge?.dispose()},Ft={method:Z,timerStart:Date.now(),resolve:Ne,reject:at};try{await e.write(tt),B.set(Le,Ft)}catch(Yt){throw s.error("Sending request failed."),Ft.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Yt.message?Yt.message:"Unknown reason")),Yt}})},onRequest:(C,H)=>{sn();let Z=null;return Zf.is(C)?(Z=void 0,m=C):_t.string(C)?(Z=null,H!==void 0&&(Z=C,v.set(C,{handler:H,type:void 0}))):H!==void 0&&(Z=C.method,v.set(C.method,{type:C,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?v.delete(Z):m=void 0)}}},hasPendingResponse:()=>B.size>0,trace:async(C,H,Z)=>{let ie=!1,Ue=Tn.Text;Z!==void 0&&(_t.boolean(Z)?ie=Z:(ie=Z.sendNotification||!1,Ue=Z.traceFormat||Tn.Text)),P=C,U=Ue,P===He.Off?te=void 0:te=H,ie&&!We()&&!je()&&await vn.sendNotification(eh.type,{value:He.toString(C)})},onError:Be.event,onClose:Je.event,onUnhandledNotification:Dt.event,onDispose:X.event,end:()=>{e.end()},dispose:()=>{if(je())return;ve=Zn.Disposed,X.fire(void 0);let C=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of B.values())H.reject(C);B=new Map,F=new Map,K=new Set,L=new P_.LinkedMap,_t.func(e.dispose)&&e.dispose(),_t.func(t.dispose)&&t.dispose()},listen:()=>{sn(),Cr(),ve=Zn.Listening,t.listen(fr)},inspect:()=>{(0,x_.default)().console.log("inspect")}};return vn.onNotification(Rc.type,C=>{if(P===He.Off||!te)return;let H=P===He.Verbose||P===He.Compact;te.log(C.message,H?C.verbose:void 0)}),vn.onNotification(Ds.type,C=>{let H=N.get(C.token);H?H(C.value):Se.fire(C)}),vn}Pe.createMessageConnection=RA});var Ac=I(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var rt=Rf();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return rt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return rt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return rt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return rt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return rt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return rt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return rt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return rt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return rt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return rt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return rt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return rt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return rt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return rt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return rt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return rt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return rt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return rt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return rt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return rt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return rt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return rt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return rt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return rt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return rt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return rt.ParameterStructures}});var rh=Ff();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return rh.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return rh.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return rh.Touch}});var DA=f_();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return DA.Disposable}});var R_=po();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return R_.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return R_.Emitter}});var D_=xc();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return D_.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return D_.CancellationToken}});var F_=g_();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return F_.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return F_.SharedArrayReceiverStrategy}});var ih=m_();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return ih.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return ih.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return ih.ReadableStreamMessageReader}});var oh=w_();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return oh.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return oh.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return oh.WriteableStreamMessageWriter}});var FA=S_();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return FA.AbstractMessageBuffer}});var $t=T_();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return $t.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return $t.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return $t.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return $t.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return $t.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return $t.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return $t.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return $t.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return $t.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return $t.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return $t.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return $t.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return $t.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return $t.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return $t.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return $t.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return $t.MessageStrategy}});var EA=ii();j.RAL=EA.default});var M_=I(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var E_=require("util"),qr=Ac(),Nc=class t extends qr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new E_.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};Nc.emptyBuffer=Buffer.allocUnsafe(0);var sh=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),qr.Disposable.create(()=>this.stream.off("data",e))}},ah=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},I_=Object.freeze({messageBuffer:Object.freeze({create:t=>new Nc(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new E_.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new sh(t),asWritableStream:t=>new ah(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function ch(){return I_}(function(t){function e(){qr.RAL.install(I_)}t.install=e})(ch||(ch={}));uh.default=ch});var Bi=I(Oe=>{"use strict";var IA=Oe&&Oe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),MA=Oe&&Oe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&IA(e,t,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var yo=M_();yo.default.install();var A_=require("path"),AA=require("os"),NA=require("crypto"),Lc=require("net"),Rn=Ac();MA(Ac(),Oe);var lh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Rn.Disposable.create(()=>this.process.off("message",e))}};Oe.IPCMessageReader=lh;var dh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=dh;var fh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.onData=new Rn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};Oe.PortMessageReader=fh;var hh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.PortMessageWriter=hh;var Oi=class extends Rn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.SocketMessageReader=Oi;var Li=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Li;var qc=class extends Rn.ReadableStreamMessageReader{constructor(e,n){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.StreamMessageReader=qc;var Oc=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n)}};Oe.StreamMessageWriter=Oc;var N_=process.env.XDG_RUNTIME_DIR,qA=new Map([["linux",107],["darwin",103]]);function OA(){let t=(0,NA.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;N_?e=A_.join(N_,`vscode-ipc-${t}.sock`):e=A_.join(AA.tmpdir(),`vscode-${t}.sock`);let n=qA.get(process.platform);return n!==void 0&&e.length>n&&(0,yo.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}Oe.generateRandomPipeName=OA;function LA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientPipeTransport=LA;function BA(t,e="utf-8"){let n=(0,Lc.createConnection)(t);return[new Oi(n,e),new Li(n,e)]}Oe.createServerPipeTransport=BA;function UA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientSocketTransport=UA;function $A(t,e="utf-8"){let n=(0,Lc.createConnection)(t,"127.0.0.1");return[new Oi(n,e),new Li(n,e)]}Oe.createServerSocketTransport=$A;function WA(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function jA(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function zA(t,e,n,i){n||(n=Rn.NullLogger);let s=WA(t)?new qc(t):t,c=jA(e)?new Oc(e):e;return Rn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Rn.createMessageConnection)(s,c,n,i)}Oe.createMessageConnection=zA});var gh=I((P2,q_)=>{"use strict";q_.exports=Bi()});var Uc=I((O_,Bc)=>{"use strict";(function(t){if(typeof Bc=="object"&&typeof Bc.exports=="object"){var e=t(require,O_);e!==void 0&&(Bc.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function k(R){return typeof R=="string"}p.is=k})(n||(e.DocumentUri=n={}));var i;(function(p){function k(R){return typeof R=="string"}p.is=k})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(c||(e.uinteger=c={}));var u;(function(p){function k(y,g){return y===Number.MAX_VALUE&&(y=c.MAX_VALUE),g===Number.MAX_VALUE&&(g=c.MAX_VALUE),{line:y,character:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.line)&&q.uinteger(g.character)}p.is=R})(u||(e.Position=u={}));var d;(function(p){function k(y,g,O,G){if(q.uinteger(y)&&q.uinteger(g)&&q.uinteger(O)&&q.uinteger(G))return{start:u.create(y,g),end:u.create(O,G)};if(u.is(y)&&u.is(g))return{start:y,end:g};throw new Error("Range#create called with invalid arguments[".concat(y,", ").concat(g,", ").concat(O,", ").concat(G,"]"))}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&u.is(g.start)&&u.is(g.end)}p.is=R})(d||(e.Range=d={}));var f;(function(p){function k(y,g){return{uri:y,range:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&(q.string(g.uri)||q.undefined(g.uri))}p.is=R})(f||(e.Location=f={}));var m;(function(p){function k(y,g,O,G){return{targetUri:y,targetRange:g,targetSelectionRange:O,originSelectionRange:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.targetRange)&&q.string(g.targetUri)&&d.is(g.targetSelectionRange)&&(d.is(g.originSelectionRange)||q.undefined(g.originSelectionRange))}p.is=R})(m||(e.LocationLink=m={}));var v;(function(p){function k(y,g,O,G){return{red:y,green:g,blue:O,alpha:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.numberRange(g.red,0,1)&&q.numberRange(g.green,0,1)&&q.numberRange(g.blue,0,1)&&q.numberRange(g.alpha,0,1)}p.is=R})(v||(e.Color=v={}));var x;(function(p){function k(y,g){return{range:y,color:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&v.is(g.color)}p.is=R})(x||(e.ColorInformation=x={}));var D;(function(p){function k(y,g,O){return{label:y,textEdit:g,additionalTextEdits:O}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.undefined(g.textEdit)||te.is(g))&&(q.undefined(g.additionalTextEdits)||q.typedArray(g.additionalTextEdits,te.is))}p.is=R})(D||(e.ColorPresentation=D={}));var N;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(N||(e.FoldingRangeKind=N={}));var A;(function(p){function k(y,g,O,G,be,ft){var Xe={startLine:y,endLine:g};return q.defined(O)&&(Xe.startCharacter=O),q.defined(G)&&(Xe.endCharacter=G),q.defined(be)&&(Xe.kind=be),q.defined(ft)&&(Xe.collapsedText=ft),Xe}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.startLine)&&q.uinteger(g.startLine)&&(q.undefined(g.startCharacter)||q.uinteger(g.startCharacter))&&(q.undefined(g.endCharacter)||q.uinteger(g.endCharacter))&&(q.undefined(g.kind)||q.string(g.kind))}p.is=R})(A||(e.FoldingRange=A={}));var L;(function(p){function k(y,g){return{location:y,message:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&f.is(g.location)&&q.string(g.message)}p.is=R})(L||(e.DiagnosticRelatedInformation=L={}));var B;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(B||(e.DiagnosticSeverity=B={}));var K;(function(p){p.Unnecessary=1,p.Deprecated=2})(K||(e.DiagnosticTag=K={}));var F;(function(p){function k(R){var y=R;return q.objectLiteral(y)&&q.string(y.href)}p.is=k})(F||(e.CodeDescription=F={}));var P;(function(p){function k(y,g,O,G,be,ft){var Xe={range:y,message:g};return q.defined(O)&&(Xe.severity=O),q.defined(G)&&(Xe.code=G),q.defined(be)&&(Xe.source=be),q.defined(ft)&&(Xe.relatedInformation=ft),Xe}p.create=k;function R(y){var g,O=y;return q.defined(O)&&d.is(O.range)&&q.string(O.message)&&(q.number(O.severity)||q.undefined(O.severity))&&(q.integer(O.code)||q.string(O.code)||q.undefined(O.code))&&(q.undefined(O.codeDescription)||q.string((g=O.codeDescription)===null||g===void 0?void 0:g.href))&&(q.string(O.source)||q.undefined(O.source))&&(q.undefined(O.relatedInformation)||q.typedArray(O.relatedInformation,L.is))}p.is=R})(P||(e.Diagnostic=P={}));var U;(function(p){function k(y,g){for(var O=[],G=2;G0&&(be.arguments=O),be}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.title)&&q.string(g.command)}p.is=R})(U||(e.Command=U={}));var te;(function(p){function k(O,G){return{range:O,newText:G}}p.replace=k;function R(O,G){return{range:{start:O,end:O},newText:G}}p.insert=R;function y(O){return{range:O,newText:""}}p.del=y;function g(O){var G=O;return q.objectLiteral(G)&&q.string(G.newText)&&d.is(G.range)}p.is=g})(te||(e.TextEdit=te={}));var ve;(function(p){function k(y,g,O){var G={label:y};return g!==void 0&&(G.needsConfirmation=g),O!==void 0&&(G.description=O),G}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.boolean(g.needsConfirmation)||g.needsConfirmation===void 0)&&(q.string(g.description)||g.description===void 0)}p.is=R})(ve||(e.ChangeAnnotation=ve={}));var Be;(function(p){function k(R){var y=R;return q.string(y)}p.is=k})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Je;(function(p){function k(O,G,be){return{range:O,newText:G,annotationId:be}}p.replace=k;function R(O,G,be){return{range:{start:O,end:O},newText:G,annotationId:be}}p.insert=R;function y(O,G){return{range:O,newText:"",annotationId:G}}p.del=y;function g(O){var G=O;return te.is(G)&&(ve.is(G.annotationId)||Be.is(G.annotationId))}p.is=g})(Je||(e.AnnotatedTextEdit=Je={}));var Dt;(function(p){function k(y,g){return{textDocument:y,edits:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&We.is(g.textDocument)&&Array.isArray(g.edits)}p.is=R})(Dt||(e.TextDocumentEdit=Dt={}));var Se;(function(p){function k(y,g,O){var G={kind:"create",uri:y};return g!==void 0&&(g.overwrite!==void 0||g.ignoreIfExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="create"&&q.string(g.uri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(Se||(e.CreateFile=Se={}));var X;(function(p){function k(y,g,O,G){var be={kind:"rename",oldUri:y,newUri:g};return O!==void 0&&(O.overwrite!==void 0||O.ignoreIfExists!==void 0)&&(be.options=O),G!==void 0&&(be.annotationId=G),be}p.create=k;function R(y){var g=y;return g&&g.kind==="rename"&&q.string(g.oldUri)&&q.string(g.newUri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(X||(e.RenameFile=X={}));var z;(function(p){function k(y,g,O){var G={kind:"delete",uri:y};return g!==void 0&&(g.recursive!==void 0||g.ignoreIfNotExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="delete"&&q.string(g.uri)&&(g.options===void 0||(g.options.recursive===void 0||q.boolean(g.options.recursive))&&(g.options.ignoreIfNotExists===void 0||q.boolean(g.options.ignoreIfNotExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var se;(function(p){function k(R){var y=R;return y&&(y.changes!==void 0||y.documentChanges!==void 0)&&(y.documentChanges===void 0||y.documentChanges.every(function(g){return q.string(g.kind)?Se.is(g)||X.is(g)||z.is(g):Dt.is(g)}))}p.is=k})(se||(e.WorkspaceEdit=se={}));var re=function(){function p(k,R){this.edits=k,this.changeAnnotations=R}return p.prototype.insert=function(k,R,y){var g,O;if(y===void 0?g=te.insert(k,R):Be.is(y)?(O=y,g=Je.insert(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.insert(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.replace=function(k,R,y){var g,O;if(y===void 0?g=te.replace(k,R):Be.is(y)?(O=y,g=Je.replace(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.replace(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.delete=function(k,R){var y,g;if(R===void 0?y=te.del(k):Be.is(R)?(g=R,y=Je.del(k,R)):(this.assertChangeAnnotations(this.changeAnnotations),g=this.changeAnnotations.manage(R),y=Je.del(k,g)),this.edits.push(y),g!==void 0)return g},p.prototype.add=function(k){this.edits.push(k)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(k){if(k===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),Te=function(){function p(k){this._annotations=k===void 0?Object.create(null):k,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(k,R){var y;if(Be.is(k)?y=k:(y=this.nextId(),R=k),this._annotations[y]!==void 0)throw new Error("Id ".concat(y," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(y));return this._annotations[y]=R,this._size++,y},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(k){var R=this;this._textEditChanges=Object.create(null),k!==void 0?(this._workspaceEdit=k,k.documentChanges?(this._changeAnnotations=new Te(k.changeAnnotations),k.changeAnnotations=this._changeAnnotations.all(),k.documentChanges.forEach(function(y){if(Dt.is(y)){var g=new re(y.edits,R._changeAnnotations);R._textEditChanges[y.textDocument.uri]=g}})):k.changes&&Object.keys(k.changes).forEach(function(y){var g=new re(k.changes[y]);R._textEditChanges[y]=g})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(k){if(We.is(k)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:k.uri,version:k.version},y=this._textEditChanges[R.uri];if(!y){var g=[],O={textDocument:R,edits:g};this._workspaceEdit.documentChanges.push(O),y=new re(g,this._changeAnnotations),this._textEditChanges[R.uri]=y}return y}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var y=this._textEditChanges[k];if(!y){var g=[];this._workspaceEdit.changes[k]=g,y=new re(g),this._textEditChanges[k]=y}return y}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Te,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=Se.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=Se.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p.prototype.renameFile=function(k,R,y,g){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var O;ve.is(y)||Be.is(y)?O=y:g=y;var G,be;if(O===void 0?G=X.create(k,R,g):(be=Be.is(O)?O:this._changeAnnotations.manage(O),G=X.create(k,R,g,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=z.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=z.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p}();e.WorkspaceChange=ge;var me;(function(p){function k(y){return{uri:y}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)}p.is=R})(me||(e.TextDocumentIdentifier=me={}));var St;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.integer(g.version)}p.is=R})(St||(e.VersionedTextDocumentIdentifier=St={}));var We;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&(g.version===null||q.integer(g.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function k(y,g,O,G){return{uri:y,languageId:g,version:O,text:G}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.string(g.languageId)&&q.integer(g.version)&&q.string(g.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function k(R){var y=R;return y===p.PlainText||y===p.Markdown}p.is=k})(bn||(e.MarkupKind=bn={}));var wr;(function(p){function k(R){var y=R;return q.objectLiteral(R)&&bn.is(y.kind)&&q.string(y.value)}p.is=k})(wr||(e.MarkupContent=wr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(e.CompletionItemKind=Vn={}));var lr;(function(p){p.PlainText=1,p.Snippet=2})(lr||(e.InsertTextFormat=lr={}));var xi;(function(p){p.Deprecated=1})(xi||(e.CompletionItemTag=xi={}));var dr;(function(p){function k(y,g,O){return{newText:y,insert:g,replace:O}}p.create=k;function R(y){var g=y;return g&&q.string(g.newText)&&d.is(g.insert)&&d.is(g.replace)}p.is=R})(dr||(e.InsertReplaceEdit=dr={}));var fr;(function(p){p.asIs=1,p.adjustIndentation=2})(fr||(e.InsertTextMode=fr={}));var Qi;(function(p){function k(R){var y=R;return y&&(q.string(y.detail)||y.detail===void 0)&&(q.string(y.description)||y.description===void 0)}p.is=k})(Qi||(e.CompletionItemLabelDetails=Qi={}));var Sr;(function(p){function k(R){return{label:R}}p.create=k})(Sr||(e.CompletionItem=Sr={}));var xr;(function(p){function k(R,y){return{items:R||[],isIncomplete:!!y}}p.create=k})(xr||(e.CompletionList=xr={}));var Pr;(function(p){function k(y){return y.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=k;function R(y){var g=y;return q.string(g)||q.objectLiteral(g)&&q.string(g.language)&&q.string(g.value)}p.is=R})(Pr||(e.MarkedString=Pr={}));var mt;(function(p){function k(R){var y=R;return!!y&&q.objectLiteral(y)&&(wr.is(y.contents)||Pr.is(y.contents)||q.typedArray(y.contents,Pr.is))&&(R.range===void 0||d.is(R.range))}p.is=k})(mt||(e.Hover=mt={}));var hr;(function(p){function k(R,y){return y?{label:R,documentation:y}:{label:R}}p.create=k})(hr||(e.ParameterInformation=hr={}));var Ki;(function(p){function k(R,y){for(var g=[],O=2;O=0;an--){var yn=ht[an],Qn=L.offsetAt(yn.range.start),Fe=L.offsetAt(yn.range.end);if(Fe<=Ye)be=be.substring(0,Qn)+yn.newText+be.substring(Fe,be.length);else throw new Error("Overlapping edit");Ye=Qn}return be}p.applyEdits=v;function h(L,Q){if(L.length<=1)return L;var be=L.length/2|0,ht=L.slice(0,be),Ye=L.slice(be);h(ht,Q),h(Ye,Q);for(var an=0,yn=0,Qn=0;an0&&C.push(T.length),this._lineOffsets=C}return this._lineOffsets},p.prototype.positionAt=function(C){C=Math.max(Math.min(C,this._content.length),0);var T=this.getLineOffsets(),v=0,h=T.length;if(h===0)return u.create(0,C);for(;vC?h=L:v=L+1}var Q=v-1;return u.create(Q,C-T[Q])},p.prototype.offsetAt=function(C){var T=this.getLineOffsets();if(C.line>=T.length)return this._content.length;if(C.line<0)return 0;var v=T[C.line],h=C.line+1"u"}p.undefined=v;function h(Fe){return Fe===!0||Fe===!1}p.boolean=h;function L(Fe){return C.call(Fe)==="[object String]"}p.string=L;function Q(Fe){return C.call(Fe)==="[object Number]"}p.number=Q;function be(Fe,zr,Hi){return C.call(Fe)==="[object Number]"&&zr<=Fe&&Fe<=Hi}p.numberRange=be;function ht(Fe){return C.call(Fe)==="[object Number]"&&-2147483648<=Fe&&Fe<=2147483647}p.integer=ht;function Ye(Fe){return C.call(Fe)==="[object Number]"&&0<=Fe&&Fe<=2147483647}p.uinteger=Ye;function an(Fe){return C.call(Fe)==="[object Function]"}p.func=an;function yn(Fe){return Fe!==null&&typeof Fe=="object"}p.objectLiteral=yn;function Qn(Fe,zr){return Array.isArray(Fe)&&Fe.every(zr)}p.typedArray=Qn})(q||(q={}))})});var pt=F(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var go=Mi(),H_;(function(e){e.clientToServer="clientToServer",e.serverToClient="serverToClient",e.both="both"})(H_||(hn.MessageDirection=H_={}));var mh=class{constructor(t){this.method=t}};hn.RegistrationType=mh;var bh=class extends go.RequestType0{constructor(t){super(t)}};hn.ProtocolRequestType0=bh;var _h=class extends go.RequestType{constructor(t){super(t,go.ParameterStructures.byName)}};hn.ProtocolRequestType=_h;var vh=class extends go.NotificationType0{constructor(t){super(t)}};hn.ProtocolNotificationType0=vh;var yh=class extends go.NotificationType{constructor(t){super(t,go.ParameterStructures.byName)}};hn.ProtocolNotificationType=yh});var Oc=F(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.objectLiteral=Ft.typedArray=Ft.stringArray=Ft.array=Ft.func=Ft.error=Ft.number=Ft.string=Ft.boolean=void 0;function QN(e){return e===!0||e===!1}Ft.boolean=QN;function V_(e){return typeof e=="string"||e instanceof String}Ft.string=V_;function JN(e){return typeof e=="number"||e instanceof Number}Ft.number=JN;function XN(e){return e instanceof Error}Ft.error=XN;function KN(e){return typeof e=="function"}Ft.func=KN;function G_(e){return Array.isArray(e)}Ft.array=G_;function YN(e){return G_(e)&&e.every(t=>V_(t))}Ft.stringArray=YN;function ZN(e,t){return Array.isArray(e)&&e.every(t)}Ft.typedArray=ZN;function e1(e){return e!==null&&typeof e=="object"}Ft.objectLiteral=e1});var X_=F(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.ImplementationRequest=void 0;var Q_=pt(),J_;(function(e){e.method="textDocument/implementation",e.messageDirection=Q_.MessageDirection.clientToServer,e.type=new Q_.ProtocolRequestType(e.method)})(J_||(Bc.ImplementationRequest=J_={}))});var Z_=F(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Uc.TypeDefinitionRequest=void 0;var K_=pt(),Y_;(function(e){e.method="textDocument/typeDefinition",e.messageDirection=K_.MessageDirection.clientToServer,e.type=new K_.ProtocolRequestType(e.method)})(Y_||(Uc.TypeDefinitionRequest=Y_={}))});var nv=F(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.DidChangeWorkspaceFoldersNotification=po.WorkspaceFoldersRequest=void 0;var $c=pt(),ev;(function(e){e.method="workspace/workspaceFolders",e.messageDirection=$c.MessageDirection.serverToClient,e.type=new $c.ProtocolRequestType0(e.method)})(ev||(po.WorkspaceFoldersRequest=ev={}));var tv;(function(e){e.method="workspace/didChangeWorkspaceFolders",e.messageDirection=$c.MessageDirection.clientToServer,e.type=new $c.ProtocolNotificationType(e.method)})(tv||(po.DidChangeWorkspaceFoldersNotification=tv={}))});var ov=F(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ConfigurationRequest=void 0;var rv=pt(),iv;(function(e){e.method="workspace/configuration",e.messageDirection=rv.MessageDirection.serverToClient,e.type=new rv.ProtocolRequestType(e.method)})(iv||(Wc.ConfigurationRequest=iv={}))});var cv=F(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.ColorPresentationRequest=mo.DocumentColorRequest=void 0;var jc=pt(),sv;(function(e){e.method="textDocument/documentColor",e.messageDirection=jc.MessageDirection.clientToServer,e.type=new jc.ProtocolRequestType(e.method)})(sv||(mo.DocumentColorRequest=sv={}));var av;(function(e){e.method="textDocument/colorPresentation",e.messageDirection=jc.MessageDirection.clientToServer,e.type=new jc.ProtocolRequestType(e.method)})(av||(mo.ColorPresentationRequest=av={}))});var dv=F(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.FoldingRangeRefreshRequest=bo.FoldingRangeRequest=void 0;var zc=pt(),uv;(function(e){e.method="textDocument/foldingRange",e.messageDirection=zc.MessageDirection.clientToServer,e.type=new zc.ProtocolRequestType(e.method)})(uv||(bo.FoldingRangeRequest=uv={}));var lv;(function(e){e.method="workspace/foldingRange/refresh",e.messageDirection=zc.MessageDirection.serverToClient,e.type=new zc.ProtocolRequestType0(e.method)})(lv||(bo.FoldingRangeRefreshRequest=lv={}))});var gv=F(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.DeclarationRequest=void 0;var fv=pt(),hv;(function(e){e.method="textDocument/declaration",e.messageDirection=fv.MessageDirection.clientToServer,e.type=new fv.ProtocolRequestType(e.method)})(hv||(Hc.DeclarationRequest=hv={}))});var bv=F(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});Vc.SelectionRangeRequest=void 0;var pv=pt(),mv;(function(e){e.method="textDocument/selectionRange",e.messageDirection=pv.MessageDirection.clientToServer,e.type=new pv.ProtocolRequestType(e.method)})(mv||(Vc.SelectionRangeRequest=mv={}))});var xv=F(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.WorkDoneProgressCancelNotification=oi.WorkDoneProgressCreateRequest=oi.WorkDoneProgress=void 0;var t1=Mi(),Gc=pt(),_v;(function(e){e.type=new t1.ProgressType;function t(n){return n===e.type}e.is=t})(_v||(oi.WorkDoneProgress=_v={}));var vv;(function(e){e.method="window/workDoneProgress/create",e.messageDirection=Gc.MessageDirection.serverToClient,e.type=new Gc.ProtocolRequestType(e.method)})(vv||(oi.WorkDoneProgressCreateRequest=vv={}));var yv;(function(e){e.method="window/workDoneProgress/cancel",e.messageDirection=Gc.MessageDirection.clientToServer,e.type=new Gc.ProtocolNotificationType(e.method)})(yv||(oi.WorkDoneProgressCancelNotification=yv={}))});var Cv=F(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.CallHierarchyOutgoingCallsRequest=si.CallHierarchyIncomingCallsRequest=si.CallHierarchyPrepareRequest=void 0;var _o=pt(),wv;(function(e){e.method="textDocument/prepareCallHierarchy",e.messageDirection=_o.MessageDirection.clientToServer,e.type=new _o.ProtocolRequestType(e.method)})(wv||(si.CallHierarchyPrepareRequest=wv={}));var Pv;(function(e){e.method="callHierarchy/incomingCalls",e.messageDirection=_o.MessageDirection.clientToServer,e.type=new _o.ProtocolRequestType(e.method)})(Pv||(si.CallHierarchyIncomingCallsRequest=Pv={}));var Sv;(function(e){e.method="callHierarchy/outgoingCalls",e.messageDirection=_o.MessageDirection.clientToServer,e.type=new _o.ProtocolRequestType(e.method)})(Sv||(si.CallHierarchyOutgoingCallsRequest=Sv={}))});var Iv=F(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Lr=pt(),kv;(function(e){e.Relative="relative"})(kv||(gn.TokenFormat=kv={}));var ks;(function(e){e.method="textDocument/semanticTokens",e.type=new Lr.RegistrationType(e.method)})(ks||(gn.SemanticTokensRegistrationType=ks={}));var Rv;(function(e){e.method="textDocument/semanticTokens/full",e.messageDirection=Lr.MessageDirection.clientToServer,e.type=new Lr.ProtocolRequestType(e.method),e.registrationMethod=ks.method})(Rv||(gn.SemanticTokensRequest=Rv={}));var Tv;(function(e){e.method="textDocument/semanticTokens/full/delta",e.messageDirection=Lr.MessageDirection.clientToServer,e.type=new Lr.ProtocolRequestType(e.method),e.registrationMethod=ks.method})(Tv||(gn.SemanticTokensDeltaRequest=Tv={}));var Dv;(function(e){e.method="textDocument/semanticTokens/range",e.messageDirection=Lr.MessageDirection.clientToServer,e.type=new Lr.ProtocolRequestType(e.method),e.registrationMethod=ks.method})(Dv||(gn.SemanticTokensRangeRequest=Dv={}));var Ev;(function(e){e.method="workspace/semanticTokens/refresh",e.messageDirection=Lr.MessageDirection.serverToClient,e.type=new Lr.ProtocolRequestType0(e.method)})(Ev||(gn.SemanticTokensRefreshRequest=Ev={}))});var Mv=F(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.ShowDocumentRequest=void 0;var Fv=pt(),Av;(function(e){e.method="window/showDocument",e.messageDirection=Fv.MessageDirection.serverToClient,e.type=new Fv.ProtocolRequestType(e.method)})(Av||(Qc.ShowDocumentRequest=Av={}))});var Lv=F(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});Jc.LinkedEditingRangeRequest=void 0;var Nv=pt(),qv;(function(e){e.method="textDocument/linkedEditingRange",e.messageDirection=Nv.MessageDirection.clientToServer,e.type=new Nv.ProtocolRequestType(e.method)})(qv||(Jc.LinkedEditingRangeRequest=qv={}))});var Hv=F(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.WillDeleteFilesRequest=Xt.DidDeleteFilesNotification=Xt.DidRenameFilesNotification=Xt.WillRenameFilesRequest=Xt.DidCreateFilesNotification=Xt.WillCreateFilesRequest=Xt.FileOperationPatternKind=void 0;var Bn=pt(),Ov;(function(e){e.file="file",e.folder="folder"})(Ov||(Xt.FileOperationPatternKind=Ov={}));var Bv;(function(e){e.method="workspace/willCreateFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolRequestType(e.method)})(Bv||(Xt.WillCreateFilesRequest=Bv={}));var Uv;(function(e){e.method="workspace/didCreateFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolNotificationType(e.method)})(Uv||(Xt.DidCreateFilesNotification=Uv={}));var $v;(function(e){e.method="workspace/willRenameFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolRequestType(e.method)})($v||(Xt.WillRenameFilesRequest=$v={}));var Wv;(function(e){e.method="workspace/didRenameFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolNotificationType(e.method)})(Wv||(Xt.DidRenameFilesNotification=Wv={}));var jv;(function(e){e.method="workspace/didDeleteFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolNotificationType(e.method)})(jv||(Xt.DidDeleteFilesNotification=jv={}));var zv;(function(e){e.method="workspace/willDeleteFiles",e.messageDirection=Bn.MessageDirection.clientToServer,e.type=new Bn.ProtocolRequestType(e.method)})(zv||(Xt.WillDeleteFilesRequest=zv={}))});var Xv=F(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.MonikerRequest=ai.MonikerKind=ai.UniquenessLevel=void 0;var Vv=pt(),Gv;(function(e){e.document="document",e.project="project",e.group="group",e.scheme="scheme",e.global="global"})(Gv||(ai.UniquenessLevel=Gv={}));var Qv;(function(e){e.$import="import",e.$export="export",e.local="local"})(Qv||(ai.MonikerKind=Qv={}));var Jv;(function(e){e.method="textDocument/moniker",e.messageDirection=Vv.MessageDirection.clientToServer,e.type=new Vv.ProtocolRequestType(e.method)})(Jv||(ai.MonikerRequest=Jv={}))});var ey=F(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.TypeHierarchySubtypesRequest=ci.TypeHierarchySupertypesRequest=ci.TypeHierarchyPrepareRequest=void 0;var vo=pt(),Kv;(function(e){e.method="textDocument/prepareTypeHierarchy",e.messageDirection=vo.MessageDirection.clientToServer,e.type=new vo.ProtocolRequestType(e.method)})(Kv||(ci.TypeHierarchyPrepareRequest=Kv={}));var Yv;(function(e){e.method="typeHierarchy/supertypes",e.messageDirection=vo.MessageDirection.clientToServer,e.type=new vo.ProtocolRequestType(e.method)})(Yv||(ci.TypeHierarchySupertypesRequest=Yv={}));var Zv;(function(e){e.method="typeHierarchy/subtypes",e.messageDirection=vo.MessageDirection.clientToServer,e.type=new vo.ProtocolRequestType(e.method)})(Zv||(ci.TypeHierarchySubtypesRequest=Zv={}))});var ry=F(yo=>{"use strict";Object.defineProperty(yo,"__esModule",{value:!0});yo.InlineValueRefreshRequest=yo.InlineValueRequest=void 0;var Xc=pt(),ty;(function(e){e.method="textDocument/inlineValue",e.messageDirection=Xc.MessageDirection.clientToServer,e.type=new Xc.ProtocolRequestType(e.method)})(ty||(yo.InlineValueRequest=ty={}));var ny;(function(e){e.method="workspace/inlineValue/refresh",e.messageDirection=Xc.MessageDirection.serverToClient,e.type=new Xc.ProtocolRequestType0(e.method)})(ny||(yo.InlineValueRefreshRequest=ny={}))});var ay=F(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.InlayHintRefreshRequest=ui.InlayHintResolveRequest=ui.InlayHintRequest=void 0;var xo=pt(),iy;(function(e){e.method="textDocument/inlayHint",e.messageDirection=xo.MessageDirection.clientToServer,e.type=new xo.ProtocolRequestType(e.method)})(iy||(ui.InlayHintRequest=iy={}));var oy;(function(e){e.method="inlayHint/resolve",e.messageDirection=xo.MessageDirection.clientToServer,e.type=new xo.ProtocolRequestType(e.method)})(oy||(ui.InlayHintResolveRequest=oy={}));var sy;(function(e){e.method="workspace/inlayHint/refresh",e.messageDirection=xo.MessageDirection.serverToClient,e.type=new xo.ProtocolRequestType0(e.method)})(sy||(ui.InlayHintRefreshRequest=sy={}))});var gy=F(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var hy=Mi(),n1=Oc(),wo=pt(),cy;(function(e){function t(n){let i=n;return i&&n1.boolean(i.retriggerRequest)}e.is=t})(cy||(Un.DiagnosticServerCancellationData=cy={}));var uy;(function(e){e.Full="full",e.Unchanged="unchanged"})(uy||(Un.DocumentDiagnosticReportKind=uy={}));var ly;(function(e){e.method="textDocument/diagnostic",e.messageDirection=wo.MessageDirection.clientToServer,e.type=new wo.ProtocolRequestType(e.method),e.partialResult=new hy.ProgressType})(ly||(Un.DocumentDiagnosticRequest=ly={}));var dy;(function(e){e.method="workspace/diagnostic",e.messageDirection=wo.MessageDirection.clientToServer,e.type=new wo.ProtocolRequestType(e.method),e.partialResult=new hy.ProgressType})(dy||(Un.WorkspaceDiagnosticRequest=dy={}));var fy;(function(e){e.method="workspace/diagnostic/refresh",e.messageDirection=wo.MessageDirection.serverToClient,e.type=new wo.ProtocolRequestType0(e.method)})(fy||(Un.DiagnosticRefreshRequest=fy={}))});var xy=F(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.DidCloseNotebookDocumentNotification=xt.DidSaveNotebookDocumentNotification=xt.DidChangeNotebookDocumentNotification=xt.NotebookCellArrayChange=xt.DidOpenNotebookDocumentNotification=xt.NotebookDocumentSyncRegistrationType=xt.NotebookDocument=xt.NotebookCell=xt.ExecutionSummary=xt.NotebookCellKind=void 0;var Rs=Lc(),er=Oc(),br=pt(),xh;(function(e){e.Markup=1,e.Code=2;function t(n){return n===1||n===2}e.is=t})(xh||(xt.NotebookCellKind=xh={}));var wh;(function(e){function t(o,c){let u={executionOrder:o};return(c===!0||c===!1)&&(u.success=c),u}e.create=t;function n(o){let c=o;return er.objectLiteral(c)&&Rs.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}e.is=n;function i(o,c){return o===c?!0:o==null||c===null||c===void 0?!1:o.executionOrder===c.executionOrder&&o.success===c.success}e.equals=i})(wh||(xt.ExecutionSummary=wh={}));var Kc;(function(e){function t(c,u){return{kind:c,document:u}}e.create=t;function n(c){let u=c;return er.objectLiteral(u)&&xh.is(u.kind)&&Rs.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}e.is=n;function i(c,u){let f=new Set;return c.document!==u.document&&f.add("document"),c.kind!==u.kind&&f.add("kind"),c.executionSummary!==u.executionSummary&&f.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!o(c.metadata,u.metadata)&&f.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&f.add("executionSummary"),f}e.diff=i;function o(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let f=Array.isArray(c),g=Array.isArray(u);if(f!==g)return!1;if(f&&g){if(c.length!==u.length)return!1;for(let b=0;b{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.InlineCompletionRequest=void 0;var wy=pt(),Py;(function(e){e.method="textDocument/inlineCompletion",e.messageDirection=wy.MessageDirection.clientToServer,e.type=new wy.ProtocolRequestType(e.method)})(Py||(Yc.InlineCompletionRequest=Py={}))});var Lx=F(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.WorkspaceSymbolRequest=y.CodeActionResolveRequest=y.CodeActionRequest=y.DocumentSymbolRequest=y.DocumentHighlightRequest=y.ReferencesRequest=y.DefinitionRequest=y.SignatureHelpRequest=y.SignatureHelpTriggerKind=y.HoverRequest=y.CompletionResolveRequest=y.CompletionRequest=y.CompletionTriggerKind=y.PublishDiagnosticsNotification=y.WatchKind=y.RelativePattern=y.FileChangeType=y.DidChangeWatchedFilesNotification=y.WillSaveTextDocumentWaitUntilRequest=y.WillSaveTextDocumentNotification=y.TextDocumentSaveReason=y.DidSaveTextDocumentNotification=y.DidCloseTextDocumentNotification=y.DidChangeTextDocumentNotification=y.TextDocumentContentChangeEvent=y.DidOpenTextDocumentNotification=y.TextDocumentSyncKind=y.TelemetryEventNotification=y.LogMessageNotification=y.ShowMessageRequest=y.ShowMessageNotification=y.MessageType=y.DidChangeConfigurationNotification=y.ExitNotification=y.ShutdownRequest=y.InitializedNotification=y.InitializeErrorCodes=y.InitializeRequest=y.WorkDoneProgressOptions=y.TextDocumentRegistrationOptions=y.StaticRegistrationOptions=y.PositionEncodingKind=y.FailureHandlingKind=y.ResourceOperationKind=y.UnregistrationRequest=y.RegistrationRequest=y.DocumentSelector=y.NotebookCellTextDocumentFilter=y.NotebookDocumentFilter=y.TextDocumentFilter=void 0;y.MonikerRequest=y.MonikerKind=y.UniquenessLevel=y.WillDeleteFilesRequest=y.DidDeleteFilesNotification=y.WillRenameFilesRequest=y.DidRenameFilesNotification=y.WillCreateFilesRequest=y.DidCreateFilesNotification=y.FileOperationPatternKind=y.LinkedEditingRangeRequest=y.ShowDocumentRequest=y.SemanticTokensRegistrationType=y.SemanticTokensRefreshRequest=y.SemanticTokensRangeRequest=y.SemanticTokensDeltaRequest=y.SemanticTokensRequest=y.TokenFormat=y.CallHierarchyPrepareRequest=y.CallHierarchyOutgoingCallsRequest=y.CallHierarchyIncomingCallsRequest=y.WorkDoneProgressCancelNotification=y.WorkDoneProgressCreateRequest=y.WorkDoneProgress=y.SelectionRangeRequest=y.DeclarationRequest=y.FoldingRangeRefreshRequest=y.FoldingRangeRequest=y.ColorPresentationRequest=y.DocumentColorRequest=y.ConfigurationRequest=y.DidChangeWorkspaceFoldersNotification=y.WorkspaceFoldersRequest=y.TypeDefinitionRequest=y.ImplementationRequest=y.ApplyWorkspaceEditRequest=y.ExecuteCommandRequest=y.PrepareRenameRequest=y.RenameRequest=y.PrepareSupportDefaultBehavior=y.DocumentOnTypeFormattingRequest=y.DocumentRangesFormattingRequest=y.DocumentRangeFormattingRequest=y.DocumentFormattingRequest=y.DocumentLinkResolveRequest=y.DocumentLinkRequest=y.CodeLensRefreshRequest=y.CodeLensResolveRequest=y.CodeLensRequest=y.WorkspaceSymbolResolveRequest=void 0;y.InlineCompletionRequest=y.DidCloseNotebookDocumentNotification=y.DidSaveNotebookDocumentNotification=y.DidChangeNotebookDocumentNotification=y.NotebookCellArrayChange=y.DidOpenNotebookDocumentNotification=y.NotebookDocumentSyncRegistrationType=y.NotebookDocument=y.NotebookCell=y.ExecutionSummary=y.NotebookCellKind=y.DiagnosticRefreshRequest=y.WorkspaceDiagnosticRequest=y.DocumentDiagnosticRequest=y.DocumentDiagnosticReportKind=y.DiagnosticServerCancellationData=y.InlayHintRefreshRequest=y.InlayHintResolveRequest=y.InlayHintRequest=y.InlineValueRefreshRequest=y.InlineValueRequest=y.TypeHierarchySupertypesRequest=y.TypeHierarchySubtypesRequest=y.TypeHierarchyPrepareRequest=void 0;var Z=pt(),Cy=Lc(),Ot=Oc(),r1=X_();Object.defineProperty(y,"ImplementationRequest",{enumerable:!0,get:function(){return r1.ImplementationRequest}});var i1=Z_();Object.defineProperty(y,"TypeDefinitionRequest",{enumerable:!0,get:function(){return i1.TypeDefinitionRequest}});var Ax=nv();Object.defineProperty(y,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Ax.WorkspaceFoldersRequest}});Object.defineProperty(y,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Ax.DidChangeWorkspaceFoldersNotification}});var o1=ov();Object.defineProperty(y,"ConfigurationRequest",{enumerable:!0,get:function(){return o1.ConfigurationRequest}});var Mx=cv();Object.defineProperty(y,"DocumentColorRequest",{enumerable:!0,get:function(){return Mx.DocumentColorRequest}});Object.defineProperty(y,"ColorPresentationRequest",{enumerable:!0,get:function(){return Mx.ColorPresentationRequest}});var Nx=dv();Object.defineProperty(y,"FoldingRangeRequest",{enumerable:!0,get:function(){return Nx.FoldingRangeRequest}});Object.defineProperty(y,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Nx.FoldingRangeRefreshRequest}});var s1=gv();Object.defineProperty(y,"DeclarationRequest",{enumerable:!0,get:function(){return s1.DeclarationRequest}});var a1=bv();Object.defineProperty(y,"SelectionRangeRequest",{enumerable:!0,get:function(){return a1.SelectionRangeRequest}});var Rh=xv();Object.defineProperty(y,"WorkDoneProgress",{enumerable:!0,get:function(){return Rh.WorkDoneProgress}});Object.defineProperty(y,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return Rh.WorkDoneProgressCreateRequest}});Object.defineProperty(y,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return Rh.WorkDoneProgressCancelNotification}});var Th=Cv();Object.defineProperty(y,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(y,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(y,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var So=Iv();Object.defineProperty(y,"TokenFormat",{enumerable:!0,get:function(){return So.TokenFormat}});Object.defineProperty(y,"SemanticTokensRequest",{enumerable:!0,get:function(){return So.SemanticTokensRequest}});Object.defineProperty(y,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return So.SemanticTokensDeltaRequest}});Object.defineProperty(y,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return So.SemanticTokensRangeRequest}});Object.defineProperty(y,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return So.SemanticTokensRefreshRequest}});Object.defineProperty(y,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return So.SemanticTokensRegistrationType}});var c1=Mv();Object.defineProperty(y,"ShowDocumentRequest",{enumerable:!0,get:function(){return c1.ShowDocumentRequest}});var u1=Lv();Object.defineProperty(y,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return u1.LinkedEditingRangeRequest}});var Ni=Hv();Object.defineProperty(y,"FileOperationPatternKind",{enumerable:!0,get:function(){return Ni.FileOperationPatternKind}});Object.defineProperty(y,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Ni.DidCreateFilesNotification}});Object.defineProperty(y,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Ni.WillCreateFilesRequest}});Object.defineProperty(y,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Ni.DidRenameFilesNotification}});Object.defineProperty(y,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Ni.WillRenameFilesRequest}});Object.defineProperty(y,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Ni.DidDeleteFilesNotification}});Object.defineProperty(y,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Ni.WillDeleteFilesRequest}});var Dh=Xv();Object.defineProperty(y,"UniquenessLevel",{enumerable:!0,get:function(){return Dh.UniquenessLevel}});Object.defineProperty(y,"MonikerKind",{enumerable:!0,get:function(){return Dh.MonikerKind}});Object.defineProperty(y,"MonikerRequest",{enumerable:!0,get:function(){return Dh.MonikerRequest}});var Eh=ey();Object.defineProperty(y,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Eh.TypeHierarchyPrepareRequest}});Object.defineProperty(y,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Eh.TypeHierarchySubtypesRequest}});Object.defineProperty(y,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Eh.TypeHierarchySupertypesRequest}});var qx=ry();Object.defineProperty(y,"InlineValueRequest",{enumerable:!0,get:function(){return qx.InlineValueRequest}});Object.defineProperty(y,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return qx.InlineValueRefreshRequest}});var Ih=ay();Object.defineProperty(y,"InlayHintRequest",{enumerable:!0,get:function(){return Ih.InlayHintRequest}});Object.defineProperty(y,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Ih.InlayHintResolveRequest}});Object.defineProperty(y,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Ih.InlayHintRefreshRequest}});var Ts=gy();Object.defineProperty(y,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Ts.DiagnosticServerCancellationData}});Object.defineProperty(y,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Ts.DocumentDiagnosticReportKind}});Object.defineProperty(y,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Ts.DocumentDiagnosticRequest}});Object.defineProperty(y,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Ts.WorkspaceDiagnosticRequest}});Object.defineProperty(y,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Ts.DiagnosticRefreshRequest}});var _r=xy();Object.defineProperty(y,"NotebookCellKind",{enumerable:!0,get:function(){return _r.NotebookCellKind}});Object.defineProperty(y,"ExecutionSummary",{enumerable:!0,get:function(){return _r.ExecutionSummary}});Object.defineProperty(y,"NotebookCell",{enumerable:!0,get:function(){return _r.NotebookCell}});Object.defineProperty(y,"NotebookDocument",{enumerable:!0,get:function(){return _r.NotebookDocument}});Object.defineProperty(y,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return _r.NotebookDocumentSyncRegistrationType}});Object.defineProperty(y,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidOpenNotebookDocumentNotification}});Object.defineProperty(y,"NotebookCellArrayChange",{enumerable:!0,get:function(){return _r.NotebookCellArrayChange}});Object.defineProperty(y,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidChangeNotebookDocumentNotification}});Object.defineProperty(y,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidSaveNotebookDocumentNotification}});Object.defineProperty(y,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidCloseNotebookDocumentNotification}});var l1=Sy();Object.defineProperty(y,"InlineCompletionRequest",{enumerable:!0,get:function(){return l1.InlineCompletionRequest}});var Ph;(function(e){function t(n){let i=n;return Ot.string(i)||Ot.string(i.language)||Ot.string(i.scheme)||Ot.string(i.pattern)}e.is=t})(Ph||(y.TextDocumentFilter=Ph={}));var Sh;(function(e){function t(n){let i=n;return Ot.objectLiteral(i)&&(Ot.string(i.notebookType)||Ot.string(i.scheme)||Ot.string(i.pattern))}e.is=t})(Sh||(y.NotebookDocumentFilter=Sh={}));var Ch;(function(e){function t(n){let i=n;return Ot.objectLiteral(i)&&(Ot.string(i.notebook)||Sh.is(i.notebook))&&(i.language===void 0||Ot.string(i.language))}e.is=t})(Ch||(y.NotebookCellTextDocumentFilter=Ch={}));var kh;(function(e){function t(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Ot.string(i)&&!Ph.is(i)&&!Ch.is(i))return!1;return!0}e.is=t})(kh||(y.DocumentSelector=kh={}));var ky;(function(e){e.method="client/registerCapability",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType(e.method)})(ky||(y.RegistrationRequest=ky={}));var Ry;(function(e){e.method="client/unregisterCapability",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType(e.method)})(Ry||(y.UnregistrationRequest=Ry={}));var Ty;(function(e){e.Create="create",e.Rename="rename",e.Delete="delete"})(Ty||(y.ResourceOperationKind=Ty={}));var Dy;(function(e){e.Abort="abort",e.Transactional="transactional",e.TextOnlyTransactional="textOnlyTransactional",e.Undo="undo"})(Dy||(y.FailureHandlingKind=Dy={}));var Ey;(function(e){e.UTF8="utf-8",e.UTF16="utf-16",e.UTF32="utf-32"})(Ey||(y.PositionEncodingKind=Ey={}));var Iy;(function(e){function t(n){let i=n;return i&&Ot.string(i.id)&&i.id.length>0}e.hasId=t})(Iy||(y.StaticRegistrationOptions=Iy={}));var Fy;(function(e){function t(n){let i=n;return i&&(i.documentSelector===null||kh.is(i.documentSelector))}e.is=t})(Fy||(y.TextDocumentRegistrationOptions=Fy={}));var Ay;(function(e){function t(i){let o=i;return Ot.objectLiteral(o)&&(o.workDoneProgress===void 0||Ot.boolean(o.workDoneProgress))}e.is=t;function n(i){let o=i;return o&&Ot.boolean(o.workDoneProgress)}e.hasWorkDoneProgress=n})(Ay||(y.WorkDoneProgressOptions=Ay={}));var My;(function(e){e.method="initialize",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(My||(y.InitializeRequest=My={}));var Ny;(function(e){e.unknownProtocolVersion=1})(Ny||(y.InitializeErrorCodes=Ny={}));var qy;(function(e){e.method="initialized",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(qy||(y.InitializedNotification=qy={}));var Ly;(function(e){e.method="shutdown",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType0(e.method)})(Ly||(y.ShutdownRequest=Ly={}));var Oy;(function(e){e.method="exit",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType0(e.method)})(Oy||(y.ExitNotification=Oy={}));var By;(function(e){e.method="workspace/didChangeConfiguration",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(By||(y.DidChangeConfigurationNotification=By={}));var Uy;(function(e){e.Error=1,e.Warning=2,e.Info=3,e.Log=4,e.Debug=5})(Uy||(y.MessageType=Uy={}));var $y;(function(e){e.method="window/showMessage",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolNotificationType(e.method)})($y||(y.ShowMessageNotification=$y={}));var Wy;(function(e){e.method="window/showMessageRequest",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType(e.method)})(Wy||(y.ShowMessageRequest=Wy={}));var jy;(function(e){e.method="window/logMessage",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolNotificationType(e.method)})(jy||(y.LogMessageNotification=jy={}));var zy;(function(e){e.method="telemetry/event",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolNotificationType(e.method)})(zy||(y.TelemetryEventNotification=zy={}));var Hy;(function(e){e.None=0,e.Full=1,e.Incremental=2})(Hy||(y.TextDocumentSyncKind=Hy={}));var Vy;(function(e){e.method="textDocument/didOpen",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Vy||(y.DidOpenTextDocumentNotification=Vy={}));var Gy;(function(e){function t(i){let o=i;return o!=null&&typeof o.text=="string"&&o.range!==void 0&&(o.rangeLength===void 0||typeof o.rangeLength=="number")}e.isIncremental=t;function n(i){let o=i;return o!=null&&typeof o.text=="string"&&o.range===void 0&&o.rangeLength===void 0}e.isFull=n})(Gy||(y.TextDocumentContentChangeEvent=Gy={}));var Qy;(function(e){e.method="textDocument/didChange",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Qy||(y.DidChangeTextDocumentNotification=Qy={}));var Jy;(function(e){e.method="textDocument/didClose",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Jy||(y.DidCloseTextDocumentNotification=Jy={}));var Xy;(function(e){e.method="textDocument/didSave",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Xy||(y.DidSaveTextDocumentNotification=Xy={}));var Ky;(function(e){e.Manual=1,e.AfterDelay=2,e.FocusOut=3})(Ky||(y.TextDocumentSaveReason=Ky={}));var Yy;(function(e){e.method="textDocument/willSave",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(Yy||(y.WillSaveTextDocumentNotification=Yy={}));var Zy;(function(e){e.method="textDocument/willSaveWaitUntil",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Zy||(y.WillSaveTextDocumentWaitUntilRequest=Zy={}));var ex;(function(e){e.method="workspace/didChangeWatchedFiles",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolNotificationType(e.method)})(ex||(y.DidChangeWatchedFilesNotification=ex={}));var tx;(function(e){e.Created=1,e.Changed=2,e.Deleted=3})(tx||(y.FileChangeType=tx={}));var nx;(function(e){function t(n){let i=n;return Ot.objectLiteral(i)&&(Cy.URI.is(i.baseUri)||Cy.WorkspaceFolder.is(i.baseUri))&&Ot.string(i.pattern)}e.is=t})(nx||(y.RelativePattern=nx={}));var rx;(function(e){e.Create=1,e.Change=2,e.Delete=4})(rx||(y.WatchKind=rx={}));var ix;(function(e){e.method="textDocument/publishDiagnostics",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolNotificationType(e.method)})(ix||(y.PublishDiagnosticsNotification=ix={}));var ox;(function(e){e.Invoked=1,e.TriggerCharacter=2,e.TriggerForIncompleteCompletions=3})(ox||(y.CompletionTriggerKind=ox={}));var sx;(function(e){e.method="textDocument/completion",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(sx||(y.CompletionRequest=sx={}));var ax;(function(e){e.method="completionItem/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(ax||(y.CompletionResolveRequest=ax={}));var cx;(function(e){e.method="textDocument/hover",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(cx||(y.HoverRequest=cx={}));var ux;(function(e){e.Invoked=1,e.TriggerCharacter=2,e.ContentChange=3})(ux||(y.SignatureHelpTriggerKind=ux={}));var lx;(function(e){e.method="textDocument/signatureHelp",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(lx||(y.SignatureHelpRequest=lx={}));var dx;(function(e){e.method="textDocument/definition",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(dx||(y.DefinitionRequest=dx={}));var fx;(function(e){e.method="textDocument/references",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(fx||(y.ReferencesRequest=fx={}));var hx;(function(e){e.method="textDocument/documentHighlight",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(hx||(y.DocumentHighlightRequest=hx={}));var gx;(function(e){e.method="textDocument/documentSymbol",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(gx||(y.DocumentSymbolRequest=gx={}));var px;(function(e){e.method="textDocument/codeAction",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(px||(y.CodeActionRequest=px={}));var mx;(function(e){e.method="codeAction/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(mx||(y.CodeActionResolveRequest=mx={}));var bx;(function(e){e.method="workspace/symbol",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(bx||(y.WorkspaceSymbolRequest=bx={}));var _x;(function(e){e.method="workspaceSymbol/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(_x||(y.WorkspaceSymbolResolveRequest=_x={}));var vx;(function(e){e.method="textDocument/codeLens",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(vx||(y.CodeLensRequest=vx={}));var yx;(function(e){e.method="codeLens/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(yx||(y.CodeLensResolveRequest=yx={}));var xx;(function(e){e.method="workspace/codeLens/refresh",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType0(e.method)})(xx||(y.CodeLensRefreshRequest=xx={}));var wx;(function(e){e.method="textDocument/documentLink",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(wx||(y.DocumentLinkRequest=wx={}));var Px;(function(e){e.method="documentLink/resolve",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Px||(y.DocumentLinkResolveRequest=Px={}));var Sx;(function(e){e.method="textDocument/formatting",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Sx||(y.DocumentFormattingRequest=Sx={}));var Cx;(function(e){e.method="textDocument/rangeFormatting",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Cx||(y.DocumentRangeFormattingRequest=Cx={}));var kx;(function(e){e.method="textDocument/rangesFormatting",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(kx||(y.DocumentRangesFormattingRequest=kx={}));var Rx;(function(e){e.method="textDocument/onTypeFormatting",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Rx||(y.DocumentOnTypeFormattingRequest=Rx={}));var Tx;(function(e){e.Identifier=1})(Tx||(y.PrepareSupportDefaultBehavior=Tx={}));var Dx;(function(e){e.method="textDocument/rename",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Dx||(y.RenameRequest=Dx={}));var Ex;(function(e){e.method="textDocument/prepareRename",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Ex||(y.PrepareRenameRequest=Ex={}));var Ix;(function(e){e.method="workspace/executeCommand",e.messageDirection=Z.MessageDirection.clientToServer,e.type=new Z.ProtocolRequestType(e.method)})(Ix||(y.ExecuteCommandRequest=Ix={}));var Fx;(function(e){e.method="workspace/applyEdit",e.messageDirection=Z.MessageDirection.serverToClient,e.type=new Z.ProtocolRequestType("workspace/applyEdit")})(Fx||(y.ApplyWorkspaceEditRequest=Fx={}))});var Bx=F(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});Zc.createProtocolConnection=void 0;var Ox=Mi();function d1(e,t,n,i){return Ox.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Ox.createMessageConnection)(e,t,n,i)}Zc.createProtocolConnection=d1});var $x=F(pn=>{"use strict";var f1=pn&&pn.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),eu=pn&&pn.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&f1(t,e,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;eu(Mi(),pn);eu(Lc(),pn);eu(pt(),pn);eu(Lx(),pn);var h1=Bx();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return h1.createProtocolConnection}});var Ux;(function(e){e.lspReservedErrorRangeStart=-32899,e.RequestFailed=-32803,e.ServerCancelled=-32802,e.ContentModified=-32801,e.RequestCancelled=-32800,e.lspReservedErrorRangeEnd=-32800})(Ux||(pn.LSPErrorCodes=Ux={}))});var Rt=F(vr=>{"use strict";var g1=vr&&vr.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),Wx=vr&&vr.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&g1(t,e,n)};Object.defineProperty(vr,"__esModule",{value:!0});vr.createProtocolConnection=void 0;var p1=ph();Wx(ph(),vr);Wx($x(),vr);function m1(e,t,n,i){return(0,p1.createMessageConnection)(e,t,n,i)}vr.createProtocolConnection=m1});var Fh=F($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var Ds=class{constructor(t){this._value=t}asHex(){return this._value}equals(t){return this.asHex()===t.asHex()}},Es=class e extends Ds{static _oneOf(t){return t[Math.floor(t.length*Math.random())]}static _randomHex(){return e._oneOf(e._chars)}constructor(){super([e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),"-",e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),"-","4",e._randomHex(),e._randomHex(),e._randomHex(),"-",e._oneOf(e._timeHighBits),e._randomHex(),e._randomHex(),e._randomHex(),"-",e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex()].join(""))}};Es._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];Es._timeHighBits=["8","9","a","b"];$n.empty=new Ds("00000000-0000-0000-0000-000000000000");function jx(){return new Es}$n.v4=jx;var b1=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function zx(e){return b1.test(e)}$n.isUUID=zx;function _1(e){if(!zx(e))throw new Error("invalid uuid");return new Ds(e)}$n.parse=_1;function v1(){return jx().asHex()}$n.generateUuid=v1});var Hx=F(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.attachPartialResult=di.ProgressFeature=di.attachWorkDone=void 0;var li=Rt(),y1=Fh(),qi=class e{constructor(t,n){this._connection=t,this._token=n,e.Instances.set(this._token,this)}begin(t,n,i,o){let c={kind:"begin",title:t,percentage:n,message:i,cancellable:o};this._connection.sendProgress(li.WorkDoneProgress.type,this._token,c)}report(t,n){let i={kind:"report"};typeof t=="number"?(i.percentage=t,n!==void 0&&(i.message=n)):i.message=t,this._connection.sendProgress(li.WorkDoneProgress.type,this._token,i)}done(){e.Instances.delete(this._token),this._connection.sendProgress(li.WorkDoneProgress.type,this._token,{kind:"end"})}};qi.Instances=new Map;var tu=class extends qi{constructor(t,n){super(t,n),this._source=new li.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Is=class{constructor(){}begin(){}report(){}done(){}},nu=class extends Is{constructor(){super(),this._source=new li.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function x1(e,t){if(t===void 0||t.workDoneToken===void 0)return new Is;let n=t.workDoneToken;return delete t.workDoneToken,new qi(e,n)}di.attachWorkDone=x1;var w1=e=>class extends e{constructor(){super(),this._progressSupported=!1}initialize(t){super.initialize(t),t?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(li.WorkDoneProgressCancelNotification.type,n=>{let i=qi.Instances.get(n.token);(i instanceof tu||i instanceof nu)&&i.cancel()}))}attachWorkDoneProgress(t){return t===void 0?new Is:new qi(this.connection,t)}createWorkDoneProgress(){if(this._progressSupported){let t=(0,y1.generateUuid)();return this.connection.sendRequest(li.WorkDoneProgressCreateRequest.type,{token:t}).then(()=>new tu(this.connection,t))}else return Promise.resolve(new nu)}};di.ProgressFeature=w1;var Ah;(function(e){e.type=new li.ProgressType})(Ah||(Ah={}));var Mh=class{constructor(t,n){this._connection=t,this._token=n}report(t){this._connection.sendProgress(Ah.type,this._token,t)}};function P1(e,t){if(t===void 0||t.partialResultToken===void 0)return;let n=t.partialResultToken;return delete t.partialResultToken,new Mh(e,n)}di.attachPartialResult=P1});var Vx=F(ru=>{"use strict";Object.defineProperty(ru,"__esModule",{value:!0});ru.ConfigurationFeature=void 0;var S1=Rt(),C1=gc(),k1=e=>class extends e{getConfiguration(t){return t?C1.string(t)?this._getConfiguration({section:t}):this._getConfiguration(t):this._getConfiguration({})}_getConfiguration(t){let n={items:Array.isArray(t)?t:[t]};return this.connection.sendRequest(S1.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(t)?i:i[0]:Array.isArray(t)?[]:null)}};ru.ConfigurationFeature=k1});var Gx=F(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.WorkspaceFoldersFeature=void 0;var iu=Rt(),R1=e=>class extends e{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(t){super.initialize(t);let n=t.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new iu.Emitter,this.connection.onNotification(iu.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(t){super.fillServerCapabilities(t);let n=t.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(iu.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(iu.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};ou.WorkspaceFoldersFeature=R1});var Qx=F(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.CallHierarchyFeature=void 0;var Nh=Rt(),T1=e=>class extends e{get callHierarchy(){return{onPrepare:t=>this.connection.onRequest(Nh.CallHierarchyPrepareRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:t=>{let n=Nh.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:t=>{let n=Nh.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};su.CallHierarchyFeature=T1});var Lh=F(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.SemanticTokensBuilder=fi.SemanticTokensDiff=fi.SemanticTokensFeature=void 0;var au=Rt(),D1=e=>class extends e{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(au.SemanticTokensRefreshRequest.type),on:t=>{let n=au.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:t=>{let n=au.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:t=>{let n=au.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};fi.SemanticTokensFeature=D1;var cu=class{constructor(t,n){this.originalSequence=t,this.modifiedSequence=n}computeDiff(){let t=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[o]===this.modifiedSequence[c];)o--,c--;(o0&&(u-=this._prevLine,u===0&&(f-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=f,this._data[this._dataLen++]=i,this._data[this._dataLen++]=o,this._data[this._dataLen++]=c,this._prevLine=t,this._prevChar=n}get id(){return this._id.toString()}previousResult(t){this.id===t&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new cu(this._prevData,this._data).computeDiff()}:this.build()}};fi.SemanticTokensBuilder=qh});var Jx=F(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.ShowDocumentFeature=void 0;var E1=Rt(),I1=e=>class extends e{showDocument(t){return this.connection.sendRequest(E1.ShowDocumentRequest.type,t)}};uu.ShowDocumentFeature=I1});var Xx=F(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.FileOperationsFeature=void 0;var Co=Rt(),F1=e=>class extends e{onDidCreateFiles(t){return this.connection.onNotification(Co.DidCreateFilesNotification.type,n=>{t(n)})}onDidRenameFiles(t){return this.connection.onNotification(Co.DidRenameFilesNotification.type,n=>{t(n)})}onDidDeleteFiles(t){return this.connection.onNotification(Co.DidDeleteFilesNotification.type,n=>{t(n)})}onWillCreateFiles(t){return this.connection.onRequest(Co.WillCreateFilesRequest.type,(n,i)=>t(n,i))}onWillRenameFiles(t){return this.connection.onRequest(Co.WillRenameFilesRequest.type,(n,i)=>t(n,i))}onWillDeleteFiles(t){return this.connection.onRequest(Co.WillDeleteFilesRequest.type,(n,i)=>t(n,i))}};lu.FileOperationsFeature=F1});var Kx=F(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.LinkedEditingRangeFeature=void 0;var A1=Rt(),M1=e=>class extends e{onLinkedEditingRange(t){return this.connection.onRequest(A1.LinkedEditingRangeRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0))}};du.LinkedEditingRangeFeature=M1});var Yx=F(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.TypeHierarchyFeature=void 0;var Oh=Rt(),N1=e=>class extends e{get typeHierarchy(){return{onPrepare:t=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:t=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:t=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};fu.TypeHierarchyFeature=N1});var ew=F(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.InlineValueFeature=void 0;var Zx=Rt(),q1=e=>class extends e{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Zx.InlineValueRefreshRequest.type),on:t=>this.connection.onRequest(Zx.InlineValueRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n)))}}};hu.InlineValueFeature=q1});var nw=F(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.FoldingRangeFeature=void 0;var tw=Rt(),L1=e=>class extends e{get foldingRange(){return{refresh:()=>this.connection.sendRequest(tw.FoldingRangeRefreshRequest.type),on:t=>{let n=tw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gu.FoldingRangeFeature=L1});var rw=F(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.InlayHintFeature=void 0;var Bh=Rt(),O1=e=>class extends e{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Bh.InlayHintRefreshRequest.type),on:t=>this.connection.onRequest(Bh.InlayHintRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n))),resolve:t=>this.connection.onRequest(Bh.InlayHintResolveRequest.type,(n,i)=>t(n,i))}}};pu.InlayHintFeature=O1});var iw=F(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.DiagnosticFeature=void 0;var Fs=Rt(),B1=e=>class extends e{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Fs.DiagnosticRefreshRequest.type),on:t=>this.connection.onRequest(Fs.DocumentDiagnosticRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Fs.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:t=>this.connection.onRequest(Fs.WorkspaceDiagnosticRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Fs.WorkspaceDiagnosticRequest.partialResult,n)))}}};mu.DiagnosticFeature=B1});var $h=F(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.TextDocuments=void 0;var Li=Rt(),Uh=class{constructor(t){this._configuration=t,this._syncedDocuments=new Map,this._onDidChangeContent=new Li.Emitter,this._onDidOpen=new Li.Emitter,this._onDidClose=new Li.Emitter,this._onDidSave=new Li.Emitter,this._onWillSave=new Li.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(t){this._willSaveWaitUntil=t}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(t){return this._syncedDocuments.get(t)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(t){t.__textDocumentSync=Li.TextDocumentSyncKind.Incremental;let n=[];return n.push(t.onDidOpenTextDocument(i=>{let o=i.textDocument,c=this._configuration.create(o.uri,o.languageId,o.version,o.text);this._syncedDocuments.set(o.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(t.onDidChangeTextDocument(i=>{let o=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=o;if(u==null)throw new Error(`Received document change event for ${o.uri} without valid version identifier`);let f=this._syncedDocuments.get(o.uri);f!==void 0&&(f=this._configuration.update(f,c,u),this._syncedDocuments.set(o.uri,f),this._onDidChangeContent.fire(Object.freeze({document:f})))})),n.push(t.onDidCloseTextDocument(i=>{let o=this._syncedDocuments.get(i.textDocument.uri);o!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:o})))})),n.push(t.onWillSaveTextDocument(i=>{let o=this._syncedDocuments.get(i.textDocument.uri);o!==void 0&&this._onWillSave.fire(Object.freeze({document:o,reason:i.reason}))})),n.push(t.onWillSaveTextDocumentWaitUntil((i,o)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),o):[]})),n.push(t.onDidSaveTextDocument(i=>{let o=this._syncedDocuments.get(i.textDocument.uri);o!==void 0&&this._onDidSave.fire(Object.freeze({document:o}))})),Li.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};bu.TextDocuments=Uh});var jh=F(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.NotebookDocuments=ko.NotebookSyncFeature=void 0;var Wn=Rt(),ow=$h(),U1=e=>class extends e{get synchronization(){return{onDidOpenNotebookDocument:t=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{t(n)}),onDidChangeNotebookDocument:t=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{t(n)}),onDidSaveNotebookDocument:t=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{t(n)}),onDidCloseNotebookDocument:t=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{t(n)})}}};ko.NotebookSyncFeature=U1;var _u=class e{onDidOpenTextDocument(t){return this.openHandler=t,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(t){this.openHandler&&this.openHandler(t)}onDidChangeTextDocument(t){return this.changeHandler=t,Wn.Disposable.create(()=>{this.changeHandler=t})}changeTextDocument(t){this.changeHandler&&this.changeHandler(t)}onDidCloseTextDocument(t){return this.closeHandler=t,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(t){this.closeHandler&&this.closeHandler(t)}onWillSaveTextDocument(){return e.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return e.NULL_DISPOSE}onDidSaveTextDocument(){return e.NULL_DISPOSE}};_u.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var Wh=class{constructor(t){t instanceof ow.TextDocuments?this._cellTextDocuments=t:this._cellTextDocuments=new ow.TextDocuments(t),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(t){return this._cellTextDocuments.get(t.document)}getNotebookDocument(t){return this.notebookDocuments.get(t)}getNotebookCell(t){let n=this.notebookCellMap.get(t);return n&&n[0]}findNotebookDocumentForCell(t){let n=typeof t=="string"?t:t.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(t){let n=new _u,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(t.notebooks.synchronization.onDidOpenNotebookDocument(o=>{this.notebookDocuments.set(o.notebookDocument.uri,o.notebookDocument);for(let c of o.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(o.notebookDocument),this._onDidOpen.fire(o.notebookDocument)})),i.push(t.notebooks.synchronization.onDidChangeNotebookDocument(o=>{let c=this.notebookDocuments.get(o.notebookDocument.uri);if(c===void 0)return;c.version=o.notebookDocument.version;let u=c.metadata,f=!1,g=o.change;g.metadata!==void 0&&(f=!0,c.metadata=g.metadata);let b=[],x=[],k=[],I=[];if(g.cells!==void 0){let X=g.cells;if(X.structure!==void 0){let D=X.structure.array;if(c.cells.splice(D.start,D.deleteCount,...D.cells!==void 0?D.cells:[]),X.structure.didOpen!==void 0)for(let P of X.structure.didOpen)n.openTextDocument({textDocument:P}),b.push(P.uri);if(X.structure.didClose)for(let P of X.structure.didClose)n.closeTextDocument({textDocument:P}),x.push(P.uri)}if(X.data!==void 0){let D=new Map(X.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=D.get(c.cells[P].document);if(U!==void 0){let ne=c.cells.splice(P,1,U);if(k.push({old:ne[0],new:U}),D.delete(U.document),D.size===0)break}}}if(X.textContent!==void 0)for(let D of X.textContent)n.changeTextDocument({textDocument:D.document,contentChanges:D.changes}),I.push(D.document.uri)}this.updateCellMap(c);let M={notebookDocument:c};f&&(M.metadata={old:u,new:c.metadata});let N=[];for(let X of b)N.push(this.getNotebookCell(X));let B=[];for(let X of x)B.push(this.getNotebookCell(X));let W=[];for(let X of I)W.push(this.getNotebookCell(X));(N.length>0||B.length>0||k.length>0||W.length>0)&&(M.cells={added:N,removed:B,changed:{data:k,textContent:W}}),(M.metadata!==void 0||M.cells!==void 0)&&this._onDidChange.fire(M)})),i.push(t.notebooks.synchronization.onDidSaveNotebookDocument(o=>{let c=this.notebookDocuments.get(o.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(t.notebooks.synchronization.onDidCloseNotebookDocument(o=>{let c=this.notebookDocuments.get(o.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of o.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(o.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(o=>o.dispose())})}updateCellMap(t){for(let n of t.cells)this.notebookCellMap.set(n.document,[n,t])}};ko.NotebookDocuments=Wh});var sw=F(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.MonikerFeature=void 0;var $1=Rt(),W1=e=>class extends e{get moniker(){return{on:t=>{let n=$1.MonikerRequest.type;return this.connection.onRequest(n,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};vu.MonikerFeature=W1});var Jh=F(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.createConnection=We.combineFeatures=We.combineNotebooksFeatures=We.combineLanguagesFeatures=We.combineWorkspaceFeatures=We.combineWindowFeatures=We.combineClientFeatures=We.combineTracerFeatures=We.combineTelemetryFeatures=We.combineConsoleFeatures=We._NotebooksImpl=We._LanguagesImpl=We.BulkUnregistration=We.BulkRegistration=We.ErrorMessageTracker=void 0;var te=Rt(),jn=gc(),Hh=Fh(),ye=Hx(),j1=Vx(),z1=Gx(),H1=Qx(),V1=Lh(),G1=Jx(),Q1=Xx(),J1=Kx(),X1=Yx(),K1=ew(),Y1=nw(),Z1=rw(),eq=iw(),tq=jh(),nq=sw();function zh(e){if(e!==null)return e}var Vh=class{constructor(){this._messages=Object.create(null)}add(t){let n=this._messages[t];n||(n=0),n++,this._messages[t]=n}sendErrors(t){Object.keys(this._messages).forEach(n=>{t.window.showErrorMessage(n)})}};We.ErrorMessageTracker=Vh;var yu=class{constructor(){}rawAttach(t){this._rawConnection=t}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(t){}initialize(t){}error(t){this.send(te.MessageType.Error,t)}warn(t){this.send(te.MessageType.Warning,t)}info(t){this.send(te.MessageType.Info,t)}log(t){this.send(te.MessageType.Log,t)}debug(t){this.send(te.MessageType.Debug,t)}send(t,n){this._rawConnection&&this._rawConnection.sendNotification(te.LogMessageNotification.type,{type:t,message:n}).catch(()=>{(0,te.RAL)().console.error("Sending log message failed")})}},Gh=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}showErrorMessage(t,...n){let i={type:te.MessageType.Error,message:t,actions:n};return this.connection.sendRequest(te.ShowMessageRequest.type,i).then(zh)}showWarningMessage(t,...n){let i={type:te.MessageType.Warning,message:t,actions:n};return this.connection.sendRequest(te.ShowMessageRequest.type,i).then(zh)}showInformationMessage(t,...n){let i={type:te.MessageType.Info,message:t,actions:n};return this.connection.sendRequest(te.ShowMessageRequest.type,i).then(zh)}},aw=(0,G1.ShowDocumentFeature)((0,ye.ProgressFeature)(Gh)),cw;(function(e){function t(){return new xu}e.create=t})(cw||(We.BulkRegistration=cw={}));var xu=class{constructor(){this._registrations=[],this._registered=new Set}add(t,n){let i=jn.string(t)?t:t.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let o=Hh.generateUuid();this._registrations.push({id:o,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},uw;(function(e){function t(){return new As(void 0,[])}e.create=t})(uw||(We.BulkUnregistration=uw={}));var As=class{constructor(t,n){this._connection=t,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(t){this._connection=t}add(t){this._unregistrations.set(t.method,t)}dispose(){let t=[];for(let i of this._unregistrations.values())t.push(i);let n={unregisterations:t};this._connection.sendRequest(te.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(t){let n=jn.string(t)?t:t.method,i=this._unregistrations.get(n);if(!i)return!1;let o={unregisterations:[i]};return this._connection.sendRequest(te.UnregistrationRequest.type,o).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},wu=class{attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}register(t,n,i){return t instanceof xu?this.registerMany(t):t instanceof As?this.registerSingle1(t,n,i):this.registerSingle2(t,n)}registerSingle1(t,n,i){let o=jn.string(n)?n:n.method,c=Hh.generateUuid(),u={registrations:[{id:c,method:o,registerOptions:i||{}}]};return t.isAttached||t.attach(this.connection),this.connection.sendRequest(te.RegistrationRequest.type,u).then(f=>(t.add({id:c,method:o}),t),f=>(this.connection.console.info(`Registering request handler for ${o} failed.`),Promise.reject(f)))}registerSingle2(t,n){let i=jn.string(t)?t:t.method,o=Hh.generateUuid(),c={registrations:[{id:o,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(te.RegistrationRequest.type,c).then(u=>te.Disposable.create(()=>{this.unregisterSingle(o,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${o} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(t,n){let i={unregisterations:[{id:t,method:n}]};return this.connection.sendRequest(te.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${t} failed.`)})}registerMany(t){let n=t.asRegistrationParams();return this.connection.sendRequest(te.RegistrationRequest.type,n).then(()=>new As(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Qh=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}applyEdit(t){function n(o){return o&&!!o.edit}let i=n(t)?t:{edit:t};return this.connection.sendRequest(te.ApplyWorkspaceEditRequest.type,i)}},lw=(0,Q1.FileOperationsFeature)((0,z1.WorkspaceFoldersFeature)((0,j1.ConfigurationFeature)(Qh))),Pu=class{constructor(){this._trace=te.Trace.Off}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}set trace(t){this._trace=t}log(t,n){this._trace!==te.Trace.Off&&this.connection.sendNotification(te.LogTraceNotification.type,{message:t,verbose:this._trace===te.Trace.Verbose?n:void 0}).catch(()=>{})}},Su=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}logEvent(t){this.connection.sendNotification(te.TelemetryEventNotification.type,t).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Cu=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}attachWorkDoneProgress(t){return(0,ye.attachWorkDone)(this.connection,t)}attachPartialResultProgress(t,n){return(0,ye.attachPartialResult)(this.connection,n)}};We._LanguagesImpl=Cu;var dw=(0,Y1.FoldingRangeFeature)((0,nq.MonikerFeature)((0,eq.DiagnosticFeature)((0,Z1.InlayHintFeature)((0,K1.InlineValueFeature)((0,X1.TypeHierarchyFeature)((0,J1.LinkedEditingRangeFeature)((0,V1.SemanticTokensFeature)((0,H1.CallHierarchyFeature)(Cu))))))))),ku=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}attachWorkDoneProgress(t){return(0,ye.attachWorkDone)(this.connection,t)}attachPartialResultProgress(t,n){return(0,ye.attachPartialResult)(this.connection,n)}};We._NotebooksImpl=ku;var fw=(0,tq.NotebookSyncFeature)(ku);function hw(e,t){return function(n){return t(e(n))}}We.combineConsoleFeatures=hw;function gw(e,t){return function(n){return t(e(n))}}We.combineTelemetryFeatures=gw;function pw(e,t){return function(n){return t(e(n))}}We.combineTracerFeatures=pw;function mw(e,t){return function(n){return t(e(n))}}We.combineClientFeatures=mw;function bw(e,t){return function(n){return t(e(n))}}We.combineWindowFeatures=bw;function _w(e,t){return function(n){return t(e(n))}}We.combineWorkspaceFeatures=_w;function vw(e,t){return function(n){return t(e(n))}}We.combineLanguagesFeatures=vw;function yw(e,t){return function(n){return t(e(n))}}We.combineNotebooksFeatures=yw;function rq(e,t){function n(o,c,u){return o&&c?u(o,c):o||c}return{__brand:"features",console:n(e.console,t.console,hw),tracer:n(e.tracer,t.tracer,pw),telemetry:n(e.telemetry,t.telemetry,gw),client:n(e.client,t.client,mw),window:n(e.window,t.window,bw),workspace:n(e.workspace,t.workspace,_w),languages:n(e.languages,t.languages,vw),notebooks:n(e.notebooks,t.notebooks,yw)}}We.combineFeatures=rq;function iq(e,t,n){let i=n&&n.console?new(n.console(yu)):new yu,o=e(i);i.rawAttach(o);let c=n&&n.tracer?new(n.tracer(Pu)):new Pu,u=n&&n.telemetry?new(n.telemetry(Su)):new Su,f=n&&n.client?new(n.client(wu)):new wu,g=n&&n.window?new(n.window(aw)):new aw,b=n&&n.workspace?new(n.workspace(lw)):new lw,x=n&&n.languages?new(n.languages(dw)):new dw,k=n&&n.notebooks?new(n.notebooks(fw)):new fw,I=[i,c,u,f,g,b,x,k];function M(D){return D instanceof Promise?D:jn.thenable(D)?new Promise((P,U)=>{D.then(ne=>P(ne),ne=>U(ne))}):Promise.resolve(D)}let N,B,W,X={listen:()=>o.listen(),sendRequest:(D,...P)=>o.sendRequest(jn.string(D)?D:D.method,...P),onRequest:(D,P)=>o.onRequest(D,P),sendNotification:(D,P)=>{let U=jn.string(D)?D:D.method;return o.sendNotification(U,P)},onNotification:(D,P)=>o.onNotification(D,P),onProgress:o.onProgress,sendProgress:o.sendProgress,onInitialize:D=>(B=D,{dispose:()=>{B=void 0}}),onInitialized:D=>o.onNotification(te.InitializedNotification.type,D),onShutdown:D=>(N=D,{dispose:()=>{N=void 0}}),onExit:D=>(W=D,{dispose:()=>{W=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return f},get window(){return g},get workspace(){return b},get languages(){return x},get notebooks(){return k},onDidChangeConfiguration:D=>o.onNotification(te.DidChangeConfigurationNotification.type,D),onDidChangeWatchedFiles:D=>o.onNotification(te.DidChangeWatchedFilesNotification.type,D),__textDocumentSync:void 0,onDidOpenTextDocument:D=>o.onNotification(te.DidOpenTextDocumentNotification.type,D),onDidChangeTextDocument:D=>o.onNotification(te.DidChangeTextDocumentNotification.type,D),onDidCloseTextDocument:D=>o.onNotification(te.DidCloseTextDocumentNotification.type,D),onWillSaveTextDocument:D=>o.onNotification(te.WillSaveTextDocumentNotification.type,D),onWillSaveTextDocumentWaitUntil:D=>o.onRequest(te.WillSaveTextDocumentWaitUntilRequest.type,D),onDidSaveTextDocument:D=>o.onNotification(te.DidSaveTextDocumentNotification.type,D),sendDiagnostics:D=>o.sendNotification(te.PublishDiagnosticsNotification.type,D),onHover:D=>o.onRequest(te.HoverRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onCompletion:D=>o.onRequest(te.CompletionRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onCompletionResolve:D=>o.onRequest(te.CompletionResolveRequest.type,D),onSignatureHelp:D=>o.onRequest(te.SignatureHelpRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onDeclaration:D=>o.onRequest(te.DeclarationRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onDefinition:D=>o.onRequest(te.DefinitionRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onTypeDefinition:D=>o.onRequest(te.TypeDefinitionRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onImplementation:D=>o.onRequest(te.ImplementationRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onReferences:D=>o.onRequest(te.ReferencesRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onDocumentHighlight:D=>o.onRequest(te.DocumentHighlightRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onDocumentSymbol:D=>o.onRequest(te.DocumentSymbolRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onWorkspaceSymbol:D=>o.onRequest(te.WorkspaceSymbolRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onWorkspaceSymbolResolve:D=>o.onRequest(te.WorkspaceSymbolResolveRequest.type,D),onCodeAction:D=>o.onRequest(te.CodeActionRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onCodeActionResolve:D=>o.onRequest(te.CodeActionResolveRequest.type,(P,U)=>D(P,U)),onCodeLens:D=>o.onRequest(te.CodeLensRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onCodeLensResolve:D=>o.onRequest(te.CodeLensResolveRequest.type,(P,U)=>D(P,U)),onDocumentFormatting:D=>o.onRequest(te.DocumentFormattingRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onDocumentRangeFormatting:D=>o.onRequest(te.DocumentRangeFormattingRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onDocumentOnTypeFormatting:D=>o.onRequest(te.DocumentOnTypeFormattingRequest.type,(P,U)=>D(P,U)),onRenameRequest:D=>o.onRequest(te.RenameRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),onPrepareRename:D=>o.onRequest(te.PrepareRenameRequest.type,(P,U)=>D(P,U)),onDocumentLinks:D=>o.onRequest(te.DocumentLinkRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onDocumentLinkResolve:D=>o.onRequest(te.DocumentLinkResolveRequest.type,(P,U)=>D(P,U)),onDocumentColor:D=>o.onRequest(te.DocumentColorRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onColorPresentation:D=>o.onRequest(te.ColorPresentationRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onFoldingRanges:D=>o.onRequest(te.FoldingRangeRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onSelectionRanges:D=>o.onRequest(te.SelectionRangeRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),(0,ye.attachPartialResult)(o,P))),onExecuteCommand:D=>o.onRequest(te.ExecuteCommandRequest.type,(P,U)=>D(P,U,(0,ye.attachWorkDone)(o,P),void 0)),dispose:()=>o.dispose()};for(let D of I)D.attach(X);return o.onRequest(te.InitializeRequest.type,D=>{t.initialize(D),jn.string(D.trace)&&(c.trace=te.Trace.fromString(D.trace));for(let P of I)P.initialize(D.capabilities);if(B){let P=B(D,new te.CancellationTokenSource().token,(0,ye.attachWorkDone)(o,D),void 0);return M(P).then(U=>{if(U instanceof te.ResponseError)return U;let ne=U;ne||(ne={capabilities:{}});let _e=ne.capabilities;_e||(_e={},ne.capabilities=_e),_e.textDocumentSync===void 0||_e.textDocumentSync===null?_e.textDocumentSync=jn.number(X.__textDocumentSync)?X.__textDocumentSync:te.TextDocumentSyncKind.None:!jn.number(_e.textDocumentSync)&&!jn.number(_e.textDocumentSync.change)&&(_e.textDocumentSync.change=jn.number(X.__textDocumentSync)?X.__textDocumentSync:te.TextDocumentSyncKind.None);for(let Ue of I)Ue.fillServerCapabilities(_e);return ne})}else{let P={capabilities:{textDocumentSync:te.TextDocumentSyncKind.None}};for(let U of I)U.fillServerCapabilities(P.capabilities);return P}}),o.onRequest(te.ShutdownRequest.type,()=>{if(t.shutdownReceived=!0,N)return N(new te.CancellationTokenSource().token)}),o.onNotification(te.ExitNotification.type,()=>{try{W&&W()}finally{t.shutdownReceived?t.exit(0):t.exit(1)}}),o.onNotification(te.SetTraceNotification.type,D=>{c.trace=te.Trace.fromString(D.value)}),X}We.createConnection=iq});var xw=F(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var oq=require("url"),tr=require("path"),Xh=require("fs"),eg=require("child_process");function sq(e){let t=oq.parse(e);if(t.protocol!=="file:"||!t.path)return;let n=t.path.split("/");for(var i=0,o=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=sq;function Kh(){return process.platform==="win32"}function Ru(e,t,n,i){let o="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,f)=>{let g=process.env,b=Object.create(null);Object.keys(g).forEach(x=>b[x]=g[x]),t&&Xh.existsSync(t)&&(b[o]?b[o]=t+tr.delimiter+b[o]:b[o]=t,i&&i(`NODE_PATH value is: ${b[o]}`)),b.ELECTRON_RUN_AS_NODE="1";try{let x=(0,eg.fork)("",[],{cwd:n,env:b,execArgv:["-e",c]});if(x.pid===void 0){f(new Error(`Starting process to resolve node module ${e} failed`));return}x.on("error",I=>{f(I)}),x.on("message",I=>{I.c==="r"&&(x.send({c:"e"}),I.s?u(I.r):f(new Error(`Failed to resolve module: ${e}`)))});let k={c:"rs",a:e};x.send(k)}catch(x){f(x)}})}mn.resolve=Ru;function Yh(e){let t="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Kh()&&(t="npm.cmd",i.shell=!0);let o=()=>{};try{process.on("SIGPIPE",o);let c=(0,eg.spawnSync)(t,["config","get","prefix"],i).stdout;if(!c){e&&e("'npm config get prefix' didn't return a value.");return}let u=c.trim();return e&&e(`'npm config get prefix' value is: ${u}`),u.length>0?Kh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",o)}}mn.resolveGlobalNodePath=Yh;function aq(e){let t="yarn",n={encoding:"utf8"};Kh()&&(t="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let o=(0,eg.spawnSync)(t,["global","dir","--json"],n),c=o.stdout;if(!c){e&&(e("'yarn global dir' didn't return a value."),o.stderr&&e(o.stderr));return}let u=c.trim().split(/\r?\n/);for(let f of u)try{let g=JSON.parse(f);if(g.type==="log")return tr.join(g.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=aq;var Zh;(function(e){let t;function n(){return t!==void 0||(process.platform==="win32"?t=!1:t=!Xh.existsSync(__filename.toUpperCase())||!Xh.existsSync(__filename.toLowerCase())),t}e.isCaseSensitive=n;function i(o,c){return n()?tr.normalize(c).indexOf(tr.normalize(o))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(o).toLowerCase())===0}e.isParent=i})(Zh||(mn.FileSystem=Zh={}));function cq(e,t,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(e,n)),Ru(t,n,n,i).then(o=>Zh.isParent(n,o)?o:Promise.reject(new Error(`Failed to load ${t} from node path location.`))).then(void 0,o=>Ru(t,Yh(i),e,i))):Ru(t,Yh(i),e,i)}mn.resolveModulePath=cq});var tg=F((TH,ww)=>{"use strict";ww.exports=Rt()});var Pw=F(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.InlineCompletionFeature=void 0;var uq=Rt(),lq=e=>class extends e{get inlineCompletion(){return{on:t=>this.connection.onRequest(uq.InlineCompletionRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n)))}}};Tu.InlineCompletionFeature=lq});var kw=F(Kt=>{"use strict";var dq=Kt&&Kt.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),Cw=Kt&&Kt.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&dq(t,e,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var fq=Lh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return fq.SemanticTokensBuilder}});var hq=Pw();Cw(Rt(),Kt);var gq=$h();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return gq.TextDocuments}});var pq=jh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return pq.NotebookDocuments}});Cw(Jh(),Kt);var Sw;(function(e){e.all={__brand:"features",languages:hq.InlineCompletionFeature}})(Sw||(Kt.ProposedFeatures=Sw={}))});var Fw=F(zn=>{"use strict";var mq=zn&&zn.__createBinding||(Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]}),Ew=zn&&zn.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&mq(t,e,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var Rw=require("node:util"),ng=gc(),bq=Jh(),Ms=xw(),Oi=tg();Ew(tg(),zn);Ew(kw(),zn);var Tw;(function(e){e.uriToFilePath=Ms.uriToFilePath,e.resolveGlobalNodePath=Ms.resolveGlobalNodePath,e.resolveGlobalYarnPath=Ms.resolveGlobalYarnPath,e.resolve=Ms.resolve,e.resolveModulePath=Ms.resolveModulePath})(Tw||(zn.Files=Tw={}));var Dw;function Du(){if(Dw!==void 0)try{Dw.end()}catch{}}var Ro=!1,Iw;function _q(){let e="--clientProcessId";function t(n){try{let i=parseInt(n);isNaN(i)||(Iw=setInterval(()=>{try{process.kill(i,0)}catch{Du(),process.exit(Ro?0:1)}},3e3))}catch{}}for(let n=2;n{let t=e.processId;ng.number(t)&&Iw===void 0&&setInterval(()=>{try{process.kill(t,0)}catch{process.exit(Ro?0:1)}},3e3)},get shutdownReceived(){return Ro},set shutdownReceived(e){Ro=e},exit:e=>{Du(),process.exit(e)}};function yq(e,t,n,i){let o,c,u,f;return e!==void 0&&e.__brand==="features"&&(o=e,e=t,t=n,n=i),Oi.ConnectionStrategy.is(e)||Oi.ConnectionOptions.is(e)?f=e:(c=e,u=t,f=n),xq(c,u,f,o)}zn.createConnection=yq;function xq(e,t,n,i){let o=!1;if(!e&&!t&&process.argv.length>2){let g,b,x=process.argv.slice(2);for(let k=0;k{Du(),process.exit(Ro?0:1)}),g.on("close",()=>{Du(),process.exit(Ro?0:1)})}let f=g=>{let b=(0,Oi.createProtocolConnection)(e,t,g,n);return o&&wq(g),b};return(0,bq.createConnection)(f,vq,i)}function wq(e){function t(i){return i.map(o=>typeof o=="string"?o:(0,Rw.inspect)(o)).join(" ")}let n=new Map;console.assert=function(o,...c){if(!o)if(c.length===0)e.error("Assertion failed");else{let[u,...f]=c;e.error(`Assertion failed: ${u} ${t(f)}`)}},console.count=function(o="default"){let c=String(o),u=n.get(c)??0;u+=1,n.set(c,u),e.log(`${c}: ${c}`)},console.countReset=function(o){o===void 0?n.clear():n.delete(String(o))},console.debug=function(...o){e.log(t(o))},console.dir=function(o,c){e.log((0,Rw.inspect)(o,c))},console.log=function(...o){e.log(t(o))},console.error=function(...o){e.error(t(o))},console.trace=function(...o){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";o.length!==0&&(u+=`: ${t(o)}`),e.log(`${u} -${c}`)},console.warn=function(...o){e.warn(t(o))}}});var Mw=F((AH,Aw)=>{"use strict";Aw.exports=Fw()});var Uw=F((QH,Bw)=>{"use strict";function Tq(){this.__data__=[],this.size=0}Bw.exports=Tq});var sg=F((JH,$w)=>{"use strict";function Dq(e,t){return e===t||e!==e&&t!==t}$w.exports=Dq});var qs=F((XH,Ww)=>{"use strict";var Eq=sg();function Iq(e,t){for(var n=e.length;n--;)if(Eq(e[n][0],t))return n;return-1}Ww.exports=Iq});var zw=F((KH,jw)=>{"use strict";var Fq=qs(),Aq=Array.prototype,Mq=Aq.splice;function Nq(e){var t=this.__data__,n=Fq(t,e);if(n<0)return!1;var i=t.length-1;return n==i?t.pop():Mq.call(t,n,1),--this.size,!0}jw.exports=Nq});var Vw=F((YH,Hw)=>{"use strict";var qq=qs();function Lq(e){var t=this.__data__,n=qq(t,e);return n<0?void 0:t[n][1]}Hw.exports=Lq});var Qw=F((ZH,Gw)=>{"use strict";var Oq=qs();function Bq(e){return Oq(this.__data__,e)>-1}Gw.exports=Bq});var Xw=F((e3,Jw)=>{"use strict";var Uq=qs();function $q(e,t){var n=this.__data__,i=Uq(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}Jw.exports=$q});var Ls=F((t3,Kw)=>{"use strict";var Wq=Uw(),jq=zw(),zq=Vw(),Hq=Qw(),Vq=Xw();function Io(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t{"use strict";var Gq=Ls();function Qq(){this.__data__=new Gq,this.size=0}Yw.exports=Qq});var tP=F((r3,eP)=>{"use strict";function Jq(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}eP.exports=Jq});var rP=F((i3,nP)=>{"use strict";function Xq(e){return this.__data__.get(e)}nP.exports=Xq});var oP=F((o3,iP)=>{"use strict";function Kq(e){return this.__data__.has(e)}iP.exports=Kq});var ag=F((s3,sP)=>{"use strict";var Yq=typeof global=="object"&&global&&global.Object===Object&&global;sP.exports=Yq});var nr=F((a3,aP)=>{"use strict";var Zq=ag(),eL=typeof self=="object"&&self&&self.Object===Object&&self,tL=Zq||eL||Function("return this")();aP.exports=tL});var Fu=F((c3,cP)=>{"use strict";var nL=nr(),rL=nL.Symbol;cP.exports=rL});var fP=F((u3,dP)=>{"use strict";var uP=Fu(),lP=Object.prototype,iL=lP.hasOwnProperty,oL=lP.toString,Os=uP?uP.toStringTag:void 0;function sL(e){var t=iL.call(e,Os),n=e[Os];try{e[Os]=void 0;var i=!0}catch{}var o=oL.call(e);return i&&(t?e[Os]=n:delete e[Os]),o}dP.exports=sL});var gP=F((l3,hP)=>{"use strict";var aL=Object.prototype,cL=aL.toString;function uL(e){return cL.call(e)}hP.exports=uL});var Bs=F((d3,bP)=>{"use strict";var pP=Fu(),lL=fP(),dL=gP(),fL="[object Null]",hL="[object Undefined]",mP=pP?pP.toStringTag:void 0;function gL(e){return e==null?e===void 0?hL:fL:mP&&mP in Object(e)?lL(e):dL(e)}bP.exports=gL});var Fo=F((f3,_P)=>{"use strict";function pL(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}_P.exports=pL});var cg=F((h3,vP)=>{"use strict";var mL=Bs(),bL=Fo(),_L="[object AsyncFunction]",vL="[object Function]",yL="[object GeneratorFunction]",xL="[object Proxy]";function wL(e){if(!bL(e))return!1;var t=mL(e);return t==vL||t==yL||t==_L||t==xL}vP.exports=wL});var xP=F((g3,yP)=>{"use strict";var PL=nr(),SL=PL["__core-js_shared__"];yP.exports=SL});var SP=F((p3,PP)=>{"use strict";var ug=xP(),wP=function(){var e=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function CL(e){return!!wP&&wP in e}PP.exports=CL});var lg=F((m3,CP)=>{"use strict";var kL=Function.prototype,RL=kL.toString;function TL(e){if(e!=null){try{return RL.call(e)}catch{}try{return e+""}catch{}}return""}CP.exports=TL});var RP=F((b3,kP)=>{"use strict";var DL=cg(),EL=SP(),IL=Fo(),FL=lg(),AL=/[\\^$.*+?()[\]{}|]/g,ML=/^\[object .+?Constructor\]$/,NL=Function.prototype,qL=Object.prototype,LL=NL.toString,OL=qL.hasOwnProperty,BL=RegExp("^"+LL.call(OL).replace(AL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function UL(e){if(!IL(e)||EL(e))return!1;var t=DL(e)?BL:ML;return t.test(FL(e))}kP.exports=UL});var DP=F((_3,TP)=>{"use strict";function $L(e,t){return e?.[t]}TP.exports=$L});var hi=F((v3,EP)=>{"use strict";var WL=RP(),jL=DP();function zL(e,t){var n=jL(e,t);return WL(n)?n:void 0}EP.exports=zL});var Au=F((y3,IP)=>{"use strict";var HL=hi(),VL=nr(),GL=HL(VL,"Map");IP.exports=GL});var Us=F((x3,FP)=>{"use strict";var QL=hi(),JL=QL(Object,"create");FP.exports=JL});var NP=F((w3,MP)=>{"use strict";var AP=Us();function XL(){this.__data__=AP?AP(null):{},this.size=0}MP.exports=XL});var LP=F((P3,qP)=>{"use strict";function KL(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}qP.exports=KL});var BP=F((S3,OP)=>{"use strict";var YL=Us(),ZL="__lodash_hash_undefined__",eO=Object.prototype,tO=eO.hasOwnProperty;function nO(e){var t=this.__data__;if(YL){var n=t[e];return n===ZL?void 0:n}return tO.call(t,e)?t[e]:void 0}OP.exports=nO});var $P=F((C3,UP)=>{"use strict";var rO=Us(),iO=Object.prototype,oO=iO.hasOwnProperty;function sO(e){var t=this.__data__;return rO?t[e]!==void 0:oO.call(t,e)}UP.exports=sO});var jP=F((k3,WP)=>{"use strict";var aO=Us(),cO="__lodash_hash_undefined__";function uO(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=aO&&t===void 0?cO:t,this}WP.exports=uO});var HP=F((R3,zP)=>{"use strict";var lO=NP(),dO=LP(),fO=BP(),hO=$P(),gO=jP();function Ao(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t{"use strict";var VP=HP(),pO=Ls(),mO=Au();function bO(){this.size=0,this.__data__={hash:new VP,map:new(mO||pO),string:new VP}}GP.exports=bO});var XP=F((D3,JP)=>{"use strict";function _O(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}JP.exports=_O});var $s=F((E3,KP)=>{"use strict";var vO=XP();function yO(e,t){var n=e.__data__;return vO(t)?n[typeof t=="string"?"string":"hash"]:n.map}KP.exports=yO});var ZP=F((I3,YP)=>{"use strict";var xO=$s();function wO(e){var t=xO(this,e).delete(e);return this.size-=t?1:0,t}YP.exports=wO});var tS=F((F3,eS)=>{"use strict";var PO=$s();function SO(e){return PO(this,e).get(e)}eS.exports=SO});var rS=F((A3,nS)=>{"use strict";var CO=$s();function kO(e){return CO(this,e).has(e)}nS.exports=kO});var oS=F((M3,iS)=>{"use strict";var RO=$s();function TO(e,t){var n=RO(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}iS.exports=TO});var aS=F((N3,sS)=>{"use strict";var DO=QP(),EO=ZP(),IO=tS(),FO=rS(),AO=oS();function Mo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t{"use strict";var MO=Ls(),NO=Au(),qO=aS(),LO=200;function OO(e,t){var n=this.__data__;if(n instanceof MO){var i=n.__data__;if(!NO||i.length{"use strict";var BO=Ls(),UO=Zw(),$O=tP(),WO=rP(),jO=oP(),zO=uS();function No(e){var t=this.__data__=new BO(e);this.size=t.size}No.prototype.clear=UO;No.prototype.delete=$O;No.prototype.get=WO;No.prototype.has=jO;No.prototype.set=zO;lS.exports=No});var hS=F((O3,fS)=>{"use strict";function HO(e,t){for(var n=-1,i=e==null?0:e.length;++n{"use strict";var VO=hi(),GO=function(){try{var e=VO(Object,"defineProperty");return e({},"",{}),e}catch{}}();gS.exports=GO});var dg=F((U3,bS)=>{"use strict";var mS=pS();function QO(e,t,n){t=="__proto__"&&mS?mS(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}bS.exports=QO});var fg=F(($3,_S)=>{"use strict";var JO=dg(),XO=sg(),KO=Object.prototype,YO=KO.hasOwnProperty;function ZO(e,t,n){var i=e[t];(!(YO.call(e,t)&&XO(i,n))||n===void 0&&!(t in e))&&JO(e,t,n)}_S.exports=ZO});var Ws=F((W3,vS)=>{"use strict";var eB=fg(),tB=dg();function nB(e,t,n,i){var o=!n;n||(n={});for(var c=-1,u=t.length;++c{"use strict";function rB(e,t){for(var n=-1,i=Array(e);++n{"use strict";function iB(e){return e!=null&&typeof e=="object"}wS.exports=iB});var SS=F((H3,PS)=>{"use strict";var oB=Bs(),sB=qo(),aB="[object Arguments]";function cB(e){return sB(e)&&oB(e)==aB}PS.exports=cB});var TS=F((V3,RS)=>{"use strict";var CS=SS(),uB=qo(),kS=Object.prototype,lB=kS.hasOwnProperty,dB=kS.propertyIsEnumerable,fB=CS(function(){return arguments}())?CS:function(e){return uB(e)&&lB.call(e,"callee")&&!dB.call(e,"callee")};RS.exports=fB});var Mu=F((G3,DS)=>{"use strict";var hB=Array.isArray;DS.exports=hB});var IS=F((Q3,ES)=>{"use strict";function gB(){return!1}ES.exports=gB});var hg=F((js,Lo)=>{"use strict";var pB=nr(),mB=IS(),MS=typeof js=="object"&&js&&!js.nodeType&&js,FS=MS&&typeof Lo=="object"&&Lo&&!Lo.nodeType&&Lo,bB=FS&&FS.exports===MS,AS=bB?pB.Buffer:void 0,_B=AS?AS.isBuffer:void 0,vB=_B||mB;Lo.exports=vB});var qS=F((J3,NS)=>{"use strict";var yB=9007199254740991,xB=/^(?:0|[1-9]\d*)$/;function wB(e,t){var n=typeof e;return t=t??yB,!!t&&(n=="number"||n!="symbol"&&xB.test(e))&&e>-1&&e%1==0&&e{"use strict";var PB=9007199254740991;function SB(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=PB}LS.exports=SB});var BS=F((K3,OS)=>{"use strict";var CB=Bs(),kB=gg(),RB=qo(),TB="[object Arguments]",DB="[object Array]",EB="[object Boolean]",IB="[object Date]",FB="[object Error]",AB="[object Function]",MB="[object Map]",NB="[object Number]",qB="[object Object]",LB="[object RegExp]",OB="[object Set]",BB="[object String]",UB="[object WeakMap]",$B="[object ArrayBuffer]",WB="[object DataView]",jB="[object Float32Array]",zB="[object Float64Array]",HB="[object Int8Array]",VB="[object Int16Array]",GB="[object Int32Array]",QB="[object Uint8Array]",JB="[object Uint8ClampedArray]",XB="[object Uint16Array]",KB="[object Uint32Array]",lt={};lt[jB]=lt[zB]=lt[HB]=lt[VB]=lt[GB]=lt[QB]=lt[JB]=lt[XB]=lt[KB]=!0;lt[TB]=lt[DB]=lt[$B]=lt[EB]=lt[WB]=lt[IB]=lt[FB]=lt[AB]=lt[MB]=lt[NB]=lt[qB]=lt[LB]=lt[OB]=lt[BB]=lt[UB]=!1;function YB(e){return RB(e)&&kB(e.length)&&!!lt[CB(e)]}OS.exports=YB});var Nu=F((Y3,US)=>{"use strict";function ZB(e){return function(t){return e(t)}}US.exports=ZB});var qu=F((zs,Oo)=>{"use strict";var eU=ag(),$S=typeof zs=="object"&&zs&&!zs.nodeType&&zs,Hs=$S&&typeof Oo=="object"&&Oo&&!Oo.nodeType&&Oo,tU=Hs&&Hs.exports===$S,pg=tU&&eU.process,nU=function(){try{var e=Hs&&Hs.require&&Hs.require("util").types;return e||pg&&pg.binding&&pg.binding("util")}catch{}}();Oo.exports=nU});var HS=F((Z3,zS)=>{"use strict";var rU=BS(),iU=Nu(),WS=qu(),jS=WS&&WS.isTypedArray,oU=jS?iU(jS):rU;zS.exports=oU});var mg=F((e4,VS)=>{"use strict";var sU=xS(),aU=TS(),cU=Mu(),uU=hg(),lU=qS(),dU=HS(),fU=Object.prototype,hU=fU.hasOwnProperty;function gU(e,t){var n=cU(e),i=!n&&aU(e),o=!n&&!i&&uU(e),c=!n&&!i&&!o&&dU(e),u=n||i||o||c,f=u?sU(e.length,String):[],g=f.length;for(var b in e)(t||hU.call(e,b))&&!(u&&(b=="length"||o&&(b=="offset"||b=="parent")||c&&(b=="buffer"||b=="byteLength"||b=="byteOffset")||lU(b,g)))&&f.push(b);return f}VS.exports=gU});var Lu=F((t4,GS)=>{"use strict";var pU=Object.prototype;function mU(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||pU;return e===n}GS.exports=mU});var bg=F((n4,QS)=>{"use strict";function bU(e,t){return function(n){return e(t(n))}}QS.exports=bU});var XS=F((r4,JS)=>{"use strict";var _U=bg(),vU=_U(Object.keys,Object);JS.exports=vU});var YS=F((i4,KS)=>{"use strict";var yU=Lu(),xU=XS(),wU=Object.prototype,PU=wU.hasOwnProperty;function SU(e){if(!yU(e))return xU(e);var t=[];for(var n in Object(e))PU.call(e,n)&&n!="constructor"&&t.push(n);return t}KS.exports=SU});var _g=F((o4,ZS)=>{"use strict";var CU=cg(),kU=gg();function RU(e){return e!=null&&kU(e.length)&&!CU(e)}ZS.exports=RU});var Ou=F((s4,eC)=>{"use strict";var TU=mg(),DU=YS(),EU=_g();function IU(e){return EU(e)?TU(e):DU(e)}eC.exports=IU});var nC=F((a4,tC)=>{"use strict";var FU=Ws(),AU=Ou();function MU(e,t){return e&&FU(t,AU(t),e)}tC.exports=MU});var iC=F((c4,rC)=>{"use strict";function NU(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}rC.exports=NU});var sC=F((u4,oC)=>{"use strict";var qU=Fo(),LU=Lu(),OU=iC(),BU=Object.prototype,UU=BU.hasOwnProperty;function $U(e){if(!qU(e))return OU(e);var t=LU(e),n=[];for(var i in e)i=="constructor"&&(t||!UU.call(e,i))||n.push(i);return n}oC.exports=$U});var Bu=F((l4,aC)=>{"use strict";var WU=mg(),jU=sC(),zU=_g();function HU(e){return zU(e)?WU(e,!0):jU(e)}aC.exports=HU});var uC=F((d4,cC)=>{"use strict";var VU=Ws(),GU=Bu();function QU(e,t){return e&&VU(t,GU(t),e)}cC.exports=QU});var gC=F((Vs,Bo)=>{"use strict";var JU=nr(),hC=typeof Vs=="object"&&Vs&&!Vs.nodeType&&Vs,lC=hC&&typeof Bo=="object"&&Bo&&!Bo.nodeType&&Bo,XU=lC&&lC.exports===hC,dC=XU?JU.Buffer:void 0,fC=dC?dC.allocUnsafe:void 0;function KU(e,t){if(t)return e.slice();var n=e.length,i=fC?fC(n):new e.constructor(n);return e.copy(i),i}Bo.exports=KU});var mC=F((f4,pC)=>{"use strict";function YU(e,t){var n=-1,i=e.length;for(t||(t=Array(i));++n{"use strict";function ZU(e,t){for(var n=-1,i=e==null?0:e.length,o=0,c=[];++n{"use strict";function e$(){return[]}vC.exports=e$});var Uu=F((p4,xC)=>{"use strict";var t$=_C(),n$=vg(),r$=Object.prototype,i$=r$.propertyIsEnumerable,yC=Object.getOwnPropertySymbols,o$=yC?function(e){return e==null?[]:(e=Object(e),t$(yC(e),function(t){return i$.call(e,t)}))}:n$;xC.exports=o$});var PC=F((m4,wC)=>{"use strict";var s$=Ws(),a$=Uu();function c$(e,t){return s$(e,a$(e),t)}wC.exports=c$});var yg=F((b4,SC)=>{"use strict";function u$(e,t){for(var n=-1,i=t.length,o=e.length;++n{"use strict";var l$=bg(),d$=l$(Object.getPrototypeOf,Object);CC.exports=d$});var wg=F((v4,kC)=>{"use strict";var f$=yg(),h$=xg(),g$=Uu(),p$=vg(),m$=Object.getOwnPropertySymbols,b$=m$?function(e){for(var t=[];e;)f$(t,g$(e)),e=h$(e);return t}:p$;kC.exports=b$});var TC=F((y4,RC)=>{"use strict";var _$=Ws(),v$=wg();function y$(e,t){return _$(e,v$(e),t)}RC.exports=y$});var Pg=F((x4,DC)=>{"use strict";var x$=yg(),w$=Mu();function P$(e,t,n){var i=t(e);return w$(e)?i:x$(i,n(e))}DC.exports=P$});var IC=F((w4,EC)=>{"use strict";var S$=Pg(),C$=Uu(),k$=Ou();function R$(e){return S$(e,k$,C$)}EC.exports=R$});var AC=F((P4,FC)=>{"use strict";var T$=Pg(),D$=wg(),E$=Bu();function I$(e){return T$(e,E$,D$)}FC.exports=I$});var NC=F((S4,MC)=>{"use strict";var F$=hi(),A$=nr(),M$=F$(A$,"DataView");MC.exports=M$});var LC=F((C4,qC)=>{"use strict";var N$=hi(),q$=nr(),L$=N$(q$,"Promise");qC.exports=L$});var BC=F((k4,OC)=>{"use strict";var O$=hi(),B$=nr(),U$=O$(B$,"Set");OC.exports=U$});var $C=F((R4,UC)=>{"use strict";var $$=hi(),W$=nr(),j$=$$(W$,"WeakMap");UC.exports=j$});var $u=F((T4,QC)=>{"use strict";var Sg=NC(),Cg=Au(),kg=LC(),Rg=BC(),Tg=$C(),GC=Bs(),Uo=lg(),WC="[object Map]",z$="[object Object]",jC="[object Promise]",zC="[object Set]",HC="[object WeakMap]",VC="[object DataView]",H$=Uo(Sg),V$=Uo(Cg),G$=Uo(kg),Q$=Uo(Rg),J$=Uo(Tg),Bi=GC;(Sg&&Bi(new Sg(new ArrayBuffer(1)))!=VC||Cg&&Bi(new Cg)!=WC||kg&&Bi(kg.resolve())!=jC||Rg&&Bi(new Rg)!=zC||Tg&&Bi(new Tg)!=HC)&&(Bi=function(e){var t=GC(e),n=t==z$?e.constructor:void 0,i=n?Uo(n):"";if(i)switch(i){case H$:return VC;case V$:return WC;case G$:return jC;case Q$:return zC;case J$:return HC}return t});QC.exports=Bi});var XC=F((D4,JC)=>{"use strict";var X$=Object.prototype,K$=X$.hasOwnProperty;function Y$(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]=="string"&&K$.call(e,"index")&&(n.index=e.index,n.input=e.input),n}JC.exports=Y$});var YC=F((E4,KC)=>{"use strict";var Z$=nr(),eW=Z$.Uint8Array;KC.exports=eW});var Wu=F((I4,ek)=>{"use strict";var ZC=YC();function tW(e){var t=new e.constructor(e.byteLength);return new ZC(t).set(new ZC(e)),t}ek.exports=tW});var nk=F((F4,tk)=>{"use strict";var nW=Wu();function rW(e,t){var n=t?nW(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}tk.exports=rW});var ik=F((A4,rk)=>{"use strict";var iW=/\w*$/;function oW(e){var t=new e.constructor(e.source,iW.exec(e));return t.lastIndex=e.lastIndex,t}rk.exports=oW});var uk=F((M4,ck)=>{"use strict";var ok=Fu(),sk=ok?ok.prototype:void 0,ak=sk?sk.valueOf:void 0;function sW(e){return ak?Object(ak.call(e)):{}}ck.exports=sW});var dk=F((N4,lk)=>{"use strict";var aW=Wu();function cW(e,t){var n=t?aW(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}lk.exports=cW});var hk=F((q4,fk)=>{"use strict";var uW=Wu(),lW=nk(),dW=ik(),fW=uk(),hW=dk(),gW="[object Boolean]",pW="[object Date]",mW="[object Map]",bW="[object Number]",_W="[object RegExp]",vW="[object Set]",yW="[object String]",xW="[object Symbol]",wW="[object ArrayBuffer]",PW="[object DataView]",SW="[object Float32Array]",CW="[object Float64Array]",kW="[object Int8Array]",RW="[object Int16Array]",TW="[object Int32Array]",DW="[object Uint8Array]",EW="[object Uint8ClampedArray]",IW="[object Uint16Array]",FW="[object Uint32Array]";function AW(e,t,n){var i=e.constructor;switch(t){case wW:return uW(e);case gW:case pW:return new i(+e);case PW:return lW(e,n);case SW:case CW:case kW:case RW:case TW:case DW:case EW:case IW:case FW:return hW(e,n);case mW:return new i;case bW:case yW:return new i(e);case _W:return dW(e);case vW:return new i;case xW:return fW(e)}}fk.exports=AW});var mk=F((L4,pk)=>{"use strict";var MW=Fo(),gk=Object.create,NW=function(){function e(){}return function(t){if(!MW(t))return{};if(gk)return gk(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();pk.exports=NW});var _k=F((O4,bk)=>{"use strict";var qW=mk(),LW=xg(),OW=Lu();function BW(e){return typeof e.constructor=="function"&&!OW(e)?qW(LW(e)):{}}bk.exports=BW});var yk=F((B4,vk)=>{"use strict";var UW=$u(),$W=qo(),WW="[object Map]";function jW(e){return $W(e)&&UW(e)==WW}vk.exports=jW});var Sk=F((U4,Pk)=>{"use strict";var zW=yk(),HW=Nu(),xk=qu(),wk=xk&&xk.isMap,VW=wk?HW(wk):zW;Pk.exports=VW});var kk=F(($4,Ck)=>{"use strict";var GW=$u(),QW=qo(),JW="[object Set]";function XW(e){return QW(e)&&GW(e)==JW}Ck.exports=XW});var Ek=F((W4,Dk)=>{"use strict";var KW=kk(),YW=Nu(),Rk=qu(),Tk=Rk&&Rk.isSet,ZW=Tk?YW(Tk):KW;Dk.exports=ZW});var Nk=F((j4,Mk)=>{"use strict";var ej=dS(),tj=hS(),nj=fg(),rj=nC(),ij=uC(),oj=gC(),sj=mC(),aj=PC(),cj=TC(),uj=IC(),lj=AC(),dj=$u(),fj=XC(),hj=hk(),gj=_k(),pj=Mu(),mj=hg(),bj=Sk(),_j=Fo(),vj=Ek(),yj=Ou(),xj=Bu(),wj=1,Pj=2,Sj=4,Ik="[object Arguments]",Cj="[object Array]",kj="[object Boolean]",Rj="[object Date]",Tj="[object Error]",Fk="[object Function]",Dj="[object GeneratorFunction]",Ej="[object Map]",Ij="[object Number]",Ak="[object Object]",Fj="[object RegExp]",Aj="[object Set]",Mj="[object String]",Nj="[object Symbol]",qj="[object WeakMap]",Lj="[object ArrayBuffer]",Oj="[object DataView]",Bj="[object Float32Array]",Uj="[object Float64Array]",$j="[object Int8Array]",Wj="[object Int16Array]",jj="[object Int32Array]",zj="[object Uint8Array]",Hj="[object Uint8ClampedArray]",Vj="[object Uint16Array]",Gj="[object Uint32Array]",ot={};ot[Ik]=ot[Cj]=ot[Lj]=ot[Oj]=ot[kj]=ot[Rj]=ot[Bj]=ot[Uj]=ot[$j]=ot[Wj]=ot[jj]=ot[Ej]=ot[Ij]=ot[Ak]=ot[Fj]=ot[Aj]=ot[Mj]=ot[Nj]=ot[zj]=ot[Hj]=ot[Vj]=ot[Gj]=!0;ot[Tj]=ot[Fk]=ot[qj]=!1;function ju(e,t,n,i,o,c){var u,f=t&wj,g=t&Pj,b=t&Sj;if(n&&(u=o?n(e,i,o,c):n(e)),u!==void 0)return u;if(!_j(e))return e;var x=pj(e);if(x){if(u=fj(e),!f)return sj(e,u)}else{var k=dj(e),I=k==Fk||k==Dj;if(mj(e))return oj(e,f);if(k==Ak||k==Ik||I&&!o){if(u=g||I?{}:gj(e),!f)return g?cj(e,ij(u,e)):aj(e,rj(u,e))}else{if(!ot[k])return o?e:{};u=hj(e,k,f)}}c||(c=new ej);var M=c.get(e);if(M)return M;c.set(e,u),vj(e)?e.forEach(function(W){u.add(ju(W,t,n,W,e,c))}):bj(e)&&e.forEach(function(W,X){u.set(X,ju(W,t,n,X,e,c))});var N=b?g?lj:uj:g?xj:yj,B=x?void 0:N(e);return tj(B||e,function(W,X){B&&(X=W,W=e[X]),nj(u,X,ju(W,t,n,X,e,c))}),u}Mk.exports=ju});var Lk=F((z4,qk)=>{"use strict";var Qj=Nk(),Jj=1,Xj=4;function Kj(e){return Qj(e,Jj|Xj)}qk.exports=Kj});var Bk=F((Ok,zu)=>{"use strict";(function(e,t){"use strict";typeof define=="function"&&define.amd?define(t):typeof zu=="object"&&zu.exports?zu.exports=t():e.log=t()})(Ok,function(){"use strict";var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],o={},c=null;function u(N,B){var W=N[B];if(typeof W.bind=="function")return W.bind(N);try{return Function.prototype.bind.call(W,N)}catch{return function(){return Function.prototype.apply.apply(W,[N,arguments])}}}function f(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function g(N){return N==="debug"&&(N="log"),typeof console===t?!1:N==="trace"&&n?f:console[N]!==void 0?u(console,N):console.log!==void 0?u(console,"log"):e}function b(){for(var N=this.getLevel(),B=0;B=0&&Y<=W.levels.SILENT)return Y;throw new TypeError("log.setLevel() called with invalid level: "+xe)}W.name=N,W.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},W.methodFactory=B||k,W.getLevel=function(){return P??D??X},W.setLevel=function(xe,Y){return P=Ke(xe),Y!==!1&&ne(P),b.call(W)},W.setDefaultLevel=function(xe){D=Ke(xe),_e()||W.setLevel(xe,!1)},W.resetLevel=function(){P=null,Ue(),b.call(W)},W.enableAll=function(xe){W.setLevel(W.levels.TRACE,xe)},W.disableAll=function(xe){W.setLevel(W.levels.SILENT,xe)},W.rebuild=function(){if(c!==W&&(X=Ke(c.getLevel())),b.call(W),c===W)for(var xe in o)o[xe].rebuild()},X=Ke(c?c.getLevel():"WARN");var Dt=_e();Dt!=null&&(P=Ke(Dt)),b.call(W)}c=new I,c.getLogger=function(B){if(typeof B!="symbol"&&typeof B!="string"||B==="")throw new TypeError("You must supply a name when creating a logger.");var W=o[B];return W||(W=o[B]=new I(B,c.methodFactory)),W};var M=typeof window!==t?window.log:void 0;return c.noConflict=function(){return typeof window!==t&&window.log===c&&(window.log=M),c},c.getLoggers=function(){return o},c.default=c,c})});var Vu=F(($o,Xs)=>{"use strict";(function(){var e,t="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",f=500,g="__lodash_placeholder__",b=1,x=2,k=4,I=1,M=2,N=1,B=2,W=4,X=8,D=16,P=32,U=64,ne=128,_e=256,Ue=512,Ke=30,Dt="...",xe=800,Y=16,H=1,ae=2,ie=3,ke=1/0,ge=9007199254740991,pe=17976931348623157e292,wt=NaN,je=4294967295,ze=je-1,bn=je>>>1,xr=[["ary",ne],["bind",N],["bindKey",B],["curry",X],["curryRight",D],["flip",Ue],["partial",P],["partialRight",U],["rearg",_e]],Vn="[object Arguments]",ur="[object Array]",vi="[object AsyncFunction]",lr="[object Boolean]",dr="[object Date]",$i="[object DOMException]",wr="[object Error]",Pr="[object Function]",Sr="[object GeneratorFunction]",bt="[object Map]",fr="[object Number]",Wi="[object Null]",Ut="[object Object]",yi="[object Promise]",jr="[object Proxy]",hr="[object RegExp]",Pt="[object Set]",sn="[object String]",Cr="[object Symbol]",ji="[object Undefined]",Ht="[object WeakMap]",xi="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",S="[object Int8Array]",V="[object Int16Array]",ee="[object Int32Array]",oe="[object Uint8Array]",$e="[object Uint8ClampedArray]",Be="[object Uint16Array]",Qe="[object Uint32Array]",nt=/\b__p \+= '';/g,Re=/\b(__p \+=) '' \+/g,Je=/(__e\(.*?\)|\b__t\)) \+\n'';/g,qe=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Et=RegExp(qe.source),Zt=RegExp(at.source),zi=/<%-([\s\S]+?)%>/g,va=/<%([\s\S]+?)%>/g,is=/<%=([\s\S]+?)%>/g,ya=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xa=/^\w*$/,Vl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),C=/^\s+/,T=/\s/,v=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,h=/\{\n\/\* \[wrapped with (.+)\] \*/,L=/,? & /,Q=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,Ye=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Fe=/^\[object .+?Constructor\]$/,zr=/^0o[0-7]+$/i,Hi=/^(?:0|[1-9]\d*)$/,wa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pa=/($^)/,VT=/['\n\r\u2028\u2029\\]/g,Sa="\\ud800-\\udfff",GT="\\u0300-\\u036f",QT="\\ufe20-\\ufe2f",JT="\\u20d0-\\u20ff",qp=GT+QT+JT,Lp="\\u2700-\\u27bf",Op="a-z\\xdf-\\xf6\\xf8-\\xff",XT="\\xac\\xb1\\xd7\\xf7",KT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",YT="\\u2000-\\u206f",ZT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Bp="A-Z\\xc0-\\xd6\\xd8-\\xde",Up="\\ufe0e\\ufe0f",$p=XT+KT+YT+ZT,Gl="['\u2019]",e0="["+Sa+"]",Wp="["+$p+"]",Ca="["+qp+"]",jp="\\d+",t0="["+Lp+"]",zp="["+Op+"]",Hp="[^"+Sa+$p+jp+Lp+Op+Bp+"]",Ql="\\ud83c[\\udffb-\\udfff]",n0="(?:"+Ca+"|"+Ql+")",Vp="[^"+Sa+"]",Jl="(?:\\ud83c[\\udde6-\\uddff]){2}",Xl="[\\ud800-\\udbff][\\udc00-\\udfff]",Vi="["+Bp+"]",Gp="\\u200d",Qp="(?:"+zp+"|"+Hp+")",r0="(?:"+Vi+"|"+Hp+")",Jp="(?:"+Gl+"(?:d|ll|m|re|s|t|ve))?",Xp="(?:"+Gl+"(?:D|LL|M|RE|S|T|VE))?",Kp=n0+"?",Yp="["+Up+"]?",i0="(?:"+Gp+"(?:"+[Vp,Jl,Xl].join("|")+")"+Yp+Kp+")*",o0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",s0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Zp=Yp+Kp+i0,a0="(?:"+[t0,Jl,Xl].join("|")+")"+Zp,c0="(?:"+[Vp+Ca+"?",Ca,Jl,Xl,e0].join("|")+")",u0=RegExp(Gl,"g"),l0=RegExp(Ca,"g"),Kl=RegExp(Ql+"(?="+Ql+")|"+c0+Zp,"g"),d0=RegExp([Vi+"?"+zp+"+"+Jp+"(?="+[Wp,Vi,"$"].join("|")+")",r0+"+"+Xp+"(?="+[Wp,Vi+Qp,"$"].join("|")+")",Vi+"?"+Qp+"+"+Jp,Vi+"+"+Xp,s0,o0,jp,a0].join("|"),"g"),f0=RegExp("["+Gp+Sa+qp+Up+"]"),h0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,g0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],p0=-1,ct={};ct[kr]=ct[vn]=ct[S]=ct[V]=ct[ee]=ct[oe]=ct[$e]=ct[Be]=ct[Qe]=!0,ct[Vn]=ct[ur]=ct[Gn]=ct[lr]=ct[_n]=ct[dr]=ct[wr]=ct[Pr]=ct[bt]=ct[fr]=ct[Ut]=ct[hr]=ct[Pt]=ct[sn]=ct[Ht]=!1;var rt={};rt[Vn]=rt[ur]=rt[Gn]=rt[_n]=rt[lr]=rt[dr]=rt[kr]=rt[vn]=rt[S]=rt[V]=rt[ee]=rt[bt]=rt[fr]=rt[Ut]=rt[hr]=rt[Pt]=rt[sn]=rt[Cr]=rt[oe]=rt[$e]=rt[Be]=rt[Qe]=!0,rt[wr]=rt[Pr]=rt[Ht]=!1;var m0={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},b0={"&":"&","<":"<",">":">",'"':""","'":"'"},_0={"&":"&","<":"<",">":">",""":'"',"'":"'"},v0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},y0=parseFloat,x0=parseInt,em=typeof global=="object"&&global&&global.Object===Object&&global,w0=typeof self=="object"&&self&&self.Object===Object&&self,qt=em||w0||Function("return this")(),Yl=typeof $o=="object"&&$o&&!$o.nodeType&&$o,wi=Yl&&typeof Xs=="object"&&Xs&&!Xs.nodeType&&Xs,tm=wi&&wi.exports===Yl,Zl=tm&&em.process,In=function(){try{var E=wi&&wi.require&&wi.require("util").types;return E||Zl&&Zl.binding&&Zl.binding("util")}catch{}}(),nm=In&&In.isArrayBuffer,rm=In&&In.isDate,im=In&&In.isMap,om=In&&In.isRegExp,sm=In&&In.isSet,am=In&&In.isTypedArray;function xn(E,j,$){switch($.length){case 0:return E.call(j);case 1:return E.call(j,$[0]);case 2:return E.call(j,$[0],$[1]);case 3:return E.call(j,$[0],$[1],$[2])}return E.apply(j,$)}function P0(E,j,$,se){for(var ve=-1,He=E==null?0:E.length;++ve-1}function ed(E,j,$){for(var se=-1,ve=E==null?0:E.length;++se-1;);return $}function pm(E,j){for(var $=E.length;$--&&Gi(j,E[$],0)>-1;);return $}function F0(E,j){for(var $=E.length,se=0;$--;)E[$]===j&&++se;return se}var A0=id(m0),M0=id(b0);function N0(E){return"\\"+v0[E]}function q0(E,j){return E==null?e:E[j]}function Qi(E){return f0.test(E)}function L0(E){return h0.test(E)}function O0(E){for(var j,$=[];!(j=E.next()).done;)$.push(j.value);return $}function cd(E){var j=-1,$=Array(E.size);return E.forEach(function(se,ve){$[++j]=[ve,se]}),$}function mm(E,j){return function($){return E(j($))}}function Gr(E,j){for(var $=-1,se=E.length,ve=0,He=[];++$-1}function CD(r,s){var a=this.__data__,l=ja(a,r);return l<0?(++this.size,a.push([r,s])):a[l][1]=s,this}Rr.prototype.clear=xD,Rr.prototype.delete=wD,Rr.prototype.get=PD,Rr.prototype.has=SD,Rr.prototype.set=CD;function Tr(r){var s=-1,a=r==null?0:r.length;for(this.clear();++s=s?r:s)),r}function Nn(r,s,a,l,d,_){var w,R=s&b,A=s&x,G=s&k;if(a&&(w=d?a(r,l,d,_):a(r)),w!==e)return w;if(!_t(r))return r;var J=we(r);if(J){if(w=DE(r),!R)return cn(r,w)}else{var K=Gt(r),re=K==Pr||K==Sr;if(ei(r))return Ym(r,R);if(K==Ut||K==Vn||re&&!d){if(w=A||re?{}:bb(r),!R)return A?_E(r,$D(w,r)):bE(r,Tm(w,r))}else{if(!rt[K])return d?r:{};w=EE(r,K,R)}}_||(_=new Xn);var ce=_.get(r);if(ce)return ce;_.set(r,w),Vb(r)?r.forEach(function(fe){w.add(Nn(fe,s,a,fe,r,_))}):zb(r)&&r.forEach(function(fe,Ae){w.set(Ae,Nn(fe,s,a,Ae,r,_))});var de=G?A?Md:Ad:A?ln:Lt,Ce=J?e:de(r);return Fn(Ce||r,function(fe,Ae){Ce&&(Ae=fe,fe=r[Ae]),ds(w,Ae,Nn(fe,s,a,Ae,r,_))}),w}function WD(r){var s=Lt(r);return function(a){return Dm(a,r,s)}}function Dm(r,s,a){var l=a.length;if(r==null)return!l;for(r=et(r);l--;){var d=a[l],_=s[d],w=r[d];if(w===e&&!(d in r)||!_(w))return!1}return!0}function Em(r,s,a){if(typeof r!="function")throw new An(o);return _s(function(){r.apply(e,a)},s)}function fs(r,s,a,l){var d=-1,_=ka,w=!0,R=r.length,A=[],G=s.length;if(!R)return A;a&&(s=gt(s,wn(a))),l?(_=ed,w=!1):s.length>=n&&(_=os,w=!1,s=new Ci(s));e:for(;++dd?0:d+a),l=l===e||l>d?d:Se(l),l<0&&(l+=d),l=a>l?0:Qb(l);a0&&a(R)?s>1?$t(R,s-1,a,l,d):Vr(d,R):l||(d[d.length]=R)}return d}var pd=ib(),Am=ib(!0);function gr(r,s){return r&&pd(r,s,Lt)}function md(r,s){return r&&Am(r,s,Lt)}function Ha(r,s){return Hr(s,function(a){return Ar(r[a])})}function Ri(r,s){s=Yr(s,r);for(var a=0,l=s.length;r!=null&&as}function HD(r,s){return r!=null&&Xe.call(r,s)}function VD(r,s){return r!=null&&s in et(r)}function GD(r,s,a){return r>=Vt(s,a)&&r=120&&J.length>=120)?new Ci(w&&J):e}J=r[0];var K=-1,re=R[0];e:for(;++K-1;)R!==r&&qa.call(R,A,1),qa.call(r,A,1);return r}function zm(r,s){for(var a=r?s.length:0,l=a-1;a--;){var d=s[a];if(a==l||d!==_){var _=d;Fr(d)?qa.call(r,d,1):kd(r,d)}}return r}function Pd(r,s){return r+Ba(Sm()*(s-r+1))}function sE(r,s,a,l){for(var d=-1,_=Mt(Oa((s-r)/(a||1)),0),w=$(_);_--;)w[l?_:++d]=r,r+=a;return w}function Sd(r,s){var a="";if(!r||s<1||s>ge)return a;do s%2&&(a+=r),s=Ba(s/2),s&&(r+=r);while(s);return a}function Te(r,s){return $d(yb(r,s,dn),r+"")}function aE(r){return Rm(io(r))}function cE(r,s){var a=io(r);return nc(a,ki(s,0,a.length))}function ps(r,s,a,l){if(!_t(r))return r;s=Yr(s,r);for(var d=-1,_=s.length,w=_-1,R=r;R!=null&&++d<_;){var A=mr(s[d]),G=a;if(A==="__proto__"||A==="constructor"||A==="prototype")return r;if(d!=w){var J=R[A];G=l?l(J,A,R):e,G===e&&(G=_t(J)?J:Fr(s[d+1])?[]:{})}ds(R,A,G),R=R[A]}return r}var Hm=Ua?function(r,s){return Ua.set(r,s),r}:dn,uE=La?function(r,s){return La(r,"toString",{configurable:!0,enumerable:!1,value:Kd(s),writable:!0})}:dn;function lE(r){return nc(io(r))}function qn(r,s,a){var l=-1,d=r.length;s<0&&(s=-s>d?0:d+s),a=a>d?d:a,a<0&&(a+=d),d=s>a?0:a-s>>>0,s>>>=0;for(var _=$(d);++l>>1,w=r[_];w!==null&&!Sn(w)&&(a?w<=s:w=n){var G=s?null:wE(r);if(G)return Ta(G);w=!1,d=os,A=new Ci}else A=s?[]:R;e:for(;++l<_;){var J=r[l],K=s?s(J):J;if(J=a||J!==0?J:0,w&&K===K){for(var re=A.length;re--;)if(A[re]===K)continue e;s&&A.push(K),R.push(J)}else d(A,K,a)||(A!==R&&A.push(K),R.push(J))}return R}function kd(r,s){return s=Yr(s,r),r=xb(r,s),r==null||delete r[mr(Ln(s))]}function Qm(r,s,a,l){return ps(r,s,a(Ri(r,s)),l)}function Qa(r,s,a,l){for(var d=r.length,_=l?d:-1;(l?_--:++_=l?r:qn(r,s,a)}var Km=Z0||function(r){return qt.clearTimeout(r)};function Ym(r,s){if(s)return r.slice();var a=r.length,l=vm?vm(a):new r.constructor(a);return r.copy(l),l}function Ed(r){var s=new r.constructor(r.byteLength);return new Ma(s).set(new Ma(r)),s}function hE(r,s){var a=s?Ed(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function gE(r){var s=new r.constructor(r.source,an.exec(r));return s.lastIndex=r.lastIndex,s}function pE(r){return ls?et(ls.call(r)):{}}function Zm(r,s){var a=s?Ed(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function eb(r,s){if(r!==s){var a=r!==e,l=r===null,d=r===r,_=Sn(r),w=s!==e,R=s===null,A=s===s,G=Sn(s);if(!R&&!G&&!_&&r>s||_&&w&&A&&!R&&!G||l&&w&&A||!a&&A||!d)return 1;if(!l&&!_&&!G&&r=R)return A;var G=a[l];return A*(G=="desc"?-1:1)}}return r.index-s.index}function tb(r,s,a,l){for(var d=-1,_=r.length,w=a.length,R=-1,A=s.length,G=Mt(_-w,0),J=$(A+G),K=!l;++R1?a[d-1]:e,w=d>2?a[2]:e;for(_=r.length>3&&typeof _=="function"?(d--,_):e,w&&tn(a[0],a[1],w)&&(_=d<3?e:_,d=1),s=et(s);++l-1?d[_?s[w]:w]:e}}function ab(r){return Ir(function(s){var a=s.length,l=a,d=Mn.prototype.thru;for(r&&s.reverse();l--;){var _=s[l];if(typeof _!="function")throw new An(o);if(d&&!w&&ec(_)=="wrapper")var w=new Mn([],!0)}for(l=w?l:a;++l1&&Le.reverse(),J&&AR))return!1;var G=_.get(r),J=_.get(s);if(G&&J)return G==s&&J==r;var K=-1,re=!0,ce=a&M?new Ci:e;for(_.set(r,s),_.set(s,r);++K1?"& ":"")+s[l],s=s.join(a>2?", ":" "),r.replace(v,`{ -/* [wrapped with `+s+`] */ -`)}function FE(r){return we(r)||Ei(r)||!!(wm&&r&&r[wm])}function Fr(r,s){var a=typeof r;return s=s??ge,!!s&&(a=="number"||a!="symbol"&&Hi.test(r))&&r>-1&&r%1==0&&r0){if(++s>=xe)return arguments[0]}else s=0;return r.apply(e,arguments)}}function nc(r,s){var a=-1,l=r.length,d=l-1;for(s=s===e?l:s;++a1?r[s-1]:e;return a=typeof a=="function"?(r.pop(),a):e,Fb(r,a)});function Ab(r){var s=m(r);return s.__chain__=!0,s}function jI(r,s){return s(r),r}function rc(r,s){return s(r)}var zI=Ir(function(r){var s=r.length,a=s?r[0]:0,l=this.__wrapped__,d=function(_){return gd(_,r)};return s>1||this.__actions__.length||!(l instanceof Me)||!Fr(a)?this.thru(d):(l=l.slice(a,+a+(s?1:0)),l.__actions__.push({func:rc,args:[d],thisArg:e}),new Mn(l,this.__chain__).thru(function(_){return s&&!_.length&&_.push(e),_}))});function HI(){return Ab(this)}function VI(){return new Mn(this.value(),this.__chain__)}function GI(){this.__values__===e&&(this.__values__=Gb(this.value()));var r=this.__index__>=this.__values__.length,s=r?e:this.__values__[this.__index__++];return{done:r,value:s}}function QI(){return this}function JI(r){for(var s,a=this;a instanceof Wa;){var l=kb(a);l.__index__=0,l.__values__=e,s?d.__wrapped__=l:s=l;var d=l;a=a.__wrapped__}return d.__wrapped__=r,s}function XI(){var r=this.__wrapped__;if(r instanceof Me){var s=r;return this.__actions__.length&&(s=new Me(this)),s=s.reverse(),s.__actions__.push({func:rc,args:[Wd],thisArg:e}),new Mn(s,this.__chain__)}return this.thru(Wd)}function KI(){return Jm(this.__wrapped__,this.__actions__)}var YI=Ja(function(r,s,a){Xe.call(r,a)?++r[a]:Dr(r,a,1)});function ZI(r,s,a){var l=we(r)?cm:jD;return a&&tn(r,s,a)&&(s=e),l(r,le(s,3))}function eF(r,s){var a=we(r)?Hr:Fm;return a(r,le(s,3))}var tF=sb(Rb),nF=sb(Tb);function rF(r,s){return $t(ic(r,s),1)}function iF(r,s){return $t(ic(r,s),ke)}function oF(r,s,a){return a=a===e?1:Se(a),$t(ic(r,s),a)}function Mb(r,s){var a=we(r)?Fn:Xr;return a(r,le(s,3))}function Nb(r,s){var a=we(r)?S0:Im;return a(r,le(s,3))}var sF=Ja(function(r,s,a){Xe.call(r,a)?r[a].push(s):Dr(r,a,[s])});function aF(r,s,a,l){r=un(r)?r:io(r),a=a&&!l?Se(a):0;var d=r.length;return a<0&&(a=Mt(d+a,0)),uc(r)?a<=d&&r.indexOf(s,a)>-1:!!d&&Gi(r,s,a)>-1}var cF=Te(function(r,s,a){var l=-1,d=typeof s=="function",_=un(r)?$(r.length):[];return Xr(r,function(w){_[++l]=d?xn(s,w,a):hs(w,s,a)}),_}),uF=Ja(function(r,s,a){Dr(r,a,s)});function ic(r,s){var a=we(r)?gt:Om;return a(r,le(s,3))}function lF(r,s,a,l){return r==null?[]:(we(s)||(s=s==null?[]:[s]),a=l?e:a,we(a)||(a=a==null?[]:[a]),Wm(r,s,a))}var dF=Ja(function(r,s,a){r[a?0:1].push(s)},function(){return[[],[]]});function fF(r,s,a){var l=we(r)?td:fm,d=arguments.length<3;return l(r,le(s,4),a,d,Xr)}function hF(r,s,a){var l=we(r)?C0:fm,d=arguments.length<3;return l(r,le(s,4),a,d,Im)}function gF(r,s){var a=we(r)?Hr:Fm;return a(r,ac(le(s,3)))}function pF(r){var s=we(r)?Rm:aE;return s(r)}function mF(r,s,a){(a?tn(r,s,a):s===e)?s=1:s=Se(s);var l=we(r)?OD:cE;return l(r,s)}function bF(r){var s=we(r)?BD:lE;return s(r)}function _F(r){if(r==null)return 0;if(un(r))return uc(r)?Ji(r):r.length;var s=Gt(r);return s==bt||s==Pt?r.size:yd(r).length}function vF(r,s,a){var l=we(r)?nd:dE;return a&&tn(r,s,a)&&(s=e),l(r,le(s,3))}var yF=Te(function(r,s){if(r==null)return[];var a=s.length;return a>1&&tn(r,s[0],s[1])?s=[]:a>2&&tn(s[0],s[1],s[2])&&(s=[s[0]]),Wm(r,$t(s,1),[])}),oc=eD||function(){return qt.Date.now()};function xF(r,s){if(typeof s!="function")throw new An(o);return r=Se(r),function(){if(--r<1)return s.apply(this,arguments)}}function qb(r,s,a){return s=a?e:s,s=r&&s==null?r.length:s,Er(r,ne,e,e,e,e,s)}function Lb(r,s){var a;if(typeof s!="function")throw new An(o);return r=Se(r),function(){return--r>0&&(a=s.apply(this,arguments)),r<=1&&(s=e),a}}var zd=Te(function(r,s,a){var l=N;if(a.length){var d=Gr(a,no(zd));l|=P}return Er(r,l,s,a,d)}),Ob=Te(function(r,s,a){var l=N|B;if(a.length){var d=Gr(a,no(Ob));l|=P}return Er(s,l,r,a,d)});function Bb(r,s,a){s=a?e:s;var l=Er(r,X,e,e,e,e,e,s);return l.placeholder=Bb.placeholder,l}function Ub(r,s,a){s=a?e:s;var l=Er(r,D,e,e,e,e,e,s);return l.placeholder=Ub.placeholder,l}function $b(r,s,a){var l,d,_,w,R,A,G=0,J=!1,K=!1,re=!0;if(typeof r!="function")throw new An(o);s=On(s)||0,_t(a)&&(J=!!a.leading,K="maxWait"in a,_=K?Mt(On(a.maxWait)||0,s):_,re="trailing"in a?!!a.trailing:re);function ce(Ct){var Yn=l,Nr=d;return l=d=e,G=Ct,w=r.apply(Nr,Yn),w}function de(Ct){return G=Ct,R=_s(Ae,s),J?ce(Ct):w}function Ce(Ct){var Yn=Ct-A,Nr=Ct-G,s_=s-Yn;return K?Vt(s_,_-Nr):s_}function fe(Ct){var Yn=Ct-A,Nr=Ct-G;return A===e||Yn>=s||Yn<0||K&&Nr>=_}function Ae(){var Ct=oc();if(fe(Ct))return Le(Ct);R=_s(Ae,Ce(Ct))}function Le(Ct){return R=e,re&&l?ce(Ct):(l=d=e,w)}function Cn(){R!==e&&Km(R),G=0,l=A=d=R=e}function nn(){return R===e?w:Le(oc())}function kn(){var Ct=oc(),Yn=fe(Ct);if(l=arguments,d=this,A=Ct,Yn){if(R===e)return de(A);if(K)return Km(R),R=_s(Ae,s),ce(A)}return R===e&&(R=_s(Ae,s)),w}return kn.cancel=Cn,kn.flush=nn,kn}var wF=Te(function(r,s){return Em(r,1,s)}),PF=Te(function(r,s,a){return Em(r,On(s)||0,a)});function SF(r){return Er(r,Ue)}function sc(r,s){if(typeof r!="function"||s!=null&&typeof s!="function")throw new An(o);var a=function(){var l=arguments,d=s?s.apply(this,l):l[0],_=a.cache;if(_.has(d))return _.get(d);var w=r.apply(this,l);return a.cache=_.set(d,w)||_,w};return a.cache=new(sc.Cache||Tr),a}sc.Cache=Tr;function ac(r){if(typeof r!="function")throw new An(o);return function(){var s=arguments;switch(s.length){case 0:return!r.call(this);case 1:return!r.call(this,s[0]);case 2:return!r.call(this,s[0],s[1]);case 3:return!r.call(this,s[0],s[1],s[2])}return!r.apply(this,s)}}function CF(r){return Lb(2,r)}var kF=fE(function(r,s){s=s.length==1&&we(s[0])?gt(s[0],wn(le())):gt($t(s,1),wn(le()));var a=s.length;return Te(function(l){for(var d=-1,_=Vt(l.length,a);++d<_;)l[d]=s[d].call(this,l[d]);return xn(r,this,l)})}),Hd=Te(function(r,s){var a=Gr(s,no(Hd));return Er(r,P,e,s,a)}),Wb=Te(function(r,s){var a=Gr(s,no(Wb));return Er(r,U,e,s,a)}),RF=Ir(function(r,s){return Er(r,_e,e,e,e,s)});function TF(r,s){if(typeof r!="function")throw new An(o);return s=s===e?s:Se(s),Te(r,s)}function DF(r,s){if(typeof r!="function")throw new An(o);return s=s==null?0:Mt(Se(s),0),Te(function(a){var l=a[s],d=Zr(a,0,s);return l&&Vr(d,l),xn(r,this,d)})}function EF(r,s,a){var l=!0,d=!0;if(typeof r!="function")throw new An(o);return _t(a)&&(l="leading"in a?!!a.leading:l,d="trailing"in a?!!a.trailing:d),$b(r,s,{leading:l,maxWait:s,trailing:d})}function IF(r){return qb(r,1)}function FF(r,s){return Hd(Dd(s),r)}function AF(){if(!arguments.length)return[];var r=arguments[0];return we(r)?r:[r]}function MF(r){return Nn(r,k)}function NF(r,s){return s=typeof s=="function"?s:e,Nn(r,k,s)}function qF(r){return Nn(r,b|k)}function LF(r,s){return s=typeof s=="function"?s:e,Nn(r,b|k,s)}function OF(r,s){return s==null||Dm(r,s,Lt(s))}function Kn(r,s){return r===s||r!==r&&s!==s}var BF=Za(bd),UF=Za(function(r,s){return r>=s}),Ei=Nm(function(){return arguments}())?Nm:function(r){return yt(r)&&Xe.call(r,"callee")&&!xm.call(r,"callee")},we=$.isArray,$F=nm?wn(nm):JD;function un(r){return r!=null&&cc(r.length)&&!Ar(r)}function St(r){return yt(r)&&un(r)}function WF(r){return r===!0||r===!1||yt(r)&&en(r)==lr}var ei=nD||nf,jF=rm?wn(rm):XD;function zF(r){return yt(r)&&r.nodeType===1&&!vs(r)}function HF(r){if(r==null)return!0;if(un(r)&&(we(r)||typeof r=="string"||typeof r.splice=="function"||ei(r)||ro(r)||Ei(r)))return!r.length;var s=Gt(r);if(s==bt||s==Pt)return!r.size;if(bs(r))return!yd(r).length;for(var a in r)if(Xe.call(r,a))return!1;return!0}function VF(r,s){return gs(r,s)}function GF(r,s,a){a=typeof a=="function"?a:e;var l=a?a(r,s):e;return l===e?gs(r,s,e,a):!!l}function Vd(r){if(!yt(r))return!1;var s=en(r);return s==wr||s==$i||typeof r.message=="string"&&typeof r.name=="string"&&!vs(r)}function QF(r){return typeof r=="number"&&Pm(r)}function Ar(r){if(!_t(r))return!1;var s=en(r);return s==Pr||s==Sr||s==vi||s==jr}function jb(r){return typeof r=="number"&&r==Se(r)}function cc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function _t(r){var s=typeof r;return r!=null&&(s=="object"||s=="function")}function yt(r){return r!=null&&typeof r=="object"}var zb=im?wn(im):YD;function JF(r,s){return r===s||vd(r,s,qd(s))}function XF(r,s,a){return a=typeof a=="function"?a:e,vd(r,s,qd(s),a)}function KF(r){return Hb(r)&&r!=+r}function YF(r){if(NE(r))throw new ve(i);return qm(r)}function ZF(r){return r===null}function eA(r){return r==null}function Hb(r){return typeof r=="number"||yt(r)&&en(r)==fr}function vs(r){if(!yt(r)||en(r)!=Ut)return!1;var s=Na(r);if(s===null)return!0;var a=Xe.call(s,"constructor")&&s.constructor;return typeof a=="function"&&a instanceof a&&Ia.call(a)==X0}var Gd=om?wn(om):ZD;function tA(r){return jb(r)&&r>=-ge&&r<=ge}var Vb=sm?wn(sm):eE;function uc(r){return typeof r=="string"||!we(r)&&yt(r)&&en(r)==sn}function Sn(r){return typeof r=="symbol"||yt(r)&&en(r)==Cr}var ro=am?wn(am):tE;function nA(r){return r===e}function rA(r){return yt(r)&&Gt(r)==Ht}function iA(r){return yt(r)&&en(r)==xi}var oA=Za(xd),sA=Za(function(r,s){return r<=s});function Gb(r){if(!r)return[];if(un(r))return uc(r)?Jn(r):cn(r);if(ss&&r[ss])return O0(r[ss]());var s=Gt(r),a=s==bt?cd:s==Pt?Ta:io;return a(r)}function Mr(r){if(!r)return r===0?r:0;if(r=On(r),r===ke||r===-ke){var s=r<0?-1:1;return s*pe}return r===r?r:0}function Se(r){var s=Mr(r),a=s%1;return s===s?a?s-a:s:0}function Qb(r){return r?ki(Se(r),0,je):0}function On(r){if(typeof r=="number")return r;if(Sn(r))return wt;if(_t(r)){var s=typeof r.valueOf=="function"?r.valueOf():r;r=_t(s)?s+"":s}if(typeof r!="string")return r===0?r:+r;r=hm(r);var a=Qn.test(r);return a||zr.test(r)?x0(r.slice(2),a?2:8):yn.test(r)?wt:+r}function Jb(r){return pr(r,ln(r))}function aA(r){return r?ki(Se(r),-ge,ge):r===0?r:0}function Ge(r){return r==null?"":Pn(r)}var cA=eo(function(r,s){if(bs(s)||un(s)){pr(s,Lt(s),r);return}for(var a in s)Xe.call(s,a)&&ds(r,a,s[a])}),Xb=eo(function(r,s){pr(s,ln(s),r)}),lc=eo(function(r,s,a,l){pr(s,ln(s),r,l)}),uA=eo(function(r,s,a,l){pr(s,Lt(s),r,l)}),lA=Ir(gd);function dA(r,s){var a=Zi(r);return s==null?a:Tm(a,s)}var fA=Te(function(r,s){r=et(r);var a=-1,l=s.length,d=l>2?s[2]:e;for(d&&tn(s[0],s[1],d)&&(l=1);++a1),_}),pr(r,Md(r),a),l&&(a=Nn(a,b|x|k,PE));for(var d=s.length;d--;)kd(a,s[d]);return a});function EA(r,s){return Yb(r,ac(le(s)))}var IA=Ir(function(r,s){return r==null?{}:iE(r,s)});function Yb(r,s){if(r==null)return{};var a=gt(Md(r),function(l){return[l]});return s=le(s),jm(r,a,function(l,d){return s(l,d[0])})}function FA(r,s,a){s=Yr(s,r);var l=-1,d=s.length;for(d||(d=1,r=e);++ls){var l=r;r=s,s=l}if(a||r%1||s%1){var d=Sm();return Vt(r+d*(s-r+y0("1e-"+((d+"").length-1))),s)}return Pd(r,s)}var jA=to(function(r,s,a){return s=s.toLowerCase(),r+(a?t_(s):s)});function t_(r){return Xd(Ge(r).toLowerCase())}function n_(r){return r=Ge(r),r&&r.replace(wa,A0).replace(l0,"")}function zA(r,s,a){r=Ge(r),s=Pn(s);var l=r.length;a=a===e?l:ki(Se(a),0,l);var d=a;return a-=s.length,a>=0&&r.slice(a,d)==s}function HA(r){return r=Ge(r),r&&Zt.test(r)?r.replace(at,M0):r}function VA(r){return r=Ge(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var GA=to(function(r,s,a){return r+(a?"-":"")+s.toLowerCase()}),QA=to(function(r,s,a){return r+(a?" ":"")+s.toLowerCase()}),JA=ob("toLowerCase");function XA(r,s,a){r=Ge(r),s=Se(s);var l=s?Ji(r):0;if(!s||l>=s)return r;var d=(s-l)/2;return Ya(Ba(d),a)+r+Ya(Oa(d),a)}function KA(r,s,a){r=Ge(r),s=Se(s);var l=s?Ji(r):0;return s&&l>>0,a?(r=Ge(r),r&&(typeof s=="string"||s!=null&&!Gd(s))&&(s=Pn(s),!s&&Qi(r))?Zr(Jn(r),0,a):r.split(s,a)):[]}var iM=to(function(r,s,a){return r+(a?" ":"")+Xd(s)});function oM(r,s,a){return r=Ge(r),a=a==null?0:ki(Se(a),0,r.length),s=Pn(s),r.slice(a,a+s.length)==s}function sM(r,s,a){var l=m.templateSettings;a&&tn(r,s,a)&&(s=e),r=Ge(r),s=lc({},s,l,fb);var d=lc({},s.imports,l.imports,fb),_=Lt(d),w=ad(d,_),R,A,G=0,J=s.interpolate||Pa,K="__p += '",re=ud((s.escape||Pa).source+"|"+J.source+"|"+(J===is?Ye:Pa).source+"|"+(s.evaluate||Pa).source+"|$","g"),ce="//# sourceURL="+(Xe.call(s,"sourceURL")?(s.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++p0+"]")+` -`;r.replace(re,function(fe,Ae,Le,Cn,nn,kn){return Le||(Le=Cn),K+=r.slice(G,kn).replace(VT,N0),Ae&&(R=!0,K+=`' + -__e(`+Ae+`) + -'`),nn&&(A=!0,K+=`'; -`+nn+`; -__p += '`),Le&&(K+=`' + -((__t = (`+Le+`)) == null ? '' : __t) + -'`),G=kn+fe.length,fe}),K+=`'; -`;var de=Xe.call(s,"variable")&&s.variable;if(!de)K=`with (obj) { -`+K+` +`,"\r"];var Ca;(function(p){function k(O,G,be,ft){return new Hl(O,G,be,ft)}p.create=k;function R(O){var G=O;return!!(q.defined(G)&&q.string(G.uri)&&(q.undefined(G.languageId)||q.string(G.languageId))&&q.uinteger(G.lineCount)&&q.func(G.getText)&&q.func(G.positionAt)&&q.func(G.offsetAt))}p.is=R;function y(O,G){for(var be=O.getText(),ft=g(G,function(Vr,Yi){var ka=Vr.range.start.line-Yi.range.start.line;return ka===0?Vr.range.start.character-Yi.range.start.character:ka}),Xe=be.length,an=ft.length-1;an>=0;an--){var yn=ft[an],Qn=O.offsetAt(yn.range.start),Ie=O.offsetAt(yn.range.end);if(Ie<=Xe)be=be.substring(0,Qn)+yn.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Xe=Qn}return be}p.applyEdits=y;function g(O,G){if(O.length<=1)return O;var be=O.length/2|0,ft=O.slice(0,be),Xe=O.slice(be);g(ft,G),g(Xe,G);for(var an=0,yn=0,Qn=0;an0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),y=0,g=R.length;if(g===0)return u.create(0,k);for(;yk?g=O:y=O+1}var G=y-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var y=R[k.line],g=k.line+1"u"}p.undefined=y;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Vr,Yi){return k.call(Ie)==="[object Number]"&&Vr<=Ie&&Ie<=Yi}p.numberRange=be;function ft(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ft;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Vr){return Array.isArray(Ie)&&Ie.every(Vr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var wo=Bi(),L_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(L_||(hn.MessageDirection=L_={}));var ph=class{constructor(e){this.method=e}};hn.RegistrationType=ph;var mh=class extends wo.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=mh;var bh=class extends wo.RequestType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolRequestType=bh;var _h=class extends wo.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=_h;var vh=class extends wo.NotificationType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolNotificationType=vh});var $c=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function HA(t){return t===!0||t===!1}It.boolean=HA;function B_(t){return typeof t=="string"||t instanceof String}It.string=B_;function VA(t){return typeof t=="number"||t instanceof Number}It.number=VA;function GA(t){return t instanceof Error}It.error=GA;function QA(t){return typeof t=="function"}It.func=QA;function U_(t){return Array.isArray(t)}It.array=U_;function KA(t){return U_(t)&&t.every(e=>B_(e))}It.stringArray=KA;function JA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=JA;function XA(t){return t!==null&&typeof t=="object"}It.objectLiteral=XA});var j_=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ImplementationRequest=void 0;var $_=pt(),W_;(function(t){t.method="textDocument/implementation",t.messageDirection=$_.MessageDirection.clientToServer,t.type=new $_.ProtocolRequestType(t.method)})(W_||(Wc.ImplementationRequest=W_={}))});var V_=I(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.TypeDefinitionRequest=void 0;var z_=pt(),H_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=z_.MessageDirection.clientToServer,t.type=new z_.ProtocolRequestType(t.method)})(H_||(jc.TypeDefinitionRequest=H_={}))});var K_=I(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.DidChangeWorkspaceFoldersNotification=So.WorkspaceFoldersRequest=void 0;var zc=pt(),G_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(G_||(So.WorkspaceFoldersRequest=G_={}));var Q_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolNotificationType(t.method)})(Q_||(So.DidChangeWorkspaceFoldersNotification=Q_={}))});var Y_=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.ConfigurationRequest=void 0;var J_=pt(),X_;(function(t){t.method="workspace/configuration",t.messageDirection=J_.MessageDirection.serverToClient,t.type=new J_.ProtocolRequestType(t.method)})(X_||(Hc.ConfigurationRequest=X_={}))});var tv=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.ColorPresentationRequest=xo.DocumentColorRequest=void 0;var Vc=pt(),Z_;(function(t){t.method="textDocument/documentColor",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(Z_||(xo.DocumentColorRequest=Z_={}));var ev;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(ev||(xo.ColorPresentationRequest=ev={}))});var iv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.FoldingRangeRefreshRequest=Po.FoldingRangeRequest=void 0;var Gc=pt(),nv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolRequestType(t.method)})(nv||(Po.FoldingRangeRequest=nv={}));var rv;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType0(t.method)})(rv||(Po.FoldingRangeRefreshRequest=rv={}))});var av=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DeclarationRequest=void 0;var ov=pt(),sv;(function(t){t.method="textDocument/declaration",t.messageDirection=ov.MessageDirection.clientToServer,t.type=new ov.ProtocolRequestType(t.method)})(sv||(Qc.DeclarationRequest=sv={}))});var lv=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.SelectionRangeRequest=void 0;var cv=pt(),uv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=cv.MessageDirection.clientToServer,t.type=new cv.ProtocolRequestType(t.method)})(uv||(Kc.SelectionRangeRequest=uv={}))});var gv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.WorkDoneProgressCancelNotification=ai.WorkDoneProgressCreateRequest=ai.WorkDoneProgress=void 0;var YA=Bi(),Jc=pt(),dv;(function(t){t.type=new YA.ProgressType;function e(n){return n===t.type}t.is=e})(dv||(ai.WorkDoneProgress=dv={}));var fv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType(t.method)})(fv||(ai.WorkDoneProgressCreateRequest=fv={}));var hv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolNotificationType(t.method)})(hv||(ai.WorkDoneProgressCancelNotification=hv={}))});var _v=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.CallHierarchyOutgoingCallsRequest=ci.CallHierarchyIncomingCallsRequest=ci.CallHierarchyPrepareRequest=void 0;var Co=pt(),pv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(pv||(ci.CallHierarchyPrepareRequest=pv={}));var mv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(mv||(ci.CallHierarchyIncomingCallsRequest=mv={}));var bv;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(bv||(ci.CallHierarchyOutgoingCallsRequest=bv={}))});var Pv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Or=pt(),vv;(function(t){t.Relative="relative"})(vv||(gn.TokenFormat=vv={}));var Is;(function(t){t.method="textDocument/semanticTokens",t.type=new Or.RegistrationType(t.method)})(Is||(gn.SemanticTokensRegistrationType=Is={}));var yv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(yv||(gn.SemanticTokensRequest=yv={}));var wv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(wv||(gn.SemanticTokensDeltaRequest=wv={}));var Sv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(Sv||(gn.SemanticTokensRangeRequest=Sv={}));var xv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=Or.MessageDirection.serverToClient,t.type=new Or.ProtocolRequestType0(t.method)})(xv||(gn.SemanticTokensRefreshRequest=xv={}))});var Tv=I(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.ShowDocumentRequest=void 0;var Cv=pt(),kv;(function(t){t.method="window/showDocument",t.messageDirection=Cv.MessageDirection.serverToClient,t.type=new Cv.ProtocolRequestType(t.method)})(kv||(Xc.ShowDocumentRequest=kv={}))});var Fv=I(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.LinkedEditingRangeRequest=void 0;var Rv=pt(),Dv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Rv.MessageDirection.clientToServer,t.type=new Rv.ProtocolRequestType(t.method)})(Dv||(Yc.LinkedEditingRangeRequest=Dv={}))});var Lv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Ev;(function(t){t.file="file",t.folder="folder"})(Ev||(Qt.FileOperationPatternKind=Ev={}));var Iv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Iv||(Qt.WillCreateFilesRequest=Iv={}));var Mv;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Mv||(Qt.DidCreateFilesNotification=Mv={}));var Av;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Av||(Qt.WillRenameFilesRequest=Av={}));var Nv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Nv||(Qt.DidRenameFilesNotification=Nv={}));var qv;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(qv||(Qt.DidDeleteFilesNotification=qv={}));var Ov;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Ov||(Qt.WillDeleteFilesRequest=Ov={}))});var jv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.MonikerRequest=ui.MonikerKind=ui.UniquenessLevel=void 0;var Bv=pt(),Uv;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(Uv||(ui.UniquenessLevel=Uv={}));var $v;(function(t){t.$import="import",t.$export="export",t.local="local"})($v||(ui.MonikerKind=$v={}));var Wv;(function(t){t.method="textDocument/moniker",t.messageDirection=Bv.MessageDirection.clientToServer,t.type=new Bv.ProtocolRequestType(t.method)})(Wv||(ui.MonikerRequest=Wv={}))});var Gv=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.TypeHierarchySubtypesRequest=li.TypeHierarchySupertypesRequest=li.TypeHierarchyPrepareRequest=void 0;var ko=pt(),zv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(zv||(li.TypeHierarchyPrepareRequest=zv={}));var Hv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Hv||(li.TypeHierarchySupertypesRequest=Hv={}));var Vv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Vv||(li.TypeHierarchySubtypesRequest=Vv={}))});var Jv=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.InlineValueRefreshRequest=To.InlineValueRequest=void 0;var Zc=pt(),Qv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Zc.MessageDirection.clientToServer,t.type=new Zc.ProtocolRequestType(t.method)})(Qv||(To.InlineValueRequest=Qv={}));var Kv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Zc.MessageDirection.serverToClient,t.type=new Zc.ProtocolRequestType0(t.method)})(Kv||(To.InlineValueRefreshRequest=Kv={}))});var ey=I(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.InlayHintRefreshRequest=di.InlayHintResolveRequest=di.InlayHintRequest=void 0;var Ro=pt(),Xv;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(Xv||(di.InlayHintRequest=Xv={}));var Yv;(function(t){t.method="inlayHint/resolve",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(Yv||(di.InlayHintResolveRequest=Yv={}));var Zv;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Ro.MessageDirection.serverToClient,t.type=new Ro.ProtocolRequestType0(t.method)})(Zv||(di.InlayHintRefreshRequest=Zv={}))});var ay=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var sy=Bi(),ZA=$c(),Do=pt(),ty;(function(t){function e(n){let i=n;return i&&ZA.boolean(i.retriggerRequest)}t.is=e})(ty||(Un.DiagnosticServerCancellationData=ty={}));var ny;(function(t){t.Full="full",t.Unchanged="unchanged"})(ny||(Un.DocumentDiagnosticReportKind=ny={}));var ry;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(ry||(Un.DocumentDiagnosticRequest=ry={}));var iy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(iy||(Un.WorkspaceDiagnosticRequest=iy={}));var oy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(oy||(Un.DiagnosticRefreshRequest=oy={}))});var gy=I(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.DidCloseNotebookDocumentNotification=yt.DidSaveNotebookDocumentNotification=yt.DidChangeNotebookDocumentNotification=yt.NotebookCellArrayChange=yt.DidOpenNotebookDocumentNotification=yt.NotebookDocumentSyncRegistrationType=yt.NotebookDocument=yt.NotebookCell=yt.ExecutionSummary=yt.NotebookCellKind=void 0;var Ms=Uc(),er=$c(),_r=pt(),yh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(yh||(yt.NotebookCellKind=yh={}));var wh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Ms.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(wh||(yt.ExecutionSummary=wh={}));var eu;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&yh.is(u.kind)&&Ms.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.InlineCompletionRequest=void 0;var py=pt(),my;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=py.MessageDirection.clientToServer,t.type=new py.ProtocolRequestType(t.method)})(my||(tu.InlineCompletionRequest=my={}))});var Fw=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),_y=Uc(),Lt=$c(),eN=j_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return eN.ImplementationRequest}});var tN=V_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return tN.TypeDefinitionRequest}});var kw=K_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return kw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return kw.DidChangeWorkspaceFoldersNotification}});var nN=Y_();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return nN.ConfigurationRequest}});var Tw=tv();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Tw.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Tw.ColorPresentationRequest}});var Rw=iv();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRefreshRequest}});var rN=av();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return rN.DeclarationRequest}});var iN=lv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return iN.SelectionRangeRequest}});var kh=gv();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return kh.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return kh.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return kh.WorkDoneProgressCancelNotification}});var Th=_v();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var Eo=Pv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Eo.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Eo.SemanticTokensRegistrationType}});var oN=Tv();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return oN.ShowDocumentRequest}});var sN=Fv();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return sN.LinkedEditingRangeRequest}});var Ui=Lv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return Ui.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Ui.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Ui.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Ui.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Ui.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Ui.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Ui.WillDeleteFilesRequest}});var Rh=jv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Rh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Rh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Rh.MonikerRequest}});var Dh=Gv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySupertypesRequest}});var Dw=Jv();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Dw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Dw.InlineValueRefreshRequest}});var Fh=ey();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Fh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Fh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Fh.InlayHintRefreshRequest}});var As=ay();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return As.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return As.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return As.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return As.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return As.DiagnosticRefreshRequest}});var vr=gy();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return vr.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return vr.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return vr.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return vr.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return vr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return vr.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidCloseNotebookDocumentNotification}});var aN=by();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return aN.InlineCompletionRequest}});var Sh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(Sh||(w.TextDocumentFilter=Sh={}));var xh;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(xh||(w.NotebookDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||xh.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ph||(w.NotebookCellTextDocumentFilter=Ph={}));var Ch;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!Sh.is(i)&&!Ph.is(i))return!1;return!0}t.is=e})(Ch||(w.DocumentSelector=Ch={}));var vy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(vy||(w.RegistrationRequest=vy={}));var yy;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(yy||(w.UnregistrationRequest=yy={}));var wy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(wy||(w.ResourceOperationKind=wy={}));var Sy;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(Sy||(w.FailureHandlingKind=Sy={}));var xy;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(xy||(w.PositionEncodingKind=xy={}));var Py;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Py||(w.StaticRegistrationOptions=Py={}));var Cy;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Ch.is(i.documentSelector))}t.is=e})(Cy||(w.TextDocumentRegistrationOptions=Cy={}));var ky;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(ky||(w.WorkDoneProgressOptions=ky={}));var Ty;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ty||(w.InitializeRequest=Ty={}));var Ry;(function(t){t.unknownProtocolVersion=1})(Ry||(w.InitializeErrorCodes=Ry={}));var Dy;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Dy||(w.InitializedNotification=Dy={}));var Fy;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Fy||(w.ShutdownRequest=Fy={}));var Ey;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Ey||(w.ExitNotification=Ey={}));var Iy;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Iy||(w.DidChangeConfigurationNotification=Iy={}));var My;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(My||(w.MessageType=My={}));var Ay;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ay||(w.ShowMessageNotification=Ay={}));var Ny;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Ny||(w.ShowMessageRequest=Ny={}));var qy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(qy||(w.LogMessageNotification=qy={}));var Oy;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Oy||(w.TelemetryEventNotification=Oy={}));var Ly;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Ly||(w.TextDocumentSyncKind=Ly={}));var By;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(By||(w.DidOpenTextDocumentNotification=By={}));var Uy;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(Uy||(w.TextDocumentContentChangeEvent=Uy={}));var $y;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})($y||(w.DidChangeTextDocumentNotification=$y={}));var Wy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Wy||(w.DidCloseTextDocumentNotification=Wy={}));var jy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidSaveTextDocumentNotification=jy={}));var zy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(zy||(w.TextDocumentSaveReason=zy={}));var Hy;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Hy||(w.WillSaveTextDocumentNotification=Hy={}));var Vy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Vy||(w.WillSaveTextDocumentWaitUntilRequest=Vy={}));var Gy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Gy||(w.DidChangeWatchedFilesNotification=Gy={}));var Qy;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Qy||(w.FileChangeType=Qy={}));var Ky;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(_y.URI.is(i.baseUri)||_y.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Ky||(w.RelativePattern=Ky={}));var Jy;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Jy||(w.WatchKind=Jy={}));var Xy;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Xy||(w.PublishDiagnosticsNotification=Xy={}));var Yy;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Yy||(w.CompletionTriggerKind=Yy={}));var Zy;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Zy||(w.CompletionRequest=Zy={}));var ew;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ew||(w.CompletionResolveRequest=ew={}));var tw;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(tw||(w.HoverRequest=tw={}));var nw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(nw||(w.SignatureHelpTriggerKind=nw={}));var rw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(rw||(w.SignatureHelpRequest=rw={}));var iw;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.DefinitionRequest=iw={}));var ow;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.ReferencesRequest=ow={}));var sw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(sw||(w.DocumentHighlightRequest=sw={}));var aw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.DocumentSymbolRequest=aw={}));var cw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.CodeActionRequest=cw={}));var uw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.CodeActionResolveRequest=uw={}));var lw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.WorkspaceSymbolRequest=lw={}));var dw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.WorkspaceSymbolResolveRequest=dw={}));var fw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.CodeLensRequest=fw={}));var hw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeLensResolveRequest=hw={}));var gw;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(gw||(w.CodeLensRefreshRequest=gw={}));var pw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(pw||(w.DocumentLinkRequest=pw={}));var mw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.DocumentLinkResolveRequest=mw={}));var bw;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.DocumentFormattingRequest=bw={}));var _w;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(_w||(w.DocumentRangeFormattingRequest=_w={}));var vw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentRangesFormattingRequest=vw={}));var yw;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentOnTypeFormattingRequest=yw={}));var ww;(function(t){t.Identifier=1})(ww||(w.PrepareSupportDefaultBehavior=ww={}));var Sw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Sw||(w.RenameRequest=Sw={}));var xw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.PrepareRenameRequest=xw={}));var Pw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.ExecuteCommandRequest=Pw={}));var Cw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(Cw||(w.ApplyWorkspaceEditRequest=Cw={}))});var Iw=I(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.createProtocolConnection=void 0;var Ew=Bi();function cN(t,e,n,i){return Ew.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Ew.createMessageConnection)(t,e,n,i)}nu.createProtocolConnection=cN});var Aw=I(pn=>{"use strict";var uN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),ru=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&uN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;ru(Bi(),pn);ru(Uc(),pn);ru(pt(),pn);ru(Fw(),pn);var lN=Iw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return lN.createProtocolConnection}});var Mw;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Mw||(pn.LSPErrorCodes=Mw={}))});var kt=I(yr=>{"use strict";var dN=yr&&yr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Nw=yr&&yr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&dN(e,t,n)};Object.defineProperty(yr,"__esModule",{value:!0});yr.createProtocolConnection=void 0;var fN=gh();Nw(gh(),yr);Nw(Aw(),yr);function hN(t,e,n,i){return(0,fN.createMessageConnection)(t,e,n,i)}yr.createProtocolConnection=hN});var Eh=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var Ns=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},qs=class t extends Ns{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};qs._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];qs._timeHighBits=["8","9","a","b"];$n.empty=new Ns("00000000-0000-0000-0000-000000000000");function qw(){return new qs}$n.v4=qw;var gN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ow(t){return gN.test(t)}$n.isUUID=Ow;function pN(t){if(!Ow(t))throw new Error("invalid uuid");return new Ns(t)}$n.parse=pN;function mN(){return qw().asHex()}$n.generateUuid=mN});var Lw=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.attachPartialResult=hi.ProgressFeature=hi.attachWorkDone=void 0;var fi=kt(),bN=Eh(),$i=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,{kind:"end"})}};$i.Instances=new Map;var iu=class extends $i{constructor(e,n){super(e,n),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Os=class{constructor(){}begin(){}report(){}done(){}},ou=class extends Os{constructor(){super(),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function _N(t,e){if(e===void 0||e.workDoneToken===void 0)return new Os;let n=e.workDoneToken;return delete e.workDoneToken,new $i(t,n)}hi.attachWorkDone=_N;var vN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(fi.WorkDoneProgressCancelNotification.type,n=>{let i=$i.Instances.get(n.token);(i instanceof iu||i instanceof ou)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new Os:new $i(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,bN.generateUuid)();return this.connection.sendRequest(fi.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new iu(this.connection,e))}else return Promise.resolve(new ou)}};hi.ProgressFeature=vN;var Ih;(function(t){t.type=new fi.ProgressType})(Ih||(Ih={}));var Mh=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Ih.type,this._token,e)}};function yN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Mh(t,n)}hi.attachPartialResult=yN});var Bw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.ConfigurationFeature=void 0;var wN=kt(),SN=bc(),xN=t=>class extends t{getConfiguration(e){return e?SN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(wN.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};su.ConfigurationFeature=xN});var Uw=I(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.WorkspaceFoldersFeature=void 0;var au=kt(),PN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new au.Emitter,this.connection.onNotification(au.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(au.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(au.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};cu.WorkspaceFoldersFeature=PN});var $w=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.CallHierarchyFeature=void 0;var Ah=kt(),CN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Ah.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Ah.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Ah.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};uu.CallHierarchyFeature=CN});var qh=I(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.SemanticTokensBuilder=gi.SemanticTokensDiff=gi.SemanticTokensFeature=void 0;var lu=kt(),kN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(lu.SemanticTokensRefreshRequest.type),on:e=>{let n=lu.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=lu.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=lu.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gi.SemanticTokensFeature=kN;var du=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new du(this._prevData,this._data).computeDiff()}:this.build()}};gi.SemanticTokensBuilder=Nh});var Ww=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.ShowDocumentFeature=void 0;var TN=kt(),RN=t=>class extends t{showDocument(e){return this.connection.sendRequest(TN.ShowDocumentRequest.type,e)}};fu.ShowDocumentFeature=RN});var jw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.FileOperationsFeature=void 0;var Io=kt(),DN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Io.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Io.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Io.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Io.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Io.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Io.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};hu.FileOperationsFeature=DN});var zw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.LinkedEditingRangeFeature=void 0;var FN=kt(),EN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(FN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};gu.LinkedEditingRangeFeature=EN});var Hw=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.TypeHierarchyFeature=void 0;var Oh=kt(),IN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};pu.TypeHierarchyFeature=IN});var Gw=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.InlineValueFeature=void 0;var Vw=kt(),MN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Vw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Vw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};mu.InlineValueFeature=MN});var Kw=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.FoldingRangeFeature=void 0;var Qw=kt(),AN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Qw.FoldingRangeRefreshRequest.type),on:e=>{let n=Qw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};bu.FoldingRangeFeature=AN});var Jw=I(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.InlayHintFeature=void 0;var Lh=kt(),NN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Lh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Lh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Lh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};_u.InlayHintFeature=NN});var Xw=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.DiagnosticFeature=void 0;var Ls=kt(),qN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Ls.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Ls.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Ls.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.WorkspaceDiagnosticRequest.partialResult,n)))}}};vu.DiagnosticFeature=qN});var Uh=I(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.TextDocuments=void 0;var Wi=kt(),Bh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new Wi.Emitter,this._onDidOpen=new Wi.Emitter,this._onDidClose=new Wi.Emitter,this._onDidSave=new Wi.Emitter,this._onWillSave=new Wi.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=Wi.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),Wi.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};yu.TextDocuments=Bh});var Wh=I(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.NotebookDocuments=Mo.NotebookSyncFeature=void 0;var Wn=kt(),Yw=Uh(),ON=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Mo.NotebookSyncFeature=ON;var wu=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};wu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $h=class{constructor(e){e instanceof Yw.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new Yw.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new wu,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],v=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),v.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of v)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Mo.NotebookDocuments=$h});var Zw=I(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.MonikerFeature=void 0;var LN=kt(),BN=t=>class extends t{get moniker(){return{on:e=>{let n=LN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Su.MonikerFeature=BN});var Qh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=bc(),zh=Eh(),we=Lw(),UN=Bw(),$N=Uw(),WN=$w(),jN=qh(),zN=Ww(),HN=jw(),VN=zw(),GN=Hw(),QN=Gw(),KN=Kw(),JN=Jw(),XN=Xw(),YN=Wh(),ZN=Zw();function jh(t){if(t!==null)return t}var Hh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Hh;var xu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Vh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}},eS=(0,zN.ShowDocumentFeature)((0,we.ProgressFeature)(Vh)),tS;(function(t){function e(){return new Pu}t.create=e})(tS||($e.BulkRegistration=tS={}));var Pu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=zh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},nS;(function(t){function e(){return new Bs(void 0,[])}t.create=e})(nS||($e.BulkUnregistration=nS={}));var Bs=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Cu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof Pu?this.registerMany(e):e instanceof Bs?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=zh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=zh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Bs(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},rS=(0,HN.FileOperationsFeature)((0,$N.WorkspaceFoldersFeature)((0,UN.ConfigurationFeature)(Gh))),ku=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Tu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Ru=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Ru;var iS=(0,KN.FoldingRangeFeature)((0,ZN.MonikerFeature)((0,XN.DiagnosticFeature)((0,JN.InlayHintFeature)((0,QN.InlineValueFeature)((0,GN.TypeHierarchyFeature)((0,VN.LinkedEditingRangeFeature)((0,jN.SemanticTokensFeature)((0,WN.CallHierarchyFeature)(Ru))))))))),Du=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Du;var oS=(0,YN.NotebookSyncFeature)(Du);function sS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=sS;function aS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=aS;function cS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=cS;function uS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=uS;function lS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=hS;function eq(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,sS),tracer:n(t.tracer,e.tracer,cS),telemetry:n(t.telemetry,e.telemetry,aS),client:n(t.client,e.client,uS),window:n(t.window,e.window,lS),workspace:n(t.workspace,e.workspace,dS),languages:n(t.languages,e.languages,fS),notebooks:n(t.notebooks,e.notebooks,hS)}}$e.combineFeatures=eq;function tq(t,e,n){let i=n&&n.console?new(n.console(xu)):new xu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(ku)):new ku,u=n&&n.telemetry?new(n.telemetry(Tu)):new Tu,d=n&&n.client?new(n.client(Cu)):new Cu,f=n&&n.window?new(n.window(eS)):new eS,m=n&&n.workspace?new(n.workspace(rS)):new rS,v=n&&n.languages?new(n.languages(iS)):new iS,x=n&&n.notebooks?new(n.notebooks(oS)):new oS,D=[i,c,u,d,f,m,v,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return v},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=tq});var gS=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var nq=require("url"),tr=require("path"),Kh=require("fs"),Zh=require("child_process");function rq(t){let e=nq.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=rq;function Jh(){return process.platform==="win32"}function Fu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(v=>m[v]=f[v]),e&&Kh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let v=(0,Zh.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(v.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}v.on("error",D=>{d(D)}),v.on("message",D=>{D.c==="r"&&(v.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};v.send(x)}catch(v){d(v)}})}mn.resolve=Fu;function Xh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Jh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,Zh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Jh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Xh;function iq(t){let e="yarn",n={encoding:"utf8"};Jh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,Zh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=iq;var Yh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Kh.existsSync(__filename.toUpperCase())||!Kh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Yh||(mn.FileSystem=Yh={}));function oq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Fu(e,n,n,i).then(s=>Yh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Fu(e,Xh(i),t,i))):Fu(e,Xh(i),t,i)}mn.resolveModulePath=oq});var eg=I((Iz,pS)=>{"use strict";pS.exports=kt()});var mS=I(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.InlineCompletionFeature=void 0;var sq=kt(),aq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(sq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Eu.InlineCompletionFeature=aq});var vS=I(Kt=>{"use strict";var cq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),_S=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var uq=qh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return uq.SemanticTokensBuilder}});var lq=mS();_S(kt(),Kt);var dq=Uh();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return dq.TextDocuments}});var fq=Wh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return fq.NotebookDocuments}});_S(Qh(),Kt);var bS;(function(t){t.all={__brand:"features",languages:lq.InlineCompletionFeature}})(bS||(Kt.ProposedFeatures=bS={}))});var ng=I(zn=>{"use strict";var hq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),xS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&hq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var yS=require("node:util"),tg=bc(),gq=Qh(),Us=gS(),ji=eg();xS(eg(),zn);xS(vS(),zn);var wS;(function(t){t.uriToFilePath=Us.uriToFilePath,t.resolveGlobalNodePath=Us.resolveGlobalNodePath,t.resolveGlobalYarnPath=Us.resolveGlobalYarnPath,t.resolve=Us.resolve,t.resolveModulePath=Us.resolveModulePath})(wS||(zn.Files=wS={}));var SS;function Iu(){if(SS!==void 0)try{SS.end()}catch{}}var Ao=!1,PS;function pq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(PS=setInterval(()=>{try{process.kill(i,0)}catch{Iu(),process.exit(Ao?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;tg.number(e)&&PS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(Ao?0:1)}},3e3)},get shutdownReceived(){return Ao},set shutdownReceived(t){Ao=t},exit:t=>{Iu(),process.exit(t)}};function bq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),ji.ConnectionStrategy.is(t)||ji.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),_q(c,u,d,s)}zn.createConnection=bq;function _q(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,v=process.argv.slice(2);for(let x=0;x{Iu(),process.exit(Ao?0:1)}),f.on("close",()=>{Iu(),process.exit(Ao?0:1)})}let d=f=>{let m=(0,ji.createProtocolConnection)(t,e,f,n);return s&&vq(f),m};return(0,gq.createConnection)(d,mq,i)}function vq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,yS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,yS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} +${c}`)},console.warn=function(...s){t.warn(e(s))}}});var kS=I((Oz,CS)=>{"use strict";CS.exports=ng()});var IS=I((Yz,ES)=>{"use strict";function Cq(){this.__data__=[],this.size=0}ES.exports=Cq});var sg=I((Zz,MS)=>{"use strict";function kq(t,e){return t===e||t!==t&&e!==e}MS.exports=kq});var Ws=I((eH,AS)=>{"use strict";var Tq=sg();function Rq(t,e){for(var n=t.length;n--;)if(Tq(t[n][0],e))return n;return-1}AS.exports=Rq});var qS=I((tH,NS)=>{"use strict";var Dq=Ws(),Fq=Array.prototype,Eq=Fq.splice;function Iq(t){var e=this.__data__,n=Dq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Eq.call(e,n,1),--this.size,!0}NS.exports=Iq});var LS=I((nH,OS)=>{"use strict";var Mq=Ws();function Aq(t){var e=this.__data__,n=Mq(e,t);return n<0?void 0:e[n][1]}OS.exports=Aq});var US=I((rH,BS)=>{"use strict";var Nq=Ws();function qq(t){return Nq(this.__data__,t)>-1}BS.exports=qq});var WS=I((iH,$S)=>{"use strict";var Oq=Ws();function Lq(t,e){var n=this.__data__,i=Oq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}$S.exports=Lq});var js=I((oH,jS)=>{"use strict";var Bq=IS(),Uq=qS(),$q=LS(),Wq=US(),jq=WS();function qo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var zq=js();function Hq(){this.__data__=new zq,this.size=0}zS.exports=Hq});var GS=I((aH,VS)=>{"use strict";function Vq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}VS.exports=Vq});var KS=I((cH,QS)=>{"use strict";function Gq(t){return this.__data__.get(t)}QS.exports=Gq});var XS=I((uH,JS)=>{"use strict";function Qq(t){return this.__data__.has(t)}JS.exports=Qq});var ag=I((lH,YS)=>{"use strict";var Kq=typeof global=="object"&&global&&global.Object===Object&&global;YS.exports=Kq});var nr=I((dH,ZS)=>{"use strict";var Jq=ag(),Xq=typeof self=="object"&&self&&self.Object===Object&&self,Yq=Jq||Xq||Function("return this")();ZS.exports=Yq});var Ou=I((fH,ex)=>{"use strict";var Zq=nr(),e1=Zq.Symbol;ex.exports=e1});var ix=I((hH,rx)=>{"use strict";var tx=Ou(),nx=Object.prototype,t1=nx.hasOwnProperty,n1=nx.toString,zs=tx?tx.toStringTag:void 0;function r1(t){var e=t1.call(t,zs),n=t[zs];try{t[zs]=void 0;var i=!0}catch{}var s=n1.call(t);return i&&(e?t[zs]=n:delete t[zs]),s}rx.exports=r1});var sx=I((gH,ox)=>{"use strict";var i1=Object.prototype,o1=i1.toString;function s1(t){return o1.call(t)}ox.exports=s1});var Hs=I((pH,ux)=>{"use strict";var ax=Ou(),a1=ix(),c1=sx(),u1="[object Null]",l1="[object Undefined]",cx=ax?ax.toStringTag:void 0;function d1(t){return t==null?t===void 0?l1:u1:cx&&cx in Object(t)?a1(t):c1(t)}ux.exports=d1});var Oo=I((mH,lx)=>{"use strict";function f1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}lx.exports=f1});var cg=I((bH,dx)=>{"use strict";var h1=Hs(),g1=Oo(),p1="[object AsyncFunction]",m1="[object Function]",b1="[object GeneratorFunction]",_1="[object Proxy]";function v1(t){if(!g1(t))return!1;var e=h1(t);return e==m1||e==b1||e==p1||e==_1}dx.exports=v1});var hx=I((_H,fx)=>{"use strict";var y1=nr(),w1=y1["__core-js_shared__"];fx.exports=w1});var mx=I((vH,px)=>{"use strict";var ug=hx(),gx=function(){var t=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function S1(t){return!!gx&&gx in t}px.exports=S1});var lg=I((yH,bx)=>{"use strict";var x1=Function.prototype,P1=x1.toString;function C1(t){if(t!=null){try{return P1.call(t)}catch{}try{return t+""}catch{}}return""}bx.exports=C1});var vx=I((wH,_x)=>{"use strict";var k1=cg(),T1=mx(),R1=Oo(),D1=lg(),F1=/[\\^$.*+?()[\]{}|]/g,E1=/^\[object .+?Constructor\]$/,I1=Function.prototype,M1=Object.prototype,A1=I1.toString,N1=M1.hasOwnProperty,q1=RegExp("^"+A1.call(N1).replace(F1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O1(t){if(!R1(t)||T1(t))return!1;var e=k1(t)?q1:E1;return e.test(D1(t))}_x.exports=O1});var wx=I((SH,yx)=>{"use strict";function L1(t,e){return t?.[e]}yx.exports=L1});var pi=I((xH,Sx)=>{"use strict";var B1=vx(),U1=wx();function $1(t,e){var n=U1(t,e);return B1(n)?n:void 0}Sx.exports=$1});var Lu=I((PH,xx)=>{"use strict";var W1=pi(),j1=nr(),z1=W1(j1,"Map");xx.exports=z1});var Vs=I((CH,Px)=>{"use strict";var H1=pi(),V1=H1(Object,"create");Px.exports=V1});var Tx=I((kH,kx)=>{"use strict";var Cx=Vs();function G1(){this.__data__=Cx?Cx(null):{},this.size=0}kx.exports=G1});var Dx=I((TH,Rx)=>{"use strict";function Q1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Rx.exports=Q1});var Ex=I((RH,Fx)=>{"use strict";var K1=Vs(),J1="__lodash_hash_undefined__",X1=Object.prototype,Y1=X1.hasOwnProperty;function Z1(t){var e=this.__data__;if(K1){var n=e[t];return n===J1?void 0:n}return Y1.call(e,t)?e[t]:void 0}Fx.exports=Z1});var Mx=I((DH,Ix)=>{"use strict";var eO=Vs(),tO=Object.prototype,nO=tO.hasOwnProperty;function rO(t){var e=this.__data__;return eO?e[t]!==void 0:nO.call(e,t)}Ix.exports=rO});var Nx=I((FH,Ax)=>{"use strict";var iO=Vs(),oO="__lodash_hash_undefined__";function sO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=iO&&e===void 0?oO:e,this}Ax.exports=sO});var Ox=I((EH,qx)=>{"use strict";var aO=Tx(),cO=Dx(),uO=Ex(),lO=Mx(),dO=Nx();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Lx=Ox(),fO=js(),hO=Lu();function gO(){this.size=0,this.__data__={hash:new Lx,map:new(hO||fO),string:new Lx}}Bx.exports=gO});var Wx=I((MH,$x)=>{"use strict";function pO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}$x.exports=pO});var Gs=I((AH,jx)=>{"use strict";var mO=Wx();function bO(t,e){var n=t.__data__;return mO(e)?n[typeof e=="string"?"string":"hash"]:n.map}jx.exports=bO});var Hx=I((NH,zx)=>{"use strict";var _O=Gs();function vO(t){var e=_O(this,t).delete(t);return this.size-=e?1:0,e}zx.exports=vO});var Gx=I((qH,Vx)=>{"use strict";var yO=Gs();function wO(t){return yO(this,t).get(t)}Vx.exports=wO});var Kx=I((OH,Qx)=>{"use strict";var SO=Gs();function xO(t){return SO(this,t).has(t)}Qx.exports=xO});var Xx=I((LH,Jx)=>{"use strict";var PO=Gs();function CO(t,e){var n=PO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}Jx.exports=CO});var Zx=I((BH,Yx)=>{"use strict";var kO=Ux(),TO=Hx(),RO=Gx(),DO=Kx(),FO=Xx();function Bo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var EO=js(),IO=Lu(),MO=Zx(),AO=200;function NO(t,e){var n=this.__data__;if(n instanceof EO){var i=n.__data__;if(!IO||i.length{"use strict";var qO=js(),OO=HS(),LO=GS(),BO=KS(),UO=XS(),$O=tP();function Uo(t){var e=this.__data__=new qO(t);this.size=e.size}Uo.prototype.clear=OO;Uo.prototype.delete=LO;Uo.prototype.get=BO;Uo.prototype.has=UO;Uo.prototype.set=$O;nP.exports=Uo});var oP=I((WH,iP)=>{"use strict";function WO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var jO=pi(),zO=function(){try{var t=jO(Object,"defineProperty");return t({},"",{}),t}catch{}}();sP.exports=zO});var dg=I((zH,uP)=>{"use strict";var cP=aP();function HO(t,e,n){e=="__proto__"&&cP?cP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}uP.exports=HO});var fg=I((HH,lP)=>{"use strict";var VO=dg(),GO=sg(),QO=Object.prototype,KO=QO.hasOwnProperty;function JO(t,e,n){var i=t[e];(!(KO.call(t,e)&&GO(i,n))||n===void 0&&!(e in t))&&VO(t,e,n)}lP.exports=JO});var Qs=I((VH,dP)=>{"use strict";var XO=fg(),YO=dg();function ZO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function eL(t,e){for(var n=-1,i=Array(t);++n{"use strict";function tL(t){return t!=null&&typeof t=="object"}gP.exports=tL});var mP=I((KH,pP)=>{"use strict";var nL=Hs(),rL=$o(),iL="[object Arguments]";function oL(t){return rL(t)&&nL(t)==iL}pP.exports=oL});var yP=I((JH,vP)=>{"use strict";var bP=mP(),sL=$o(),_P=Object.prototype,aL=_P.hasOwnProperty,cL=_P.propertyIsEnumerable,uL=bP(function(){return arguments}())?bP:function(t){return sL(t)&&aL.call(t,"callee")&&!cL.call(t,"callee")};vP.exports=uL});var Bu=I((XH,wP)=>{"use strict";var lL=Array.isArray;wP.exports=lL});var xP=I((YH,SP)=>{"use strict";function dL(){return!1}SP.exports=dL});var hg=I((Ks,Wo)=>{"use strict";var fL=nr(),hL=xP(),kP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,PP=kP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,gL=PP&&PP.exports===kP,CP=gL?fL.Buffer:void 0,pL=CP?CP.isBuffer:void 0,mL=pL||hL;Wo.exports=mL});var RP=I((ZH,TP)=>{"use strict";var bL=9007199254740991,_L=/^(?:0|[1-9]\d*)$/;function vL(t,e){var n=typeof t;return e=e??bL,!!e&&(n=="number"||n!="symbol"&&_L.test(t))&&t>-1&&t%1==0&&t{"use strict";var yL=9007199254740991;function wL(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=yL}DP.exports=wL});var EP=I((tV,FP)=>{"use strict";var SL=Hs(),xL=gg(),PL=$o(),CL="[object Arguments]",kL="[object Array]",TL="[object Boolean]",RL="[object Date]",DL="[object Error]",FL="[object Function]",EL="[object Map]",IL="[object Number]",ML="[object Object]",AL="[object RegExp]",NL="[object Set]",qL="[object String]",OL="[object WeakMap]",LL="[object ArrayBuffer]",BL="[object DataView]",UL="[object Float32Array]",$L="[object Float64Array]",WL="[object Int8Array]",jL="[object Int16Array]",zL="[object Int32Array]",HL="[object Uint8Array]",VL="[object Uint8ClampedArray]",GL="[object Uint16Array]",QL="[object Uint32Array]",lt={};lt[UL]=lt[$L]=lt[WL]=lt[jL]=lt[zL]=lt[HL]=lt[VL]=lt[GL]=lt[QL]=!0;lt[CL]=lt[kL]=lt[LL]=lt[TL]=lt[BL]=lt[RL]=lt[DL]=lt[FL]=lt[EL]=lt[IL]=lt[ML]=lt[AL]=lt[NL]=lt[qL]=lt[OL]=!1;function KL(t){return PL(t)&&xL(t.length)&&!!lt[SL(t)]}FP.exports=KL});var Uu=I((nV,IP)=>{"use strict";function JL(t){return function(e){return t(e)}}IP.exports=JL});var $u=I((Js,jo)=>{"use strict";var XL=ag(),MP=typeof Js=="object"&&Js&&!Js.nodeType&&Js,Xs=MP&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,YL=Xs&&Xs.exports===MP,pg=YL&&XL.process,ZL=function(){try{var t=Xs&&Xs.require&&Xs.require("util").types;return t||pg&&pg.binding&&pg.binding("util")}catch{}}();jo.exports=ZL});var OP=I((rV,qP)=>{"use strict";var eB=EP(),tB=Uu(),AP=$u(),NP=AP&&AP.isTypedArray,nB=NP?tB(NP):eB;qP.exports=nB});var mg=I((iV,LP)=>{"use strict";var rB=hP(),iB=yP(),oB=Bu(),sB=hg(),aB=RP(),cB=OP(),uB=Object.prototype,lB=uB.hasOwnProperty;function dB(t,e){var n=oB(t),i=!n&&iB(t),s=!n&&!i&&sB(t),c=!n&&!i&&!s&&cB(t),u=n||i||s||c,d=u?rB(t.length,String):[],f=d.length;for(var m in t)(e||lB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||aB(m,f)))&&d.push(m);return d}LP.exports=dB});var Wu=I((oV,BP)=>{"use strict";var fB=Object.prototype;function hB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||fB;return t===n}BP.exports=hB});var bg=I((sV,UP)=>{"use strict";function gB(t,e){return function(n){return t(e(n))}}UP.exports=gB});var WP=I((aV,$P)=>{"use strict";var pB=bg(),mB=pB(Object.keys,Object);$P.exports=mB});var zP=I((cV,jP)=>{"use strict";var bB=Wu(),_B=WP(),vB=Object.prototype,yB=vB.hasOwnProperty;function wB(t){if(!bB(t))return _B(t);var e=[];for(var n in Object(t))yB.call(t,n)&&n!="constructor"&&e.push(n);return e}jP.exports=wB});var _g=I((uV,HP)=>{"use strict";var SB=cg(),xB=gg();function PB(t){return t!=null&&xB(t.length)&&!SB(t)}HP.exports=PB});var ju=I((lV,VP)=>{"use strict";var CB=mg(),kB=zP(),TB=_g();function RB(t){return TB(t)?CB(t):kB(t)}VP.exports=RB});var QP=I((dV,GP)=>{"use strict";var DB=Qs(),FB=ju();function EB(t,e){return t&&DB(e,FB(e),t)}GP.exports=EB});var JP=I((fV,KP)=>{"use strict";function IB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}KP.exports=IB});var YP=I((hV,XP)=>{"use strict";var MB=Oo(),AB=Wu(),NB=JP(),qB=Object.prototype,OB=qB.hasOwnProperty;function LB(t){if(!MB(t))return NB(t);var e=AB(t),n=[];for(var i in t)i=="constructor"&&(e||!OB.call(t,i))||n.push(i);return n}XP.exports=LB});var zu=I((gV,ZP)=>{"use strict";var BB=mg(),UB=YP(),$B=_g();function WB(t){return $B(t)?BB(t,!0):UB(t)}ZP.exports=WB});var tC=I((pV,eC)=>{"use strict";var jB=Qs(),zB=zu();function HB(t,e){return t&&jB(e,zB(e),t)}eC.exports=HB});var sC=I((Ys,zo)=>{"use strict";var VB=nr(),oC=typeof Ys=="object"&&Ys&&!Ys.nodeType&&Ys,nC=oC&&typeof zo=="object"&&zo&&!zo.nodeType&&zo,GB=nC&&nC.exports===oC,rC=GB?VB.Buffer:void 0,iC=rC?rC.allocUnsafe:void 0;function QB(t,e){if(e)return t.slice();var n=t.length,i=iC?iC(n):new t.constructor(n);return t.copy(i),i}zo.exports=QB});var cC=I((mV,aC)=>{"use strict";function KB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function JB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function XB(){return[]}dC.exports=XB});var Hu=I((vV,hC)=>{"use strict";var YB=lC(),ZB=vg(),eU=Object.prototype,tU=eU.propertyIsEnumerable,fC=Object.getOwnPropertySymbols,nU=fC?function(t){return t==null?[]:(t=Object(t),YB(fC(t),function(e){return tU.call(t,e)}))}:ZB;hC.exports=nU});var pC=I((yV,gC)=>{"use strict";var rU=Qs(),iU=Hu();function oU(t,e){return rU(t,iU(t),e)}gC.exports=oU});var yg=I((wV,mC)=>{"use strict";function sU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var aU=bg(),cU=aU(Object.getPrototypeOf,Object);bC.exports=cU});var Sg=I((xV,_C)=>{"use strict";var uU=yg(),lU=wg(),dU=Hu(),fU=vg(),hU=Object.getOwnPropertySymbols,gU=hU?function(t){for(var e=[];t;)uU(e,dU(t)),t=lU(t);return e}:fU;_C.exports=gU});var yC=I((PV,vC)=>{"use strict";var pU=Qs(),mU=Sg();function bU(t,e){return pU(t,mU(t),e)}vC.exports=bU});var xg=I((CV,wC)=>{"use strict";var _U=yg(),vU=Bu();function yU(t,e,n){var i=e(t);return vU(t)?i:_U(i,n(t))}wC.exports=yU});var xC=I((kV,SC)=>{"use strict";var wU=xg(),SU=Hu(),xU=ju();function PU(t){return wU(t,xU,SU)}SC.exports=PU});var CC=I((TV,PC)=>{"use strict";var CU=xg(),kU=Sg(),TU=zu();function RU(t){return CU(t,TU,kU)}PC.exports=RU});var TC=I((RV,kC)=>{"use strict";var DU=pi(),FU=nr(),EU=DU(FU,"DataView");kC.exports=EU});var DC=I((DV,RC)=>{"use strict";var IU=pi(),MU=nr(),AU=IU(MU,"Promise");RC.exports=AU});var EC=I((FV,FC)=>{"use strict";var NU=pi(),qU=nr(),OU=NU(qU,"Set");FC.exports=OU});var MC=I((EV,IC)=>{"use strict";var LU=pi(),BU=nr(),UU=LU(BU,"WeakMap");IC.exports=UU});var Vu=I((IV,UC)=>{"use strict";var Pg=TC(),Cg=Lu(),kg=DC(),Tg=EC(),Rg=MC(),BC=Hs(),Ho=lg(),AC="[object Map]",$U="[object Object]",NC="[object Promise]",qC="[object Set]",OC="[object WeakMap]",LC="[object DataView]",WU=Ho(Pg),jU=Ho(Cg),zU=Ho(kg),HU=Ho(Tg),VU=Ho(Rg),zi=BC;(Pg&&zi(new Pg(new ArrayBuffer(1)))!=LC||Cg&&zi(new Cg)!=AC||kg&&zi(kg.resolve())!=NC||Tg&&zi(new Tg)!=qC||Rg&&zi(new Rg)!=OC)&&(zi=function(t){var e=BC(t),n=e==$U?t.constructor:void 0,i=n?Ho(n):"";if(i)switch(i){case WU:return LC;case jU:return AC;case zU:return NC;case HU:return qC;case VU:return OC}return e});UC.exports=zi});var WC=I((MV,$C)=>{"use strict";var GU=Object.prototype,QU=GU.hasOwnProperty;function KU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&QU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}$C.exports=KU});var zC=I((AV,jC)=>{"use strict";var JU=nr(),XU=JU.Uint8Array;jC.exports=XU});var Gu=I((NV,VC)=>{"use strict";var HC=zC();function YU(t){var e=new t.constructor(t.byteLength);return new HC(e).set(new HC(t)),e}VC.exports=YU});var QC=I((qV,GC)=>{"use strict";var ZU=Gu();function e$(t,e){var n=e?ZU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}GC.exports=e$});var JC=I((OV,KC)=>{"use strict";var t$=/\w*$/;function n$(t){var e=new t.constructor(t.source,t$.exec(t));return e.lastIndex=t.lastIndex,e}KC.exports=n$});var tk=I((LV,ek)=>{"use strict";var XC=Ou(),YC=XC?XC.prototype:void 0,ZC=YC?YC.valueOf:void 0;function r$(t){return ZC?Object(ZC.call(t)):{}}ek.exports=r$});var rk=I((BV,nk)=>{"use strict";var i$=Gu();function o$(t,e){var n=e?i$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}nk.exports=o$});var ok=I((UV,ik)=>{"use strict";var s$=Gu(),a$=QC(),c$=JC(),u$=tk(),l$=rk(),d$="[object Boolean]",f$="[object Date]",h$="[object Map]",g$="[object Number]",p$="[object RegExp]",m$="[object Set]",b$="[object String]",_$="[object Symbol]",v$="[object ArrayBuffer]",y$="[object DataView]",w$="[object Float32Array]",S$="[object Float64Array]",x$="[object Int8Array]",P$="[object Int16Array]",C$="[object Int32Array]",k$="[object Uint8Array]",T$="[object Uint8ClampedArray]",R$="[object Uint16Array]",D$="[object Uint32Array]";function F$(t,e,n){var i=t.constructor;switch(e){case v$:return s$(t);case d$:case f$:return new i(+t);case y$:return a$(t,n);case w$:case S$:case x$:case P$:case C$:case k$:case T$:case R$:case D$:return l$(t,n);case h$:return new i;case g$:case b$:return new i(t);case p$:return c$(t);case m$:return new i;case _$:return u$(t)}}ik.exports=F$});var ck=I(($V,ak)=>{"use strict";var E$=Oo(),sk=Object.create,I$=function(){function t(){}return function(e){if(!E$(e))return{};if(sk)return sk(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();ak.exports=I$});var lk=I((WV,uk)=>{"use strict";var M$=ck(),A$=wg(),N$=Wu();function q$(t){return typeof t.constructor=="function"&&!N$(t)?M$(A$(t)):{}}uk.exports=q$});var fk=I((jV,dk)=>{"use strict";var O$=Vu(),L$=$o(),B$="[object Map]";function U$(t){return L$(t)&&O$(t)==B$}dk.exports=U$});var mk=I((zV,pk)=>{"use strict";var $$=fk(),W$=Uu(),hk=$u(),gk=hk&&hk.isMap,j$=gk?W$(gk):$$;pk.exports=j$});var _k=I((HV,bk)=>{"use strict";var z$=Vu(),H$=$o(),V$="[object Set]";function G$(t){return H$(t)&&z$(t)==V$}bk.exports=G$});var Sk=I((VV,wk)=>{"use strict";var Q$=_k(),K$=Uu(),vk=$u(),yk=vk&&vk.isSet,J$=yk?K$(yk):Q$;wk.exports=J$});var Tk=I((GV,kk)=>{"use strict";var X$=rP(),Y$=oP(),Z$=fg(),eW=QP(),tW=tC(),nW=sC(),rW=cC(),iW=pC(),oW=yC(),sW=xC(),aW=CC(),cW=Vu(),uW=WC(),lW=ok(),dW=lk(),fW=Bu(),hW=hg(),gW=mk(),pW=Oo(),mW=Sk(),bW=ju(),_W=zu(),vW=1,yW=2,wW=4,xk="[object Arguments]",SW="[object Array]",xW="[object Boolean]",PW="[object Date]",CW="[object Error]",Pk="[object Function]",kW="[object GeneratorFunction]",TW="[object Map]",RW="[object Number]",Ck="[object Object]",DW="[object RegExp]",FW="[object Set]",EW="[object String]",IW="[object Symbol]",MW="[object WeakMap]",AW="[object ArrayBuffer]",NW="[object DataView]",qW="[object Float32Array]",OW="[object Float64Array]",LW="[object Int8Array]",BW="[object Int16Array]",UW="[object Int32Array]",$W="[object Uint8Array]",WW="[object Uint8ClampedArray]",jW="[object Uint16Array]",zW="[object Uint32Array]",it={};it[xk]=it[SW]=it[AW]=it[NW]=it[xW]=it[PW]=it[qW]=it[OW]=it[LW]=it[BW]=it[UW]=it[TW]=it[RW]=it[Ck]=it[DW]=it[FW]=it[EW]=it[IW]=it[$W]=it[WW]=it[jW]=it[zW]=!0;it[CW]=it[Pk]=it[MW]=!1;function Qu(t,e,n,i,s,c){var u,d=e&vW,f=e&yW,m=e&wW;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!pW(t))return t;var v=fW(t);if(v){if(u=uW(t),!d)return rW(t,u)}else{var x=cW(t),D=x==Pk||x==kW;if(hW(t))return nW(t,d);if(x==Ck||x==xk||D&&!s){if(u=f||D?{}:dW(t),!d)return f?oW(t,tW(u,t)):iW(t,eW(u,t))}else{if(!it[x])return s?t:{};u=lW(t,x,d)}}c||(c=new X$);var N=c.get(t);if(N)return N;c.set(t,u),mW(t)?t.forEach(function(B){u.add(Qu(B,e,n,B,t,c))}):gW(t)&&t.forEach(function(B,K){u.set(K,Qu(B,e,n,K,t,c))});var A=m?f?aW:sW:f?_W:bW,L=v?void 0:A(t);return Y$(L||t,function(B,K){L&&(K=B,B=t[K]),Z$(u,K,Qu(B,e,n,K,t,c))}),u}kk.exports=Qu});var Dk=I((QV,Rk)=>{"use strict";var HW=Tk(),VW=1,GW=4;function QW(t){return HW(t,VW|GW)}Rk.exports=QW});var Ek=I((Fk,Ku)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Ku=="object"&&Ku.exports?Ku.exports=e():t.log=e()})(Fk,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+Se)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(Se,X){return P=Je(Se),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(Se){F=Je(Se),ve()||B.setLevel(Se,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(Se){B.setLevel(B.levels.TRACE,Se)},B.disableAll=function(Se){B.setLevel(B.levels.SILENT,Se)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var Se in s)s[Se].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Go=I((Vo,na)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,v=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",Se=800,X=16,z=1,se=2,re=3,Te=1/0,ge=9007199254740991,me=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,wr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",lr="[object Array]",xi="[object AsyncFunction]",dr="[object Boolean]",fr="[object Date]",Qi="[object DOMException]",Sr="[object Error]",xr="[object Function]",Pr="[object GeneratorFunction]",mt="[object Map]",hr="[object Number]",Ki="[object Null]",Bt="[object Object]",Pi="[object Promise]",Hr="[object Proxy]",gr="[object RegExp]",xt="[object Set]",sn="[object String]",Cr="[object Symbol]",Ji="[object Undefined]",jt="[object WeakMap]",Ci="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",tt=/\b__p \+= '';/g,Re=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(at.source),Xi=/<%-([\s\S]+?)%>/g,xa=/<%([\s\S]+?)%>/g,ls=/<%=([\s\S]+?)%>/g,Pa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ca=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ft=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Vr=/^0o[0-7]+$/i,Yi=/^(?:0|[1-9]\d*)$/,ka=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ta=/($^)/,jT=/['\n\r\u2028\u2029\\]/g,Ra="\\ud800-\\udfff",zT="\\u0300-\\u036f",HT="\\ufe20-\\ufe2f",VT="\\u20d0-\\u20ff",Dp=zT+HT+VT,Fp="\\u2700-\\u27bf",Ep="a-z\\xdf-\\xf6\\xf8-\\xff",GT="\\xac\\xb1\\xd7\\xf7",QT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",KT="\\u2000-\\u206f",JT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ip="A-Z\\xc0-\\xd6\\xd8-\\xde",Mp="\\ufe0e\\ufe0f",Ap=GT+QT+KT+JT,Vl="['\u2019]",XT="["+Ra+"]",Np="["+Ap+"]",Da="["+Dp+"]",qp="\\d+",YT="["+Fp+"]",Op="["+Ep+"]",Lp="[^"+Ra+Ap+qp+Fp+Ep+Ip+"]",Gl="\\ud83c[\\udffb-\\udfff]",ZT="(?:"+Da+"|"+Gl+")",Bp="[^"+Ra+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",Zi="["+Ip+"]",Up="\\u200d",$p="(?:"+Op+"|"+Lp+")",eR="(?:"+Zi+"|"+Lp+")",Wp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",jp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",zp=ZT+"?",Hp="["+Mp+"]?",tR="(?:"+Up+"(?:"+[Bp,Ql,Kl].join("|")+")"+Hp+zp+")*",nR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Vp=Hp+zp+tR,iR="(?:"+[YT,Ql,Kl].join("|")+")"+Vp,oR="(?:"+[Bp+Da+"?",Da,Ql,Kl,XT].join("|")+")",sR=RegExp(Vl,"g"),aR=RegExp(Da,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+oR+Vp,"g"),cR=RegExp([Zi+"?"+Op+"+"+Wp+"(?="+[Np,Zi,"$"].join("|")+")",eR+"+"+jp+"(?="+[Np,Zi+$p,"$"].join("|")+")",Zi+"?"+$p+"+"+Wp,Zi+"+"+jp,rR,nR,qp,iR].join("|"),"g"),uR=RegExp("["+Up+Ra+Dp+Mp+"]"),lR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,dR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],fR=-1,ct={};ct[kr]=ct[vn]=ct[C]=ct[H]=ct[Z]=ct[ie]=ct[Ue]=ct[Le]=ct[Ge]=!0,ct[Vn]=ct[lr]=ct[Gn]=ct[dr]=ct[_n]=ct[fr]=ct[Sr]=ct[xr]=ct[mt]=ct[hr]=ct[Bt]=ct[gr]=ct[xt]=ct[sn]=ct[jt]=!1;var nt={};nt[Vn]=nt[lr]=nt[Gn]=nt[_n]=nt[dr]=nt[fr]=nt[kr]=nt[vn]=nt[C]=nt[H]=nt[Z]=nt[mt]=nt[hr]=nt[Bt]=nt[gr]=nt[xt]=nt[sn]=nt[Cr]=nt[ie]=nt[Ue]=nt[Le]=nt[Ge]=!0,nt[Sr]=nt[xr]=nt[jt]=!1;var hR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},gR={"&":"&","<":"<",">":">",'"':""","'":"'"},pR={"&":"&","<":"<",">":">",""":'"',"'":"'"},mR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},bR=parseFloat,_R=parseInt,Gp=typeof global=="object"&&global&&global.Object===Object&&global,vR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Gp||vR||Function("return this")(),Xl=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,ki=Xl&&typeof na=="object"&&na&&!na.nodeType&&na,Qp=ki&&ki.exports===Xl,Yl=Qp&&Gp.process,En=function(){try{var E=ki&&ki.require&&ki.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Kp=En&&En.isArrayBuffer,Jp=En&&En.isDate,Xp=En&&En.isMap,Yp=En&&En.isRegExp,Zp=En&&En.isSet,em=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function yR(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function cm(E,W){for(var $=E.length;$--&&eo(W,E[$],0)>-1;);return $}function DR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var FR=rd(hR),ER=rd(gR);function IR(E){return"\\"+mR[E]}function MR(E,W){return E==null?t:E[W]}function to(E){return uR.test(E)}function AR(E){return lR.test(E)}function NR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function um(E,W){return function($){return E(W($))}}function Kr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function SD(r,o){var a=this.__data__,l=Ga(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}Tr.prototype.clear=_D,Tr.prototype.delete=vD,Tr.prototype.get=yD,Tr.prototype.has=wD,Tr.prototype.set=SD;function Rr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&v,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=xe(r);if(Q){if(S=k0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==xr||J==Pr;if(ni(r))return Hm(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:lb(r),!T)return M?p0(r,LD(S,r)):g0(r,wm(S,r))}else{if(!nt[J])return h?r:{};S=T0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),Bb(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):Ob(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,ke=Q?t:de(r);return In(ke||r,function(fe,Me){ke&&(Me=fe,fe=r[Me]),bs(S,Me,Nn(fe,o,a,Me,r,_))}),S}function BD(r){var o=Ot(r);return function(a){return Sm(a,r,o)}}function Sm(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function xm(r,o,a){if(typeof r!="function")throw new Mn(s);return Ps(function(){r.apply(t,a)},o)}function _s(r,o,a,l){var h=-1,_=Fa,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=ht(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ds,S=!1,o=new Di(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:Ce(l),l<0&&(l+=h),l=a>l?0:$b(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Qr(h,T):l||(h[h.length]=T)}return h}var gd=Xm(),km=Xm(!0);function pr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&km(r,o,Ot)}function Ka(r,o){return Gr(o,function(a){return Mr(r[a])})}function Ei(r,o){o=ei(o,r);for(var a=0,l=o.length;r!=null&&ao}function WD(r,o){return r!=null&&Ke.call(r,o)}function jD(r,o){return r!=null&&o in Ye(r)}function zD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Di(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&Ua.call(T,M,1),Ua.call(r,M,1);return r}function Om(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Ir(h)?Ua.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+ja(bm()*(o-r+1))}function r0(r,o,a,l){for(var h=-1,_=At(Wa((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=ja(o/2),o&&(r+=r);while(o);return a}function De(r,o){return Ud(hb(r,o,dn),r+"")}function i0(r){return ym(fo(r))}function o0(r,o){var a=fo(r);return sc(a,Fi(o,0,a.length))}function ws(r,o,a,l){if(!bt(r))return r;o=ei(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=br(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Ir(o[h+1])?[]:{})}bs(T,M,V),T=T[M]}return r}var Lm=za?function(r,o){return za.set(r,o),r}:dn,s0=$a?function(r,o){return $a(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function a0(r){return sc(fo(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:v0(r);if(V)return Ia(V);S=!1,h=ds,M=new Di}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=ei(o,r),r=gb(r,o),r==null||delete r[br(On(o))]}function $m(r,o,a,l){return ws(r,o,a(Ei(r,o)),l)}function Ya(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var zm=JR||function(r){return qt.clearTimeout(r)};function Hm(r,o){if(o)return r.slice();var a=r.length,l=fm?fm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new La(o).set(new La(r)),o}function l0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function d0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function f0(r){return ms?Ye(ms.call(r)):{}}function Vm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Gm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Qm(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function eb(r){return Er(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&ic(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Di:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(y,`{ +/* [wrapped with `+o+`] */ +`)}function D0(r){return xe(r)||Ai(r)||!!(pm&&r&&r[pm])}function Ir(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Yi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=Se)return arguments[0]}else o=0;return r.apply(t,arguments)}}function sc(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,Cb(r,a)});function kb(r){var o=b(r);return o.__chain__=!0,o}function UF(r,o){return o(r),r}function ac(r,o){return o(r)}var $F=Er(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Ir(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:ac,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function WF(){return kb(this)}function jF(){return new An(this.value(),this.__chain__)}function zF(){this.__values__===t&&(this.__values__=Ub(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function HF(){return this}function VF(r){for(var o,a=this;a instanceof Va;){var l=vb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function GF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:ac,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function QF(){return Wm(this.__wrapped__,this.__actions__)}var KF=Za(function(r,o,a){Ke.call(r,a)?++r[a]:Dr(r,a,1)});function JF(r,o,a){var l=xe(r)?tm:UD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function XF(r,o){var a=xe(r)?Gr:Cm;return a(r,le(o,3))}var YF=Zm(yb),ZF=Zm(wb);function eE(r,o){return Ut(cc(r,o),1)}function tE(r,o){return Ut(cc(r,o),Te)}function nE(r,o,a){return a=a===t?1:Ce(a),Ut(cc(r,o),a)}function Tb(r,o){var a=xe(r)?In:Yr;return a(r,le(o,3))}function Rb(r,o){var a=xe(r)?wR:Pm;return a(r,le(o,3))}var rE=Za(function(r,o,a){Ke.call(r,a)?r[a].push(o):Dr(r,a,[o])});function iE(r,o,a,l){r=un(r)?r:fo(r),a=a&&!l?Ce(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),hc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&eo(r,o,a)>-1}var oE=De(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Yr(r,function(S){_[++l]=h?wn(o,S,a):vs(S,o,a)}),_}),sE=Za(function(r,o,a){Dr(r,a,o)});function cc(r,o){var a=xe(r)?ht:Em;return a(r,le(o,3))}function aE(r,o,a,l){return r==null?[]:(xe(o)||(o=o==null?[]:[o]),a=l?t:a,xe(a)||(a=a==null?[]:[a]),Nm(r,o,a))}var cE=Za(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function uE(r,o,a){var l=xe(r)?ed:om,h=arguments.length<3;return l(r,le(o,4),a,h,Yr)}function lE(r,o,a){var l=xe(r)?SR:om,h=arguments.length<3;return l(r,le(o,4),a,h,Pm)}function dE(r,o){var a=xe(r)?Gr:Cm;return a(r,dc(le(o,3)))}function fE(r){var o=xe(r)?ym:i0;return o(r)}function hE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=Ce(o);var l=xe(r)?ND:o0;return l(r,o)}function gE(r){var o=xe(r)?qD:a0;return o(r)}function pE(r){if(r==null)return 0;if(un(r))return hc(r)?no(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function mE(r,o,a){var l=xe(r)?td:c0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var bE=De(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),Nm(r,Ut(o,1),[])}),uc=XR||function(){return qt.Date.now()};function _E(r,o){if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){if(--r<1)return o.apply(this,arguments)}}function Db(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Fr(r,te,t,t,t,t,o)}function Fb(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=De(function(r,o,a){var l=A;if(a.length){var h=Kr(a,uo(jd));l|=P}return Fr(r,l,o,a,h)}),Eb=De(function(r,o,a){var l=A|L;if(a.length){var h=Kr(a,uo(Eb));l|=P}return Fr(o,l,r,a,h)});function Ib(r,o,a){o=a?t:o;var l=Fr(r,K,t,t,t,t,t,o);return l.placeholder=Ib.placeholder,l}function Mb(r,o,a){o=a?t:o;var l=Fr(r,F,t,t,t,t,t,o);return l.placeholder=Mb.placeholder,l}function Ab(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Nr=h;return l=h=t,V=Ct,S=r.apply(Nr,Yn),S}function de(Ct){return V=Ct,T=Ps(Me,o),Q?ae(Ct):S}function ke(Ct){var Yn=Ct-M,Nr=Ct-V,Zb=o-Yn;return J?zt(Zb,_-Nr):Zb}function fe(Ct){var Yn=Ct-M,Nr=Ct-V;return M===t||Yn>=o||Yn<0||J&&Nr>=_}function Me(){var Ct=uc();if(fe(Ct))return qe(Ct);T=Ps(Me,ke(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&zm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(uc())}function kn(){var Ct=uc(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return zm(T),T=Ps(Me,o),ae(M)}return T===t&&(T=Ps(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var vE=De(function(r,o){return xm(r,1,o)}),yE=De(function(r,o,a){return xm(r,Ln(o)||0,a)});function wE(r){return Fr(r,Be)}function lc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(lc.Cache||Rr),a}lc.Cache=Rr;function dc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function SE(r){return Fb(2,r)}var xE=u0(function(r,o){o=o.length==1&&xe(o[0])?ht(o[0],Sn(le())):ht(Ut(o,1),Sn(le()));var a=o.length;return De(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=De(function(r,o){var a=Kr(o,uo(zd));return Fr(r,P,t,o,a)}),Nb=De(function(r,o){var a=Kr(o,uo(Nb));return Fr(r,U,t,o,a)}),PE=Er(function(r,o){return Fr(r,ve,t,t,t,o)});function CE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:Ce(o),De(r,o)}function kE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(Ce(o),0),De(function(a){var l=a[o],h=ti(a,0,o);return l&&Qr(h,l),wn(r,this,h)})}function TE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Ab(r,o,{leading:l,maxWait:o,trailing:h})}function RE(r){return Db(r,1)}function DE(r,o){return zd(Rd(o),r)}function FE(){if(!arguments.length)return[];var r=arguments[0];return xe(r)?r:[r]}function EE(r){return Nn(r,x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function ME(r){return Nn(r,m|x)}function AE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function NE(r,o){return o==null||Sm(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var qE=rc(md),OE=rc(function(r,o){return r>=o}),Ai=Rm(function(){return arguments}())?Rm:function(r){return vt(r)&&Ke.call(r,"callee")&&!gm.call(r,"callee")},xe=$.isArray,LE=Kp?Sn(Kp):VD;function un(r){return r!=null&&fc(r.length)&&!Mr(r)}function Pt(r){return vt(r)&&un(r)}function BE(r){return r===!0||r===!1||vt(r)&&Zt(r)==dr}var ni=ZR||tf,UE=Jp?Sn(Jp):GD;function $E(r){return vt(r)&&r.nodeType===1&&!Cs(r)}function WE(r){if(r==null)return!0;if(un(r)&&(xe(r)||typeof r=="string"||typeof r.splice=="function"||ni(r)||lo(r)||Ai(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(xs(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function jE(r,o){return ys(r,o)}function zE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?ys(r,o,t,a):!!l}function Hd(r){if(!vt(r))return!1;var o=Zt(r);return o==Sr||o==Qi||typeof r.message=="string"&&typeof r.name=="string"&&!Cs(r)}function HE(r){return typeof r=="number"&&mm(r)}function Mr(r){if(!bt(r))return!1;var o=Zt(r);return o==xr||o==Pr||o==xi||o==Hr}function qb(r){return typeof r=="number"&&r==Ce(r)}function fc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function vt(r){return r!=null&&typeof r=="object"}var Ob=Xp?Sn(Xp):KD;function VE(r,o){return r===o||_d(r,o,Nd(o))}function GE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function QE(r){return Lb(r)&&r!=+r}function KE(r){if(I0(r))throw new ye(i);return Dm(r)}function JE(r){return r===null}function XE(r){return r==null}function Lb(r){return typeof r=="number"||vt(r)&&Zt(r)==hr}function Cs(r){if(!vt(r)||Zt(r)!=Bt)return!1;var o=Ba(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Na.call(a)==GR}var Vd=Yp?Sn(Yp):JD;function YE(r){return qb(r)&&r>=-ge&&r<=ge}var Bb=Zp?Sn(Zp):XD;function hc(r){return typeof r=="string"||!xe(r)&&vt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||vt(r)&&Zt(r)==Cr}var lo=em?Sn(em):YD;function ZE(r){return r===t}function eI(r){return vt(r)&&Ht(r)==jt}function tI(r){return vt(r)&&Zt(r)==Ci}var nI=rc(yd),rI=rc(function(r,o){return r<=o});function Ub(r){if(!r)return[];if(un(r))return hc(r)?Kn(r):cn(r);if(fs&&r[fs])return NR(r[fs]());var o=Ht(r),a=o==mt?ad:o==xt?Ia:fo;return a(r)}function Ar(r){if(!r)return r===0?r:0;if(r=Ln(r),r===Te||r===-Te){var o=r<0?-1:1;return o*me}return r===r?r:0}function Ce(r){var o=Ar(r),a=o%1;return o===o?a?o-a:o:0}function $b(r){return r?Fi(Ce(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=sm(r);var a=Qn.test(r);return a||Vr.test(r)?_R(r.slice(2),a?2:8):yn.test(r)?St:+r}function Wb(r){return mr(r,ln(r))}function iI(r){return r?Fi(Ce(r),-ge,ge):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var oI=ao(function(r,o){if(xs(o)||un(o)){mr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&bs(r,a,o[a])}),jb=ao(function(r,o){mr(o,ln(o),r)}),gc=ao(function(r,o,a,l){mr(o,ln(o),r,l)}),sI=ao(function(r,o,a,l){mr(o,Ot(o),r,l)}),aI=Er(hd);function cI(r,o){var a=so(r);return o==null?a:wm(a,o)}var uI=De(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),mr(r,Md(r),a),l&&(a=Nn(a,m|v|x,y0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function TI(r,o){return Hb(r,dc(le(o)))}var RI=Er(function(r,o){return r==null?{}:t0(r,o)});function Hb(r,o){if(r==null)return{};var a=ht(Md(r),function(l){return[l]});return o=le(o),qm(r,a,function(l,h){return o(l,h[0])})}function DI(r,o,a){o=ei(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=bm();return zt(r+h*(o-r+bR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var UI=co(function(r,o,a){return o=o.toLowerCase(),r+(a?Qb(o):o)});function Qb(r){return Kd(Ve(r).toLowerCase())}function Kb(r){return r=Ve(r),r&&r.replace(ka,FR).replace(aR,"")}function $I(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Fi(Ce(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function WI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(at,ER):r}function jI(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var zI=co(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),HI=co(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),VI=Ym("toLowerCase");function GI(r,o,a){r=Ve(r),o=Ce(o);var l=o?no(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return nc(ja(h),a)+r+nc(Wa(h),a)}function QI(r,o,a){r=Ve(r),o=Ce(o);var l=o?no(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&to(r))?ti(Kn(r),0,a):r.split(o,a)):[]}var tM=co(function(r,o,a){return r+(a?" ":"")+Kd(o)});function nM(r,o,a){return r=Ve(r),a=a==null?0:Fi(Ce(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function rM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=gc({},o,l,ob);var h=gc({},o.imports,l.imports,ob),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ta,J="__p += '",ne=cd((o.escape||Ta).source+"|"+Q.source+"|"+(Q===ls?Xe:Ta).source+"|"+(o.evaluate||Ta).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++fR+"]")+` +`;r.replace(ne,function(fe,Me,qe,Cn,tn,kn){return qe||(qe=Cn),J+=r.slice(V,kn).replace(jT,IR),Me&&(T=!0,J+=`' + +__e(`+Me+`) + +'`),tn&&(M=!0,J+=`'; +`+tn+`; +__p += '`),qe&&(J+=`' + +((__t = (`+qe+`)) == null ? '' : __t) + +'`),V=kn+fe.length,fe}),J+=`'; +`;var de=Ke.call(o,"variable")&&o.variable;if(!de)J=`with (obj) { +`+J+` } -`;else if(be.test(de))throw new ve(c);K=(A?K.replace(nt,""):K).replace(Re,"$1").replace(Je,"$1;"),K="function("+(de||"obj")+`) { +`;else if(be.test(de))throw new ye(c);J=(M?J.replace(tt,""):J).replace(Re,"$1").replace(Qe,"$1;"),J="function("+(de||"obj")+`) { `+(de?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(R?", __e = _.escape":"")+(A?`, __j = Array.prototype.join; +`)+"var __t, __p = ''"+(T?", __e = _.escape":"")+(M?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; -`)+K+`return __p -}`;var Ce=i_(function(){return He(_,ce+"return "+K).apply(e,w)});if(Ce.source=K,Vd(Ce))throw Ce;return Ce}function aM(r){return Ge(r).toLowerCase()}function cM(r){return Ge(r).toUpperCase()}function uM(r,s,a){if(r=Ge(r),r&&(a||s===e))return hm(r);if(!r||!(s=Pn(s)))return r;var l=Jn(r),d=Jn(s),_=gm(l,d),w=pm(l,d)+1;return Zr(l,_,w).join("")}function lM(r,s,a){if(r=Ge(r),r&&(a||s===e))return r.slice(0,bm(r)+1);if(!r||!(s=Pn(s)))return r;var l=Jn(r),d=pm(l,Jn(s))+1;return Zr(l,0,d).join("")}function dM(r,s,a){if(r=Ge(r),r&&(a||s===e))return r.replace(C,"");if(!r||!(s=Pn(s)))return r;var l=Jn(r),d=gm(l,Jn(s));return Zr(l,d).join("")}function fM(r,s){var a=Ke,l=Dt;if(_t(s)){var d="separator"in s?s.separator:d;a="length"in s?Se(s.length):a,l="omission"in s?Pn(s.omission):l}r=Ge(r);var _=r.length;if(Qi(r)){var w=Jn(r);_=w.length}if(a>=_)return r;var R=a-Ji(l);if(R<1)return l;var A=w?Zr(w,0,R).join(""):r.slice(0,R);if(d===e)return A+l;if(w&&(R+=A.length-R),Gd(d)){if(r.slice(R).search(d)){var G,J=A;for(d.global||(d=ud(d.source,Ge(an.exec(d))+"g")),d.lastIndex=0;G=d.exec(J);)var K=G.index;A=A.slice(0,K===e?R:K)}}else if(r.indexOf(Pn(d),R)!=R){var re=A.lastIndexOf(d);re>-1&&(A=A.slice(0,re))}return A+l}function hM(r){return r=Ge(r),r&&Et.test(r)?r.replace(qe,W0):r}var gM=to(function(r,s,a){return r+(a?" ":"")+s.toUpperCase()}),Xd=ob("toUpperCase");function r_(r,s,a){return r=Ge(r),s=a?e:s,s===e?L0(r)?H0(r):T0(r):r.match(s)||[]}var i_=Te(function(r,s){try{return xn(r,e,s)}catch(a){return Vd(a)?a:new ve(a)}}),pM=Ir(function(r,s){return Fn(s,function(a){a=mr(a),Dr(r,a,zd(r[a],r))}),r});function mM(r){var s=r==null?0:r.length,a=le();return r=s?gt(r,function(l){if(typeof l[1]!="function")throw new An(o);return[a(l[0]),l[1]]}):[],Te(function(l){for(var d=-1;++dge)return[];var a=je,l=Vt(r,je);s=le(s),r-=je;for(var d=sd(l,s);++a0||s<0)?new Me(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),s!==e&&(s=Se(s),a=s<0?a.dropRight(-s):a.take(s-r)),a)},Me.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Me.prototype.toArray=function(){return this.take(je)},gr(Me.prototype,function(r,s){var a=/^(?:filter|find|map|reject)|While$/.test(s),l=/^(?:head|last)$/.test(s),d=m[l?"take"+(s=="last"?"Right":""):s],_=l||/^find/.test(s);d&&(m.prototype[s]=function(){var w=this.__wrapped__,R=l?[1]:arguments,A=w instanceof Me,G=R[0],J=A||we(w),K=function(Ae){var Le=d.apply(m,Vr([Ae],R));return l&&re?Le[0]:Le};J&&a&&typeof G=="function"&&G.length!=1&&(A=J=!1);var re=this.__chain__,ce=!!this.__actions__.length,de=_&&!re,Ce=A&&!ce;if(!_&&J){w=Ce?w:new Me(this);var fe=r.apply(w,R);return fe.__actions__.push({func:rc,args:[K],thisArg:e}),new Mn(fe,re)}return de&&Ce?r.apply(this,R):(fe=this.thru(K),de?l?fe.value()[0]:fe.value():fe)})}),Fn(["pop","push","shift","sort","splice","unshift"],function(r){var s=Da[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);m.prototype[r]=function(){var d=arguments;if(l&&!this.__chain__){var _=this.value();return s.apply(we(_)?_:[],d)}return this[a](function(w){return s.apply(we(w)?w:[],d)})}}),gr(Me.prototype,function(r,s){var a=m[s];if(a){var l=a.name+"";Xe.call(Yi,l)||(Yi[l]=[]),Yi[l].push({name:s,func:a})}}),Yi[Xa(e,B).name]=[{name:"wrapper",func:e}],Me.prototype.clone=hD,Me.prototype.reverse=gD,Me.prototype.value=pD,m.prototype.at=zI,m.prototype.chain=HI,m.prototype.commit=VI,m.prototype.next=GI,m.prototype.plant=JI,m.prototype.reverse=XI,m.prototype.toJSON=m.prototype.valueOf=m.prototype.value=KI,m.prototype.first=m.prototype.head,ss&&(m.prototype[ss]=QI),m},Qr=V0();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Qr,define(function(){return Qr})):wi?((wi.exports=Qr)._=Qr,Yl._=Qr):qt._=Qr}).call($o)});var YR=F((lV,i2)=>{i2.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var bT=F((lG,mT)=>{"use strict";function cT(e){return Array.isArray(e)?e:[e]}var fT="",uT=" ",rp="\\",y2=/^\s+$/,x2=/(?:[^\\]|^)\\$/,w2=/^\\!/,P2=/^\\#/,S2=/\r?\n/g,C2=/^\.*\/|^\.+$/,ip="/",hT="node-ignore";typeof Symbol<"u"&&(hT=Symbol.for("node-ignore"));var lT=hT,k2=(e,t,n)=>Object.defineProperty(e,t,{value:n}),R2=/([0-z])-([0-z])/g,gT=()=>!1,T2=e=>e.replace(R2,(t,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?t:fT),D2=e=>{let{length:t}=e;return e.slice(0,t-t%2)},E2=[[/\\?\s+$/,e=>e.indexOf("\\")===0?uT:fT],[/\\\s/g,()=>uT],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,n)=>t+6{let i=n.replace(/\\\*/g,"[^\\/]*");return t+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>rp],[/\\\\/g,()=>rp],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,n,i,o)=>t===rp?`\\[${n}${D2(i)}${o}`:o==="]"&&i.length%2===0?`[${T2(n)}${i}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],dT=Object.create(null),I2=(e,t)=>{let n=dT[e];return n||(n=E2.reduce((i,o)=>i.replace(o[0],o[1].bind(e)),e),dT[e]=n),t?new RegExp(n,"i"):new RegExp(n)},ap=e=>typeof e=="string",F2=e=>e&&ap(e)&&!y2.test(e)&&!x2.test(e)&&e.indexOf("#")!==0,A2=e=>e.split(S2),op=class{constructor(t,n,i,o){this.origin=t,this.pattern=n,this.negative=i,this.regex=o}},M2=(e,t)=>{let n=e,i=!1;e.indexOf("!")===0&&(i=!0,e=e.substr(1)),e=e.replace(w2,"!").replace(P2,"#");let o=I2(e,t);return new op(n,e,i,o)},N2=(e,t)=>{throw new t(e)},Ur=(e,t,n)=>ap(e)?e?Ur.isNotRelative(e)?n(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${t}\``,TypeError),pT=e=>C2.test(e);Ur.isNotRelative=pT;Ur.convert=e=>e;var sp=class{constructor({ignorecase:t=!0,ignoreCase:n=t,allowRelativePaths:i=!1}={}){k2(this,lT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[lT]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(F2(t)){let n=M2(t,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(t){return this._added=!1,cT(ap(t)?A2(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,n){let i=!1,o=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(o===u&&i!==o||u&&!i&&!o&&!n)return;c.regex.test(t)&&(i=!u,o=u)}),{ignored:i,unignored:o}}_test(t,n,i,o){let c=t&&Ur.convert(t);return Ur(c,t,this._allowRelativePaths?gT:N2),this._t(c,n,i,o)}_t(t,n,i,o){if(t in n)return n[t];if(o||(o=t.split(ip)),o.pop(),!o.length)return n[t]=this._testOne(t,i);let c=this._t(o.join(ip)+ip,n,i,o);if(c.ignored)return n[t]=c;let u=this._testOne(t,i);return n[t]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return cT(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},ml=e=>new sp(e),q2=e=>Ur(e&&Ur.convert(e),e,gT);ml.isPathValid=q2;ml.default=ml;mT.exports=ml;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=e;let t=/^[a-z]:\//i;Ur.isNotRelative=n=>t.test(n)||pT(n)}});var ez={};oN(ez,{API_ENDPOINT:()=>J2});module.exports=sN(ez);var Hl=kt(require("fs")),WT=kt(require("os")),_a=kt(require("path"));var fc=class e{constructor(t,n,i,o){this._uri=t,this._languageId=n,this._version=i,this._content=o,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),i=this.offsetAt(t.end);return this._content.substring(n,i)}return this._content}update(t,n){for(let i of t)if(e.isIncremental(i)){let o=l_(i.range),c=this.offsetAt(o.start),u=this.offsetAt(o.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let f=Math.max(o.start.line,0),g=Math.max(o.end.line,0),b=this._lineOffsets,x=c_(i.text,!1,c);if(g-f===x.length)for(let I=0,M=x.length;It?o=u:i=u+1}let c=i-1;return t=this.ensureBeforeEOL(t,n[c]),{line:c,character:t-n[c]}}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let i=n[t.line];if(t.character<=0)return i;let o=t.line+1n&&u_(this._content.charCodeAt(t-1));)t--;return t}get lineCount(){return this.getLineOffsets().length}static isIncremental(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},hc;(function(e){function t(o,c,u,f){return new fc(o,c,u,f)}e.create=t;function n(o,c,u){if(o instanceof fc)return o.update(c,u),o;throw new Error("TextDocument.update: document must be created by TextDocument.create")}e.update=n;function i(o,c){let u=o.getText(),f=rf(c.map(aN),(x,k)=>{let I=x.range.start.line-k.range.start.line;return I===0?x.range.start.character-k.range.start.character:I}),g=0,b=[];for(let x of f){let k=o.offsetAt(x.range.start);if(kg&&b.push(u.substring(g,k)),x.newText.length&&b.push(x.newText),g=o.offsetAt(x.range.end)}return b.push(u.substr(g)),b.join("")}e.applyEdits=i})(hc||(hc={}));function rf(e,t){if(e.length<=1)return e;let n=e.length/2|0,i=e.slice(0,n),o=e.slice(n);rf(i,t),rf(o,t);let c=0,u=0,f=0;for(;cn.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function aN(e){let t=l_(e.range);return t!==e.range?{newText:e.newText,range:t}:e}var Ne=kt(Mw());var Nw=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function Pq(e){return typeof e=="string"&&Nw.test(e)}var rg=Pq;var jt=[];for(let e=0;e<256;++e)jt.push((e+256).toString(16).slice(1));function qw(e,t=0){return(jt[e[t+0]]+jt[e[t+1]]+jt[e[t+2]]+jt[e[t+3]]+"-"+jt[e[t+4]]+jt[e[t+5]]+"-"+jt[e[t+6]]+jt[e[t+7]]+"-"+jt[e[t+8]]+jt[e[t+9]]+"-"+jt[e[t+10]]+jt[e[t+11]]+jt[e[t+12]]+jt[e[t+13]]+jt[e[t+14]]+jt[e[t+15]]).toLowerCase()}var Lw=require("crypto"),Iu=new Uint8Array(256),Eu=Iu.length;function ig(){return Eu>Iu.length-16&&((0,Lw.randomFillSync)(Iu),Eu=0),Iu.slice(Eu,Eu+=16)}var Ow=require("crypto"),og={randomUUID:Ow.randomUUID};function Sq(e,t,n){if(og.randomUUID&&!t&&!e)return og.randomUUID();e=e||{};let i=e.random||(e.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){n=n||0;for(let o=0;o<16;++o)t[n+o]=i[o];return t}return qw(i)}var Ns=Sq;var To=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var Do=class extends Error{constructor(){super("No models available")}},Eo=class extends Error{constructor(t="Skipping inline completion."){super(t)}},Nt=class e extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new e(3,n)}static fromResponse(n){return new e(Cq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof e?n.status===i:!1}static isRetriableAPIError(n){return n instanceof e?kq.has(n.status):!1}};function Cq(e){switch(e){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return e>=500&&e<600?3:2}var kq=new Set([3,1]);function Rq(e){return e.cause instanceof String?String(e.cause):e.cause instanceof Object?JSON.stringify(e.cause):""}function Ee(e,t=!1){if(e instanceof Error){if(t){let n=Rq(e);if(n!=="")return`${e.message} (due to ${n})`}return e.message}return String(e)}var KR=kt(Lk());var Hu=kt(require("fs")),Qs=kt(Bk()),$k=kt(require("os")),Js=kt(require("path")),Yj=process.env.TEST_TMPDIR?Js.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||Js.default.join($k.default.homedir(),".local","state"),Uk=Js.default.join(Yj,"augment","augment-server.log"),Gs;function Zj(){if(Gs)return Gs;let e=Js.default.dirname(Uk);Hu.default.existsSync(e)||Hu.default.mkdirSync(e,{recursive:!0});let t=(process.env.AUGMENT_LOG_LEVEL||"info").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(t)?Qs.default.setLevel(t):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${t}". Defaulting to "info"`,Qs.default.setLevel("info")),Qs.default.methodFactory=function(i){return function(o){let c=new Date().toISOString();Hu.default.appendFileSync(Uk,`${c} [${i.toUpperCase()}] ${o} -`)}},Gs=Qs.default.getLogger("server"),n&&Gs.warn(n),Gs}function Ie(e){let t=Zj();return{...t,verbose:(n,...i)=>t.debug(n,...i)}}var Ks=kt(Vu()),Wo=class{constructor(t,n){this.name=t;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(t){return this._isSet&&(0,Ks.isEqual)(t,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: -${this.diff(this.value,t).map(n=>` - ${n}`).join(` -`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(t)}`),this._value=(0,Ks.cloneDeep)(t),this._isSet=!0,!0)}diff(t,n,i=[]){if((0,Ks.isEqual)(n,t))return[];if(!this.isObject(n)||!this.isObject(t))return[`${this._formatValue(t)} to ${this._formatValue(n)}`];let o=new Set([...Object.keys(t||{}),...Object.keys(n||{})]),c=[];for(let u of o){let f=n?n[u]:void 0,g=t?t[u]:void 0;!this.isObject(f)||!this.isObject(g)?f!==g&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(g)} to ${this._formatValue(f)}`):c.push(...this.diff(g,f,i.concat(u)))}return c}isObject(t){return typeof t=="object"&&t!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(t){return t===void 0?"undefined":JSON.stringify(t)}};var XR=require("events"),Dn=kt(require("fs"));var Wk;(function(e){function t(n){return typeof n=="string"}e.is=t})(Wk||(Wk={}));var Dg;(function(e){function t(n){return typeof n=="string"}e.is=t})(Dg||(Dg={}));var jk;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(jk||(jk={}));var Gu;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(Gu||(Gu={}));var rr;(function(e){function t(i,o){return i===Number.MAX_VALUE&&(i=Gu.MAX_VALUE),o===Number.MAX_VALUE&&(o=Gu.MAX_VALUE),{line:i,character:o}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.uinteger(o.line)&&O.uinteger(o.character)}e.is=n})(rr||(rr={}));var dt;(function(e){function t(i,o,c,u){if(O.uinteger(i)&&O.uinteger(o)&&O.uinteger(c)&&O.uinteger(u))return{start:rr.create(i,o),end:rr.create(c,u)};if(rr.is(i)&&rr.is(o))return{start:i,end:o};throw new Error(`Range#create called with invalid arguments[${i}, ${o}, ${c}, ${u}]`)}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&rr.is(o.start)&&rr.is(o.end)}e.is=n})(dt||(dt={}));var Qu;(function(e){function t(i,o){return{uri:i,range:o}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&dt.is(o.range)&&(O.string(o.uri)||O.undefined(o.uri))}e.is=n})(Qu||(Qu={}));var zk;(function(e){function t(i,o,c,u){return{targetUri:i,targetRange:o,targetSelectionRange:c,originSelectionRange:u}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&dt.is(o.targetRange)&&O.string(o.targetUri)&&dt.is(o.targetSelectionRange)&&(dt.is(o.originSelectionRange)||O.undefined(o.originSelectionRange))}e.is=n})(zk||(zk={}));var Eg;(function(e){function t(i,o,c,u){return{red:i,green:o,blue:c,alpha:u}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.numberRange(o.red,0,1)&&O.numberRange(o.green,0,1)&&O.numberRange(o.blue,0,1)&&O.numberRange(o.alpha,0,1)}e.is=n})(Eg||(Eg={}));var Hk;(function(e){function t(i,o){return{range:i,color:o}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&dt.is(o.range)&&Eg.is(o.color)}e.is=n})(Hk||(Hk={}));var Vk;(function(e){function t(i,o,c){return{label:i,textEdit:o,additionalTextEdits:c}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.string(o.label)&&(O.undefined(o.textEdit)||zo.is(o))&&(O.undefined(o.additionalTextEdits)||O.typedArray(o.additionalTextEdits,zo.is))}e.is=n})(Vk||(Vk={}));var Gk;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(Gk||(Gk={}));var Qk;(function(e){function t(i,o,c,u,f,g){let b={startLine:i,endLine:o};return O.defined(c)&&(b.startCharacter=c),O.defined(u)&&(b.endCharacter=u),O.defined(f)&&(b.kind=f),O.defined(g)&&(b.collapsedText=g),b}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.uinteger(o.startLine)&&O.uinteger(o.startLine)&&(O.undefined(o.startCharacter)||O.uinteger(o.startCharacter))&&(O.undefined(o.endCharacter)||O.uinteger(o.endCharacter))&&(O.undefined(o.kind)||O.string(o.kind))}e.is=n})(Qk||(Qk={}));var Ig;(function(e){function t(i,o){return{location:i,message:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&Qu.is(o.location)&&O.string(o.message)}e.is=n})(Ig||(Ig={}));var Jk;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(Jk||(Jk={}));var Xk;(function(e){e.Unnecessary=1,e.Deprecated=2})(Xk||(Xk={}));var Kk;(function(e){function t(n){let i=n;return O.objectLiteral(i)&&O.string(i.href)}e.is=t})(Kk||(Kk={}));var Ju;(function(e){function t(i,o,c,u,f,g){let b={range:i,message:o};return O.defined(c)&&(b.severity=c),O.defined(u)&&(b.code=u),O.defined(f)&&(b.source=f),O.defined(g)&&(b.relatedInformation=g),b}e.create=t;function n(i){var o;let c=i;return O.defined(c)&&dt.is(c.range)&&O.string(c.message)&&(O.number(c.severity)||O.undefined(c.severity))&&(O.integer(c.code)||O.string(c.code)||O.undefined(c.code))&&(O.undefined(c.codeDescription)||O.string((o=c.codeDescription)===null||o===void 0?void 0:o.href))&&(O.string(c.source)||O.undefined(c.source))&&(O.undefined(c.relatedInformation)||O.typedArray(c.relatedInformation,Ig.is))}e.is=n})(Ju||(Ju={}));var jo;(function(e){function t(i,o,...c){let u={title:i,command:o};return O.defined(c)&&c.length>0&&(u.arguments=c),u}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.title)&&O.string(o.command)}e.is=n})(jo||(jo={}));var zo;(function(e){function t(c,u){return{range:c,newText:u}}e.replace=t;function n(c,u){return{range:{start:c,end:c},newText:u}}e.insert=n;function i(c){return{range:c,newText:""}}e.del=i;function o(c){let u=c;return O.objectLiteral(u)&&O.string(u.newText)&&dt.is(u.range)}e.is=o})(zo||(zo={}));var Fg;(function(e){function t(i,o,c){let u={label:i};return o!==void 0&&(u.needsConfirmation=o),c!==void 0&&(u.description=c),u}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&O.string(o.label)&&(O.boolean(o.needsConfirmation)||o.needsConfirmation===void 0)&&(O.string(o.description)||o.description===void 0)}e.is=n})(Fg||(Fg={}));var Ho;(function(e){function t(n){let i=n;return O.string(i)}e.is=t})(Ho||(Ho={}));var Yk;(function(e){function t(c,u,f){return{range:c,newText:u,annotationId:f}}e.replace=t;function n(c,u,f){return{range:{start:c,end:c},newText:u,annotationId:f}}e.insert=n;function i(c,u){return{range:c,newText:"",annotationId:u}}e.del=i;function o(c){let u=c;return zo.is(u)&&(Fg.is(u.annotationId)||Ho.is(u.annotationId))}e.is=o})(Yk||(Yk={}));var Ag;(function(e){function t(i,o){return{textDocument:i,edits:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&Og.is(o.textDocument)&&Array.isArray(o.edits)}e.is=n})(Ag||(Ag={}));var Mg;(function(e){function t(i,o,c){let u={kind:"create",uri:i};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),c!==void 0&&(u.annotationId=c),u}e.create=t;function n(i){let o=i;return o&&o.kind==="create"&&O.string(o.uri)&&(o.options===void 0||(o.options.overwrite===void 0||O.boolean(o.options.overwrite))&&(o.options.ignoreIfExists===void 0||O.boolean(o.options.ignoreIfExists)))&&(o.annotationId===void 0||Ho.is(o.annotationId))}e.is=n})(Mg||(Mg={}));var Ng;(function(e){function t(i,o,c,u){let f={kind:"rename",oldUri:i,newUri:o};return c!==void 0&&(c.overwrite!==void 0||c.ignoreIfExists!==void 0)&&(f.options=c),u!==void 0&&(f.annotationId=u),f}e.create=t;function n(i){let o=i;return o&&o.kind==="rename"&&O.string(o.oldUri)&&O.string(o.newUri)&&(o.options===void 0||(o.options.overwrite===void 0||O.boolean(o.options.overwrite))&&(o.options.ignoreIfExists===void 0||O.boolean(o.options.ignoreIfExists)))&&(o.annotationId===void 0||Ho.is(o.annotationId))}e.is=n})(Ng||(Ng={}));var qg;(function(e){function t(i,o,c){let u={kind:"delete",uri:i};return o!==void 0&&(o.recursive!==void 0||o.ignoreIfNotExists!==void 0)&&(u.options=o),c!==void 0&&(u.annotationId=c),u}e.create=t;function n(i){let o=i;return o&&o.kind==="delete"&&O.string(o.uri)&&(o.options===void 0||(o.options.recursive===void 0||O.boolean(o.options.recursive))&&(o.options.ignoreIfNotExists===void 0||O.boolean(o.options.ignoreIfNotExists)))&&(o.annotationId===void 0||Ho.is(o.annotationId))}e.is=n})(qg||(qg={}));var Lg;(function(e){function t(n){let i=n;return i&&(i.changes!==void 0||i.documentChanges!==void 0)&&(i.documentChanges===void 0||i.documentChanges.every(o=>O.string(o.kind)?Mg.is(o)||Ng.is(o)||qg.is(o):Ag.is(o)))}e.is=t})(Lg||(Lg={}));var Zk;(function(e){function t(i){return{uri:i}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.uri)}e.is=n})(Zk||(Zk={}));var eR;(function(e){function t(i,o){return{uri:i,version:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.uri)&&O.integer(o.version)}e.is=n})(eR||(eR={}));var Og;(function(e){function t(i,o){return{uri:i,version:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.uri)&&(o.version===null||O.integer(o.version))}e.is=n})(Og||(Og={}));var tR;(function(e){function t(i,o,c,u){return{uri:i,languageId:o,version:c,text:u}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.string(o.uri)&&O.string(o.languageId)&&O.integer(o.version)&&O.string(o.text)}e.is=n})(tR||(tR={}));var Bg;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(n){let i=n;return i===e.PlainText||i===e.Markdown}e.is=t})(Bg||(Bg={}));var Ys;(function(e){function t(n){let i=n;return O.objectLiteral(n)&&Bg.is(i.kind)&&O.string(i.value)}e.is=t})(Ys||(Ys={}));var nR;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(nR||(nR={}));var rR;(function(e){e.PlainText=1,e.Snippet=2})(rR||(rR={}));var iR;(function(e){e.Deprecated=1})(iR||(iR={}));var oR;(function(e){function t(i,o,c){return{newText:i,insert:o,replace:c}}e.create=t;function n(i){let o=i;return o&&O.string(o.newText)&&dt.is(o.insert)&&dt.is(o.replace)}e.is=n})(oR||(oR={}));var sR;(function(e){e.asIs=1,e.adjustIndentation=2})(sR||(sR={}));var aR;(function(e){function t(n){let i=n;return i&&(O.string(i.detail)||i.detail===void 0)&&(O.string(i.description)||i.description===void 0)}e.is=t})(aR||(aR={}));var cR;(function(e){function t(n){return{label:n}}e.create=t})(cR||(cR={}));var uR;(function(e){function t(n,i){return{items:n||[],isIncomplete:!!i}}e.create=t})(uR||(uR={}));var Xu;(function(e){function t(i){return i.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function n(i){let o=i;return O.string(o)||O.objectLiteral(o)&&O.string(o.language)&&O.string(o.value)}e.is=n})(Xu||(Xu={}));var lR;(function(e){function t(n){let i=n;return!!i&&O.objectLiteral(i)&&(Ys.is(i.contents)||Xu.is(i.contents)||O.typedArray(i.contents,Xu.is))&&(n.range===void 0||dt.is(n.range))}e.is=t})(lR||(lR={}));var dR;(function(e){function t(n,i){return i?{label:n,documentation:i}:{label:n}}e.create=t})(dR||(dR={}));var fR;(function(e){function t(n,i,...o){let c={label:n};return O.defined(i)&&(c.documentation=i),O.defined(o)?c.parameters=o:c.parameters=[],c}e.create=t})(fR||(fR={}));var hR;(function(e){e.Text=1,e.Read=2,e.Write=3})(hR||(hR={}));var gR;(function(e){function t(n,i){let o={range:n};return O.number(i)&&(o.kind=i),o}e.create=t})(gR||(gR={}));var pR;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(pR||(pR={}));var mR;(function(e){e.Deprecated=1})(mR||(mR={}));var bR;(function(e){function t(n,i,o,c,u){let f={name:n,kind:i,location:{uri:c,range:o}};return u&&(f.containerName=u),f}e.create=t})(bR||(bR={}));var _R;(function(e){function t(n,i,o,c){return c!==void 0?{name:n,kind:i,location:{uri:o,range:c}}:{name:n,kind:i,location:{uri:o}}}e.create=t})(_R||(_R={}));var vR;(function(e){function t(i,o,c,u,f,g){let b={name:i,detail:o,kind:c,range:u,selectionRange:f};return g!==void 0&&(b.children=g),b}e.create=t;function n(i){let o=i;return o&&O.string(o.name)&&O.number(o.kind)&&dt.is(o.range)&&dt.is(o.selectionRange)&&(o.detail===void 0||O.string(o.detail))&&(o.deprecated===void 0||O.boolean(o.deprecated))&&(o.children===void 0||Array.isArray(o.children))&&(o.tags===void 0||Array.isArray(o.tags))}e.is=n})(vR||(vR={}));var yR;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(yR||(yR={}));var Ku;(function(e){e.Invoked=1,e.Automatic=2})(Ku||(Ku={}));var xR;(function(e){function t(i,o,c){let u={diagnostics:i};return o!=null&&(u.only=o),c!=null&&(u.triggerKind=c),u}e.create=t;function n(i){let o=i;return O.defined(o)&&O.typedArray(o.diagnostics,Ju.is)&&(o.only===void 0||O.typedArray(o.only,O.string))&&(o.triggerKind===void 0||o.triggerKind===Ku.Invoked||o.triggerKind===Ku.Automatic)}e.is=n})(xR||(xR={}));var wR;(function(e){function t(i,o,c){let u={title:i},f=!0;return typeof o=="string"?(f=!1,u.kind=o):jo.is(o)?u.command=o:u.edit=o,f&&c!==void 0&&(u.kind=c),u}e.create=t;function n(i){let o=i;return o&&O.string(o.title)&&(o.diagnostics===void 0||O.typedArray(o.diagnostics,Ju.is))&&(o.kind===void 0||O.string(o.kind))&&(o.edit!==void 0||o.command!==void 0)&&(o.command===void 0||jo.is(o.command))&&(o.isPreferred===void 0||O.boolean(o.isPreferred))&&(o.edit===void 0||Lg.is(o.edit))}e.is=n})(wR||(wR={}));var PR;(function(e){function t(i,o){let c={range:i};return O.defined(o)&&(c.data=o),c}e.create=t;function n(i){let o=i;return O.defined(o)&&dt.is(o.range)&&(O.undefined(o.command)||jo.is(o.command))}e.is=n})(PR||(PR={}));var SR;(function(e){function t(i,o){return{tabSize:i,insertSpaces:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&O.uinteger(o.tabSize)&&O.boolean(o.insertSpaces)}e.is=n})(SR||(SR={}));var CR;(function(e){function t(i,o,c){return{range:i,target:o,data:c}}e.create=t;function n(i){let o=i;return O.defined(o)&&dt.is(o.range)&&(O.undefined(o.target)||O.string(o.target))}e.is=n})(CR||(CR={}));var kR;(function(e){function t(i,o){return{range:i,parent:o}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&dt.is(o.range)&&(o.parent===void 0||e.is(o.parent))}e.is=n})(kR||(kR={}));var RR;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(RR||(RR={}));var TR;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(TR||(TR={}));var DR;(function(e){function t(n){let i=n;return O.objectLiteral(i)&&(i.resultId===void 0||typeof i.resultId=="string")&&Array.isArray(i.data)&&(i.data.length===0||typeof i.data[0]=="number")}e.is=t})(DR||(DR={}));var ER;(function(e){function t(i,o){return{range:i,text:o}}e.create=t;function n(i){let o=i;return o!=null&&dt.is(o.range)&&O.string(o.text)}e.is=n})(ER||(ER={}));var IR;(function(e){function t(i,o,c){return{range:i,variableName:o,caseSensitiveLookup:c}}e.create=t;function n(i){let o=i;return o!=null&&dt.is(o.range)&&O.boolean(o.caseSensitiveLookup)&&(O.string(o.variableName)||o.variableName===void 0)}e.is=n})(IR||(IR={}));var FR;(function(e){function t(i,o){return{range:i,expression:o}}e.create=t;function n(i){let o=i;return o!=null&&dt.is(o.range)&&(O.string(o.expression)||o.expression===void 0)}e.is=n})(FR||(FR={}));var AR;(function(e){function t(i,o){return{frameId:i,stoppedLocation:o}}e.create=t;function n(i){let o=i;return O.defined(o)&&dt.is(i.stoppedLocation)}e.is=n})(AR||(AR={}));var Ug;(function(e){e.Type=1,e.Parameter=2;function t(n){return n===1||n===2}e.is=t})(Ug||(Ug={}));var $g;(function(e){function t(i){return{value:i}}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&(o.tooltip===void 0||O.string(o.tooltip)||Ys.is(o.tooltip))&&(o.location===void 0||Qu.is(o.location))&&(o.command===void 0||jo.is(o.command))}e.is=n})($g||($g={}));var MR;(function(e){function t(i,o,c){let u={position:i,label:o};return c!==void 0&&(u.kind=c),u}e.create=t;function n(i){let o=i;return O.objectLiteral(o)&&rr.is(o.position)&&(O.string(o.label)||O.typedArray(o.label,$g.is))&&(o.kind===void 0||Ug.is(o.kind))&&o.textEdits===void 0||O.typedArray(o.textEdits,zo.is)&&(o.tooltip===void 0||O.string(o.tooltip)||Ys.is(o.tooltip))&&(o.paddingLeft===void 0||O.boolean(o.paddingLeft))&&(o.paddingRight===void 0||O.boolean(o.paddingRight))}e.is=n})(MR||(MR={}));var NR;(function(e){function t(n){return{kind:"snippet",value:n}}e.createSnippet=t})(NR||(NR={}));var qR;(function(e){function t(n,i,o,c){return{insertText:n,filterText:i,range:o,command:c}}e.create=t})(qR||(qR={}));var LR;(function(e){function t(n){return{items:n}}e.create=t})(LR||(LR={}));var OR;(function(e){e.Invoked=0,e.Automatic=1})(OR||(OR={}));var BR;(function(e){function t(n,i){return{range:n,text:i}}e.create=t})(BR||(BR={}));var UR;(function(e){function t(n,i){return{triggerKind:n,selectedCompletionInfo:i}}e.create=t})(UR||(UR={}));var $R;(function(e){function t(n){let i=n;return O.objectLiteral(i)&&Dg.is(i.uri)&&O.string(i.name)}e.is=t})($R||($R={}));var WR;(function(e){function t(c,u,f,g){return new Wg(c,u,f,g)}e.create=t;function n(c){let u=c;return!!(O.defined(u)&&O.string(u.uri)&&(O.undefined(u.languageId)||O.string(u.languageId))&&O.uinteger(u.lineCount)&&O.func(u.getText)&&O.func(u.positionAt)&&O.func(u.offsetAt))}e.is=n;function i(c,u){let f=c.getText(),g=o(u,(x,k)=>{let I=x.range.start.line-k.range.start.line;return I===0?x.range.start.character-k.range.start.character:I}),b=f.length;for(let x=g.length-1;x>=0;x--){let k=g[x],I=c.offsetAt(k.range.start),M=c.offsetAt(k.range.end);if(M<=b)f=f.substring(0,I)+k.newText+f.substring(M,f.length);else throw new Error("Overlapping edit");b=I}return f}e.applyEdits=i;function o(c,u){if(c.length<=1)return c;let f=c.length/2|0,g=c.slice(0,f),b=c.slice(f);o(g,u),o(b,u);let x=0,k=0,I=0;for(;x0&&t.push(n.length),this._lineOffsets=t}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),i=0,o=n.length;if(o===0)return rr.create(0,t);for(;it?o=u:i=u+1}let c=i-1;return rr.create(c,t-n[c])}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let i=n[t.line],o=t.line+1"u"}e.undefined=i;function o(M){return M===!0||M===!1}e.boolean=o;function c(M){return t.call(M)==="[object String]"}e.string=c;function u(M){return t.call(M)==="[object Number]"}e.number=u;function f(M,N,B){return t.call(M)==="[object Number]"&&N<=M&&M<=B}e.numberRange=f;function g(M){return t.call(M)==="[object Number]"&&-2147483648<=M&&M<=2147483647}e.integer=g;function b(M){return t.call(M)==="[object Number]"&&0<=M&&M<=2147483647}e.uinteger=b;function x(M){return t.call(M)==="[object Function]"}e.func=x;function k(M){return M!==null&&typeof M=="object"}e.objectLiteral=k;function I(M,N){return Array.isArray(M)&&M.every(N)}e.typedArray=I})(O||(O={}));var jR;(()=>{"use strict";var e={470:o=>{function c(g){if(typeof g!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(g))}function u(g,b){for(var x,k="",I=0,M=-1,N=0,B=0;B<=g.length;++B){if(B2){var W=k.lastIndexOf("/");if(W!==k.length-1){W===-1?(k="",I=0):I=(k=k.slice(0,W)).length-1-k.lastIndexOf("/"),M=B,N=0;continue}}else if(k.length===2||k.length===1){k="",I=0,M=B,N=0;continue}}b&&(k.length>0?k+="/..":k="..",I=2)}else k.length>0?k+="/"+g.slice(M+1,B):k=g.slice(M+1,B),I=B-M-1;M=B,N=0}else x===46&&N!==-1?++N:N=-1}return k}var f={resolve:function(){for(var g,b="",x=!1,k=arguments.length-1;k>=-1&&!x;k--){var I;k>=0?I=arguments[k]:(g===void 0&&(g=process.cwd()),I=g),c(I),I.length!==0&&(b=I+"/"+b,x=I.charCodeAt(0)===47)}return b=u(b,!x),x?b.length>0?"/"+b:"/":b.length>0?b:"."},normalize:function(g){if(c(g),g.length===0)return".";var b=g.charCodeAt(0)===47,x=g.charCodeAt(g.length-1)===47;return(g=u(g,!b)).length!==0||b||(g="."),g.length>0&&x&&(g+="/"),b?"/"+g:g},isAbsolute:function(g){return c(g),g.length>0&&g.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var g,b=0;b0&&(g===void 0?g=x:g+="/"+x)}return g===void 0?".":f.normalize(g)},relative:function(g,b){if(c(g),c(b),g===b||(g=f.resolve(g))===(b=f.resolve(b)))return"";for(var x=1;xB){if(b.charCodeAt(M+X)===47)return b.slice(M+X+1);if(X===0)return b.slice(M+X)}else I>B&&(g.charCodeAt(x+X)===47?W=X:X===0&&(W=0));break}var D=g.charCodeAt(x+X);if(D!==b.charCodeAt(M+X))break;D===47&&(W=X)}var P="";for(X=x+W+1;X<=k;++X)X!==k&&g.charCodeAt(X)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+b.slice(M+W):(M+=W,b.charCodeAt(M)===47&&++M,b.slice(M))},_makeLong:function(g){return g},dirname:function(g){if(c(g),g.length===0)return".";for(var b=g.charCodeAt(0),x=b===47,k=-1,I=!0,M=g.length-1;M>=1;--M)if((b=g.charCodeAt(M))===47){if(!I){k=M;break}}else I=!1;return k===-1?x?"/":".":x&&k===1?"//":g.slice(0,k)},basename:function(g,b){if(b!==void 0&&typeof b!="string")throw new TypeError('"ext" argument must be a string');c(g);var x,k=0,I=-1,M=!0;if(b!==void 0&&b.length>0&&b.length<=g.length){if(b.length===g.length&&b===g)return"";var N=b.length-1,B=-1;for(x=g.length-1;x>=0;--x){var W=g.charCodeAt(x);if(W===47){if(!M){k=x+1;break}}else B===-1&&(M=!1,B=x+1),N>=0&&(W===b.charCodeAt(N)?--N==-1&&(I=x):(N=-1,I=B))}return k===I?I=B:I===-1&&(I=g.length),g.slice(k,I)}for(x=g.length-1;x>=0;--x)if(g.charCodeAt(x)===47){if(!M){k=x+1;break}}else I===-1&&(M=!1,I=x+1);return I===-1?"":g.slice(k,I)},extname:function(g){c(g);for(var b=-1,x=0,k=-1,I=!0,M=0,N=g.length-1;N>=0;--N){var B=g.charCodeAt(N);if(B!==47)k===-1&&(I=!1,k=N+1),B===46?b===-1?b=N:M!==1&&(M=1):b!==-1&&(M=-1);else if(!I){x=N+1;break}}return b===-1||k===-1||M===0||M===1&&b===k-1&&b===x+1?"":g.slice(b,k)},format:function(g){if(g===null||typeof g!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof g);return function(b,x){var k=x.dir||x.root,I=x.base||(x.name||"")+(x.ext||"");return k?k===x.root?k+I:k+"/"+I:I}(0,g)},parse:function(g){c(g);var b={root:"",dir:"",base:"",ext:"",name:""};if(g.length===0)return b;var x,k=g.charCodeAt(0),I=k===47;I?(b.root="/",x=1):x=0;for(var M=-1,N=0,B=-1,W=!0,X=g.length-1,D=0;X>=x;--X)if((k=g.charCodeAt(X))!==47)B===-1&&(W=!1,B=X+1),k===46?M===-1?M=X:D!==1&&(D=1):M!==-1&&(D=-1);else if(!W){N=X+1;break}return M===-1||B===-1||D===0||D===1&&M===B-1&&M===N+1?B!==-1&&(b.base=b.name=N===0&&I?g.slice(1,B):g.slice(N,B)):(N===0&&I?(b.name=g.slice(1,M),b.base=g.slice(1,B)):(b.name=g.slice(N,M),b.base=g.slice(N,B)),b.ext=g.slice(M,B)),N>0?b.dir=g.slice(0,N-1):I&&(b.dir="/"),b},sep:"/",delimiter:":",win32:null,posix:null};f.posix=f,o.exports=f}},t={};function n(o){var c=t[o];if(c!==void 0)return c.exports;var u=t[o]={exports:{}};return e[o](u,u.exports,n),u.exports}n.d=(o,c)=>{for(var u in c)n.o(c,u)&&!n.o(o,u)&&Object.defineProperty(o,u,{enumerable:!0,get:c[u]})},n.o=(o,c)=>Object.prototype.hasOwnProperty.call(o,c),n.r=o=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})};var i={};(()=>{let o;n.r(i),n.d(i,{URI:()=>I,Utils:()=>xe}),typeof process=="object"?o=process.platform==="win32":typeof navigator=="object"&&(o=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,f=/^\/\//;function g(Y,H){if(!Y.scheme&&H)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${Y.authority}", path: "${Y.path}", query: "${Y.query}", fragment: "${Y.fragment}"}`);if(Y.scheme&&!c.test(Y.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(Y.path){if(Y.authority){if(!u.test(Y.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(Y.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let b="",x="/",k=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class I{static isUri(H){return H instanceof I||!!H&&typeof H.authority=="string"&&typeof H.fragment=="string"&&typeof H.path=="string"&&typeof H.query=="string"&&typeof H.scheme=="string"&&typeof H.fsPath=="string"&&typeof H.with=="function"&&typeof H.toString=="function"}scheme;authority;path;query;fragment;constructor(H,ae,ie,ke,ge,pe=!1){typeof H=="object"?(this.scheme=H.scheme||b,this.authority=H.authority||b,this.path=H.path||b,this.query=H.query||b,this.fragment=H.fragment||b):(this.scheme=function(wt,je){return wt||je?wt:"file"}(H,pe),this.authority=ae||b,this.path=function(wt,je){switch(wt){case"https":case"http":case"file":je?je[0]!==x&&(je=x+je):je=x}return je}(this.scheme,ie||b),this.query=ke||b,this.fragment=ge||b,g(this,pe))}get fsPath(){return D(this,!1)}with(H){if(!H)return this;let{scheme:ae,authority:ie,path:ke,query:ge,fragment:pe}=H;return ae===void 0?ae=this.scheme:ae===null&&(ae=b),ie===void 0?ie=this.authority:ie===null&&(ie=b),ke===void 0?ke=this.path:ke===null&&(ke=b),ge===void 0?ge=this.query:ge===null&&(ge=b),pe===void 0?pe=this.fragment:pe===null&&(pe=b),ae===this.scheme&&ie===this.authority&&ke===this.path&&ge===this.query&&pe===this.fragment?this:new N(ae,ie,ke,ge,pe)}static parse(H,ae=!1){let ie=k.exec(H);return ie?new N(ie[2]||b,_e(ie[4]||b),_e(ie[5]||b),_e(ie[7]||b),_e(ie[9]||b),ae):new N(b,b,b,b,b)}static file(H){let ae=b;if(o&&(H=H.replace(/\\/g,x)),H[0]===x&&H[1]===x){let ie=H.indexOf(x,2);ie===-1?(ae=H.substring(2),H=x):(ae=H.substring(2,ie),H=H.substring(ie)||x)}return new N("file",ae,H,b,b)}static from(H){let ae=new N(H.scheme,H.authority,H.path,H.query,H.fragment);return g(ae,!0),ae}toString(H=!1){return P(this,H)}toJSON(){return this}static revive(H){if(H){if(H instanceof I)return H;{let ae=new N(H);return ae._formatted=H.external,ae._fsPath=H._sep===M?H.fsPath:null,ae}}return H}}let M=o?1:void 0;class N extends I{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=D(this,!1)),this._fsPath}toString(H=!1){return H?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let H={$mid:1};return this._fsPath&&(H.fsPath=this._fsPath,H._sep=M),this._formatted&&(H.external=this._formatted),this.path&&(H.path=this.path),this.scheme&&(H.scheme=this.scheme),this.authority&&(H.authority=this.authority),this.query&&(H.query=this.query),this.fragment&&(H.fragment=this.fragment),H}}let B={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function W(Y,H,ae){let ie,ke=-1;for(let ge=0;ge=97&&pe<=122||pe>=65&&pe<=90||pe>=48&&pe<=57||pe===45||pe===46||pe===95||pe===126||H&&pe===47||ae&&pe===91||ae&&pe===93||ae&&pe===58)ke!==-1&&(ie+=encodeURIComponent(Y.substring(ke,ge)),ke=-1),ie!==void 0&&(ie+=Y.charAt(ge));else{ie===void 0&&(ie=Y.substr(0,ge));let wt=B[pe];wt!==void 0?(ke!==-1&&(ie+=encodeURIComponent(Y.substring(ke,ge)),ke=-1),ie+=wt):ke===-1&&(ke=ge)}}return ke!==-1&&(ie+=encodeURIComponent(Y.substring(ke))),ie!==void 0?ie:Y}function X(Y){let H;for(let ae=0;ae1&&Y.scheme==="file"?`//${Y.authority}${Y.path}`:Y.path.charCodeAt(0)===47&&(Y.path.charCodeAt(1)>=65&&Y.path.charCodeAt(1)<=90||Y.path.charCodeAt(1)>=97&&Y.path.charCodeAt(1)<=122)&&Y.path.charCodeAt(2)===58?H?Y.path.substr(1):Y.path[1].toLowerCase()+Y.path.substr(2):Y.path,o&&(ae=ae.replace(/\//g,"\\")),ae}function P(Y,H){let ae=H?X:W,ie="",{scheme:ke,authority:ge,path:pe,query:wt,fragment:je}=Y;if(ke&&(ie+=ke,ie+=":"),(ge||ke==="file")&&(ie+=x,ie+=x),ge){let ze=ge.indexOf("@");if(ze!==-1){let bn=ge.substr(0,ze);ge=ge.substr(ze+1),ze=bn.lastIndexOf(":"),ze===-1?ie+=ae(bn,!1,!1):(ie+=ae(bn.substr(0,ze),!1,!1),ie+=":",ie+=ae(bn.substr(ze+1),!1,!0)),ie+="@"}ge=ge.toLowerCase(),ze=ge.lastIndexOf(":"),ze===-1?ie+=ae(ge,!1,!0):(ie+=ae(ge.substr(0,ze),!1,!0),ie+=ge.substr(ze))}if(pe){if(pe.length>=3&&pe.charCodeAt(0)===47&&pe.charCodeAt(2)===58){let ze=pe.charCodeAt(1);ze>=65&&ze<=90&&(pe=`/${String.fromCharCode(ze+32)}:${pe.substr(3)}`)}else if(pe.length>=2&&pe.charCodeAt(1)===58){let ze=pe.charCodeAt(0);ze>=65&&ze<=90&&(pe=`${String.fromCharCode(ze+32)}:${pe.substr(2)}`)}ie+=ae(pe,!0,!1)}return wt&&(ie+="?",ie+=ae(wt,!1,!1)),je&&(ie+="#",ie+=H?je:W(je,!1,!1)),ie}function U(Y){try{return decodeURIComponent(Y)}catch{return Y.length>3?Y.substr(0,3)+U(Y.substr(3)):Y}}let ne=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function _e(Y){return Y.match(ne)?Y.replace(ne,H=>U(H)):Y}var Ue=n(470);let Ke=Ue.posix||Ue,Dt="/";var xe;(function(Y){Y.joinPath=function(H,...ae){return H.with({path:Ke.join(H.path,...ae)})},Y.resolvePath=function(H,...ae){let ie=H.path,ke=!1;ie[0]!==Dt&&(ie=Dt+ie,ke=!0);let ge=Ke.resolve(ie,...ae);return ke&&ge[0]===Dt&&!H.authority&&(ge=ge.substring(1)),H.with({path:ge})},Y.dirname=function(H){if(H.path.length===0||H.path===Dt)return H;let ae=Ke.dirname(H.path);return ae.length===1&&ae.charCodeAt(0)===46&&(ae=""),H.with({path:ae})},Y.basename=function(H){return Ke.basename(H.path)},Y.extname=function(H){return Ke.extname(H.path)}})(xe||(xe={}))})(),jR=i})();var{URI:Ze,Utils:Tt}=jR;var Ui=kt(require("fs")),rn=kt(require("fs/promises"));function e2(e){return e.isFile()?"File":e.isDirectory()?"Directory":"Other"}function t2(e){return e.isFile()?"File":e.isDirectory()?"Directory":"Other"}function zR(e){return{size:e.size,type:t2(e),mtime:Math.floor(e.mtimeMs)}}async function HR(e){let t=await rn.lstat(e);return zR(t)}function VR(e){try{return Zs(e).type==="File"}catch{return!1}}async function GR(e){try{return(await rn.stat(e)).isDirectory()}catch{return!1}}function Zs(e){let t=Ui.lstatSync(e);return zR(t)}function ea(e){let t=[],n=Ui.readdirSync(e,{withFileTypes:!0});for(let i of n)t.push([i.name,e2(i)]);return t}async function ta(e){await rn.mkdir(e,{recursive:!0})}async function jg(e,t){await rn.rename(e,t)}async function QR(e){return await rn.readFile(e)}async function Vo(e){return await rn.readFile(e,{encoding:"utf8"})}async function Yu(e,t){return await rn.writeFile(e,t,{encoding:"utf8"})}function JR(e){return Ui.readFileSync(e,{encoding:"utf8"})}var Zu=class{constructor(t){this.document=t}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(t){return this.document.positionAt(t)}offsetAt(t){return this.document.offsetAt(t)}getText(t){return this.document.getText(t)}},Or=class{dispose;constructor(t){this.dispose=()=>t()}},De=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new XR.EventEmitter,this.event=(t,n,i)=>{let o=n?t.bind(n):t;this.nodeEventEmitter.on("event",o);let c=new Or(()=>{this.nodeEventEmitter.off("event",o)});return Array.isArray(i)&&i.push(c),c}}event;fire(t){this.nodeEventEmitter.emit("event",t)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new De,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},n2=new De,zg=new De,Vg={onDidChangeConfiguration:n2.event,getConfiguration:e=>e==="augment"?{}:{}},Hg=class{secretsPath;constructor(t){Dn.existsSync(t.fsPath)||Dn.mkdirSync(t.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(t,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let t=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(t)}catch{return{}}}async writeSecrets(t){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(t,null,2),{mode:384,encoding:"utf8"})}async get(t){return(await this.readSecrets())[t]}async store(t,n){let i=await this.readSecrets();i[t]=n,await this.writeSecrets(i),zg.fire({key:t})}async delete(t){let n=await this.readSecrets();t in n&&(delete n[t],await this.writeSecrets(n),zg.fire({key:t}))}onDidChange=zg.event},el=class{inMemoryState=new Map;statePath;constructor(t){Dn.mkdirSync(t.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(t,"state.json").fsPath;try{let n=JR(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(t){return this.inMemoryState.get(t)}async update(t,n){this.inMemoryState.set(t,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},na=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(t){Dn.mkdirSync(t.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(t,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(t,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Hg(t),this.globalState=new el(this.globalStorageUri),this.workspaceState=new el(this.storageUri)}};var r2=128*1024,Qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:r2,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:""},Gg=class{constructor(t,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,KR.default)(t)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(t){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)t[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:t,changedFlags:n})}dispose(){this._disposed=!0}},tl=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=Ie("FeatureFlagManager");_flags;constructor(t){this._flags=new Wo("feature flags",this._logger),this._flags.update(t?.initialFlags??Qg),this._setupRefreshTimer(t)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(t){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(t),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(t)}subscribe(t,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Gg(this._flags.value,t,n);return this._subscriptions.push(i),i}_setupRefreshTimer(t){if(!t?.fetcher||!t?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=t.fetcher,o=t.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),o)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(t=>t.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var o2=YR(),Jg=[],s2=new Set;for(let e of o2){Jg.push({name:e.name,vscodeName:e.vscodeName,extensions:e.extensions});for(let t of e.extensions)s2.add(t)}function ra(e,t,n){if(!Array.isArray(n))throw new Error(`Value of ${e}.${t} is not Array`)}function pi(e,t,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${e}.${t} has unexpected type. Expected number, received ${i}`);return n}function on(e,t,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${e}.${t} has unexpected type. Expected string, received ${i}`);return n}function Go(e,t,n){ra(e,t,n);let i=[];for(let o of n)i.push(on(e,t,o));return i}function Xg(e,t,n,i=!1){if(n===null)return i;let o=typeof n;if(o!=="boolean")throw new Error(`Value of ${e}.${t} has unexpected type. Expected boolean, received ${o}`);return n}function ia(e,t=""){let n=[];if(typeof e!="object"||e===null)return ZR(e);for(let[i,o]of Object.entries(e))if(Array.isArray(o)){n.push(`${t}${i}: (array) ${o.length} (array length) ${JSON.stringify(o).length} (char length)`);let c=20;o.slice(0,c).forEach((u,f)=>{n.push(`${t} [${f}]: ${ia(u,t+" ")}`)}),o.length>c&&n.push(`${t} ${o.length-c} more items...`)}else typeof o=="object"&&o!==null?(n.push(`${t}${i}: (object) ${Object.keys(o).length} (object size) ${JSON.stringify(o).length} (char length)`),n.push(ia(o,t+" "))):n.push(`${t}${i}: ${ZR(o)}`);return n.join(` -`)}function ZR(e){return typeof e=="string"?`${e.length} (string length)`:typeof e=="boolean"||e===null||typeof e=="number"?"1":"N/A"}var a2={initialMS:100,mult:2,maxMS:3e4};function oa(e){let t;return new Promise(n=>{t=e(i=>{t.dispose(),n(i)})})}function c2(e){return e===0?Promise.resolve():new Promise(t=>{setTimeout(t,e)})}async function yr(e,t,n=a2){let i=0,o=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>Nt.isRetriableAPIError(u);for(let u=0;;u++)try{let f=await e();return u>0&&t.info(`Operation succeeded after ${u} transient failures`),f}catch(f){if(!c(f))throw f;let g=u+1;if(n.maxTries!==void 0&&g>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),t.info(`Operation failed with error ${f}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&o!==void 0&&Date.now()-o+i>n.maxTotalMs))throw f;await c2(i)}}async function Kg(e,t){let n=new Promise((i,o)=>{setTimeout(()=>{o(new Error("Execution aborted due to timeout."))},t)});return await Promise.race([e,n])}function nl(e){return{checkpoint_id:e.checkpointId,added_blobs:e.addedBlobs.sort(),deleted_blobs:e.deletedBlobs.sort()}}var Yg=class extends Error{constructor(t,n){super(`Conversion failure: ${t}. Response = ${n}`)}},rl=class e{constructor(t,n,i,o,c){this._configListener=t;this._auth=n;this.sessionId=i;this._userAgent=o;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Zg;_logger=Ie("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return Ns()}async callApi(t,n,i,o,c,u,f,g){let b=n.apiToken,x=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(b=U.accessToken,x=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let k;try{k=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new il}if(!k.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let I=JSON.stringify(o,(U,ne)=>ne===void 0?null:ne),M=f??e.defaultRequestTimeoutMs,N=AbortSignal.timeout(M),B="POST",W,X,D;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${t}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};b&&(U.Authorization=`Bearer ${b}`),X=Date.now(),W=await Kg(this._fetchFunction(k.toString(),{method:B,headers:U,body:I,signal:N}),M),D=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${t} to ${k.toString()} failed: ${Ee(U,!0)}`),Nt.transientIssue(U.message)):(this._logger.debug(`API request ${t} to ${k.toString()} failed`),U)}if(g&&(g.rpcStart=X,g.rpcEnd=D),!W.ok)throw W.status===499?Nt.fromResponse(W):(W.status===401&&x&&this._auth.removeSession(),W.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${t} to ${k.toString()} failed: ${await W.text()}`),this._logger.error(`API request ${t} to ${k.toString()} response ${W.status}: ${W.statusText}`),Nt.fromResponse(W).status===10&&this._logger.debug(`object size is ${ia(o)} `),Nt.fromResponse(W));let P;try{if(W.headers.get("content-length")==="0")return;P=await W.json()}catch(U){throw this._logger.error(`API request ${t} to ${k.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new Yg(Ee(U),JSON.stringify(P))}}async callApiStream(t,n,i,o,c=b=>b,u,f,g){let b=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(b=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new il}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let k=JSON.stringify(o,(P,U)=>U===void 0?null:U),I=f??e.defaultRequestTimeoutMs,M=AbortSignal.timeout(I),N="POST",B;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${t}`,"x-request-session-id":`${g??this.sessionId}`};b&&(P.Authorization=`Bearer ${b}`),B=await Kg(this._fetchFunction(x.toString(),{method:N,headers:P,body:k,signal:M}),I)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${t} to ${x.toString()} failed: ${Ee(P,!0)}`),P.stack&&this._logger.error(P.stack),Nt.transientIssue(P.message)):P}if(!B.ok)throw B.status===499?Nt.fromResponse(B):(B.status===401&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${t} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${t} to ${x.toString()} response ${B.status}: ${B.statusText}`),Nt.fromResponse(B).status===10&&this._logger.debug(`object size is ${o?ia(o):0} `),Nt.fromResponse(B));let W=B.body.getReader(),X=this._logger;async function*D(P){let U=new TextDecoder,ne="";for(;;){let{value:_e,done:Ue}=await P.read(new Uint8Array);if(Ue)return;for(ne+=U.decode(_e,{stream:!0});ne.includes(` -`);){let Ke=ne.indexOf(` -`),Dt=ne.substring(0,Ke);ne=ne.substring(Ke+1);try{let xe=JSON.parse(Dt);yield c(xe)}catch(xe){X.error(`JSON parse failed for ${Dt}: ${Ee(xe)}`)}}}}return D(W)}_toCompletionItem(t){if(typeof t.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(t)}`);if(t.skipped_suffix!==void 0&&typeof t.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(t)}`);if(t.suffix_replacement_text!==void 0&&typeof t.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(t)}`);return{text:t.text,suffixReplacementText:t.suffix_replacement_text??"",skippedSuffix:t.skipped_suffix??"",filterScore:t.filter_score??void 0}}_extractCompletions(t){return Array.isArray(t.completion_items)?t.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(t.completions)?Go("BackCompletionResult","completions",t.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:on("BackCompletionResult","text",t.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(t){let n=this._extractCompletions(t),i=Go("BackCompletionResult","unknown_blob_names/unknown_memory_names",t.unknown_blob_names??t.unknown_memory_names),o=t.checkpoint_not_found===void 0?!1:Xg("BackCompletionResult","checkpoint_not_found",t.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:o,suggestedPrefixCharCount:t.suggested_prefix_char_count,suggestedSuffixCharCount:t.suggested_suffix_char_count,completionTimeoutMs:t.completion_timeout_ms}}toCheckpointBlobsResult(t){return{newCheckpointId:on("BackCheckpointBlobsResult","new_checkpoint_id",t.new_checkpoint_id)}}async complete(t,n,i,o,c,u,f,g,b,x,k,I,M){let N=this._configListener.config,B={recent_changes:b},W={model:N.modelName,prompt:n,suffix:i,path:o,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:f,blobs:nl(g),recency_info:B,probe_only:I,sequence_id:this._sequenceId.next(),filter_threshold:N.completions.filterThreshold,edit_events:this.toFileDiffsPayload(x??[])};return await this.callApi(t,N,"completion",W,X=>this.toCompleteResult(X),void 0,k,M)}async checkpointBlobs(t){let n=this.createRequestId(),i=this._configListener.config,o={blobs:nl(t)},c=await this.callApi(n,i,"checkpoint-blobs",o,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",o,g=>this.toCheckpointBlobsResult(g),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(t){return{working_directory_changes:t.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(t){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(t){return{blobName:t.blob_name!==void 0?on("BackMemorizeResult","blob_name",t.blob_name):on("BackMemorizeResult","mem_object_name",t.mem_object_name)}}async memorize(t,n,i,o,c){let u=this.createRequestId(),f=this._configListener.config,g=await this.callApi(u,f,"memorize",{model:f.modelName,path:t,t:n,blob_name:i,metadata:o,timeout_ms:c},b=>this.toMemorizeResult(b));for(let b of this.getUniqueExtraURLs())await this.callApi(u,f,"memorize",{model:f.modelName,path:t,t:n,blob_name:i,metadata:o},x=>this.toMemorizeResult(x),b);return g}toBatchUploadResult(t){return{blobNames:t.blob_names}}async batchUpload(t){let n=this.createRequestId(),i=this._configListener.config;try{let o=await this.callApi(n,i,"batch-upload",{blobs:t.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:t.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return o}catch(o){if(!Nt.isAPIErrorWithStatus(o,4))throw o;let c=[];for(let u of t){let f=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(f.blobName)}return{blobNames:c}}}toFindMissingResult(t){return{unknownBlobNames:Go("BackFindMissingResult","unknown_memory_names",t.unknown_memory_names),nonindexedBlobNames:Go("BackFindMissingResult","nonindexed_blob_names",t.nonindexed_blob_names)}}async findMissing(t){let n=this._configListener.config,i=this.createRequestId(),o=n.modelName,c=[...t].sort(),u=await this.callApi(i,n,"find-missing",{model:o,mem_object_names:c},f=>this.toFindMissingResult(f));for(let f of this.getUniqueExtraURLs()){let g=await this.callApi(i,n,"find-missing",{model:o,mem_object_names:c},b=>this.toFindMissingResult(b),f);u.unknownBlobNames=u.unknownBlobNames.concat(g.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(g.nonindexedBlobNames)}return u}async resolveCompletions(t){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:t})}toChatResult(t){let n=on("BackChatResult","text",t.text),i=t.unknown_blob_names===void 0?[]:Go("BackChatResult","unknown_blob_names",t.unknown_blob_names),o=t.checkpoint_not_found===void 0?!1:Xg("BackChatResult","checkpoint_not_found",t.checkpoint_not_found,!1),c=t.workspace_file_chunks===void 0?[]:t.workspace_file_chunks.map(f=>({charStart:pi("BackWorkspaceFileChunk","char_start",f.char_start),charEnd:pi("BackWorkspaceFileChunk","char_end",f.char_end),blobName:on("BackWorkspaceFileChunk","blob_name",f.blob_name)})),u=t.nodes===void 0?[]:t.nodes.map(f=>({id:pi("BackChatResultNode","id",f.id),type:pi("BackChatResultNode","type",f.type),content:on("BackChatResultNode","content",f.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:o,workspaceFileChunks:c,nodes:u}}async chat(t,n,i,o,c,u,f,g,b,x,k,I,M,N){let B=this._configListener.config,W={model:f??B.chat.model,path:M,prefix:k,selected_code:x,suffix:I,message:n,chat_history:i,lang:N,blobs:nl(o),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:b,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:g,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(t,B,"chat",W,X=>this.toChatResult(X),B.chat.url,12e4)}async chatStream(t,n,i,o,c,u,f,g,b,x,k,I,M,N,B,W,X,D){let P=this._configListener.config,U={model:f??P.chat.model,path:M,prefix:k,selected_code:x,suffix:I,message:n,chat_history:i,lang:N,blobs:nl(o),user_guided_blobs:c,context_code_exchange_request_id:b,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:g,external_source_ids:u,disable_auto_external_sources:W,user_guidelines:X,workspace_guidelines:D,feature_detection_flags:{support_raw_output:!0}};return await yr(()=>this.callApiStream(t,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,B),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(t){let n=t.completion_timeout_ms!==void 0?pi("BackModelInfo","completion_timeout_ms",t.completion_timeout_ms):void 0;return{name:on("BackModelInfo","name",t.name),suggestedPrefixCharCount:pi("BackModelInfo","suggested_prefix_char_count",t.suggested_prefix_char_count),suggestedSuffixCharCount:pi("BackModelInfo","suggested_suffix_char_count",t.suggested_suffix_char_count),completionTimeoutMs:n,internalName:t.internal_name&&on("BackModelInfo","internal_name",t.internal_name)}}toLanguage(t){let n=on("BackLanguageInfo","name",t.name),i=on("BackLanguageInfo","vscodeName",t.vscode_name);ra("BackLanguageInfo","extensions",t.extensions);let o=[];for(let c of t.extensions)o.push(on("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:o}}toGetModelsResult(t){let n=on("BackGetModelsResult","default_model",t.default_model);ra("BackGetModelsResult","models",t.models);let i=[];for(let u of t.models)i.push(this.toModel(u));let o=Qg;if(t.feature_flags!==void 0){let u=t.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(o.gitDiff=!0,o.gitDiffPollingFrequencyMSec=u),t.feature_flags.small_sync_threshold!==void 0&&(o.smallSyncThreshold=t.feature_flags.small_sync_threshold),t.feature_flags.big_sync_threshold!==void 0&&(o.bigSyncThreshold=t.feature_flags.big_sync_threshold),t.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(o.enableWorkspaceManagerUi=t.feature_flags.enable_workspace_manager_ui_launch),t.feature_flags.enable_instructions!==void 0&&(o.enableInstructions=t.feature_flags.enable_instructions),t.feature_flags.enable_smart_paste!==void 0&&(o.enableSmartPaste=t.feature_flags.enable_smart_paste),t.feature_flags.enable_smart_paste_min_version!==void 0&&(o.enableSmartPasteMinVersion=t.feature_flags.enable_smart_paste_min_version),t.feature_flags.enable_view_text_document!==void 0&&(o.enableViewTextDocument=t.feature_flags.enable_view_text_document),t.feature_flags.bypass_language_filter!==void 0&&(o.bypassLanguageFilter=t.feature_flags.bypass_language_filter),t.feature_flags.additional_chat_models!==void 0&&(o.additionalChatModels=t.feature_flags.additional_chat_models),t.feature_flags.enable_hindsight!==void 0&&(o.enableHindsight=t.feature_flags.enable_hindsight),t.feature_flags.max_upload_size_bytes!==void 0&&(o.maxUploadSizeBytes=t.feature_flags.max_upload_size_bytes),t.feature_flags.vscode_next_edit_min_version!==void 0&&(o.vscodeNextEditMinVersion=t.feature_flags.vscode_next_edit_min_version),t.feature_flags.vscode_flywheel_min_version!==void 0&&(o.vscodeFlywheelMinVersion=t.feature_flags.vscode_flywheel_min_version),t.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(o.vscodeExternalSourcesInChatMinVersion=t.feature_flags.vscode_external_sources_in_chat_min_version),t.feature_flags.vscode_share_min_version!==void 0&&(o.vscodeShareMinVersion=t.feature_flags.vscode_share_min_version),t.feature_flags.max_trackable_file_count!==void 0&&(o.maxTrackableFileCount=t.feature_flags.max_trackable_file_count),t.feature_flags.max_trackable_file_count_without_permission!==void 0&&(o.maxTrackableFileCountWithoutPermission=t.feature_flags.max_trackable_file_count_without_permission),t.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(o.minUploadedPercentageWithoutPermission=t.feature_flags.min_uploaded_percentage_without_permission),t.feature_flags.vscode_sources_min_version!==void 0&&(o.vscodeSourcesMinVersion=t.feature_flags.vscode_sources_min_version),t.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(o.vscodeChatHintDecorationMinVersion=t.feature_flags.vscode_chat_hint_decoration_min_version),t.feature_flags.next_edit_debounce_ms!==void 0&&(o.nextEditDebounceMs=t.feature_flags.next_edit_debounce_ms),t.feature_flags.enable_completion_file_edit_events!==void 0&&(o.enableCompletionFileEditEvents=t.feature_flags.enable_completion_file_edit_events),t.feature_flags.vscode_enable_cpu_profile!==void 0&&(o.vscodeEnableCpuProfile=t.feature_flags.vscode_enable_cpu_profile),t.feature_flags.verify_folder_is_source_repo!==void 0&&(o.verifyFolderIsSourceRepo=t.feature_flags.verify_folder_is_source_repo),t.feature_flags.refuse_to_sync_home_directories!==void 0&&(o.refuseToSyncHomeDirectories=t.feature_flags.refuse_to_sync_home_directories),t.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(o.enableFileLimitsForSyncingPermission=t.feature_flags.enable_file_limits_for_syncing_permission),t.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(o.enableChatMermaidDiagrams=t.feature_flags.enable_chat_mermaid_diagrams),t.feature_flags.enable_summary_titles!==void 0&&(o.enableSummaryTitles=t.feature_flags.enable_summary_titles),t.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(o.vscodeNewThreadsMenuMinVersion=t.feature_flags.vscode_new_threads_menu_min_version),t.feature_flags.vscode_editable_history_min_version!==void 0&&(o.vscodeEditableHistoryMinVersion=t.feature_flags.vscode_editable_history_min_version)}let c=[];if(t.languages===void 0)c=Jg;else{ra("BackGetModelsResult","languages",t.languages),c=[];for(let u of t.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:o}}async getModelConfig(){let t=this._configListener.config,n=this.createRequestId();return await this.callApi(n,t,"get-models",{},o=>this.toGetModelsResult(o))}async getAccessToken(t,n,i,o){let c=this._configListener.config,u=this.createRequestId(),f={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:t,code:o};return await this.callApi(u,c,"token",f,g=>g.access_token,n)}async clientMetrics(t){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:t},void 0,void 0,e.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(t){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:t},void 0,void 0,e.defaultRequestTimeoutMs)}},il=class extends Error{constructor(){super("The completion URL setting is invalid")}},Zg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(t){if(t===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(t),t}addAll(...t){t.forEach(n=>this.add(n))}adopt(t){this._disposables.push(...t._disposables),t._disposables.length=0}dispose(){for(let t of this._disposables)t.dispose();this._disposables.length=0}},mt=class{_disposables=new ir;_priorityDisposables=new ir;constructor(t=new ir,n=new ir){this._disposables.adopt(t),this._priorityDisposables.adopt(n)}addDisposable(t,n=!1){return n?this._priorityDisposables.add(t):this._disposables.add(t)}addDisposables(...t){this._disposables.addAll(...t)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var u2={Augment:null},l2="augment-vim-extension",ol=class e extends mt{_config;_configChanged=new De;_configMonitor;_logger=Ie("AugmentConfigListener");constructor(){super(),this._configMonitor=new Wo("Config",this._logger),this._refreshConfig(),this.addDisposable(Vg.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let t=this._config;this._config=e.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:t,newConfig:this._config})}static normalizeConfig(t){return{apiToken:t.advanced.apiToken,completionURL:t.advanced.completionURL,modelName:t.advanced.model,conflictingCodingAssistantCheck:t.conflictingCodingAssistantCheck,codeInstruction:{model:t.advanced.codeInstruction.model||void 0},chat:{url:t.advanced.chat.url||void 0,model:t.advanced.chat.model||void 0,stream:t.advanced.chat.stream??void 0,enableEditableHistory:t.advanced.chat.enableEditableHistory??!1,useRichTextHistory:t.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:t.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:t.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:t.advanced.chat.modelDisplayNameToId||u2,userGuidelines:t.chat.userGuidelines||""},autofix:{enabled:t.advanced.autofix.enabled,locationUrl:t.advanced.autofix.locationUrl||void 0,autofixUrl:t.advanced.autofix.autofixUrl||void 0},oauth:{clientID:t.advanced.oauth.clientID||l2,url:t.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:t.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:t.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:t.shortcutsDisplayDelayMS,enableEmptyFileHint:t.enableEmptyFileHint,enableBackgroundSuggestions:t.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:t.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:t.showAllBackgroundSuggestionLineHighlights,enableDataCollection:t.advanced.enableDataCollection,enableDebugFeatures:t.advanced.enableDebugFeatures,enableReviewerWorkflows:t.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:t.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(t.completions.disableCompletionsByLanguage),enableQuickSuggestions:t.completions.enableQuickSuggestions,timeoutMs:t.advanced.completions.timeoutMs,maxWaitMs:t.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:t.advanced.completions.addIntelliSenseSuggestions,filterThreshold:t.advanced.completions.filterThreshold},openFileManagerV2:{enabled:t.advanced.openFileManagerV2.enabled},nextEdit:{enabled:t.advanced.nextEdit.enabled,backgroundEnabled:t.advanced.nextEdit.backgroundEnabled,url:t.advanced.nextEdit.url,locationUrl:t.advanced.nextEdit.locationUrl||t.advanced.nextEdit.url,generationUrl:t.advanced.nextEdit.generationUrl||t.advanced.nextEdit.url,showInstructionTextbox:t.advanced.nextEdit.showInstructionTextbox,model:t.advanced.nextEdit.model,useDebounceMs:t.advanced.nextEdit.useDebounceMs,useCursorDecorations:t.advanced.nextEdit.useCursorDecorations,useSmallHover:t.advanced.nextEdit.useSmallHover,noDiffMode:t.advanced.nextEdit.noDiffMode,animateNoDiffMode:t.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:t.advanced.nextEdit.allowDuringDebugging,useMockResults:t.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:t.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:t.advanced.nextEdit.showDiffByDefault},recencySignalManager:t.advanced.recencySignalManager,preferenceCollection:{enable:t.advanced.preferenceCollection.enable,enableRetrievalDataCollection:t.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:t.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:t.advanced.vcs.watcherEnabled},smartPaste:{url:t.advanced.smartPaste?.url,model:t.advanced.smartPaste?.model},instructions:{model:t.advanced.instructions?.model}}}_getUserConfig(){let t=Vg.getConfiguration("augment");return e.normalizeUserConfig(t)}static normalizeUserConfig(t){return{completions:{enableAutomaticCompletions:ft(t.enableAutomaticCompletions??t.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:t.disableCompletionsByLanguage||t.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:ft(t.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:t.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:ft(t.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:d2(t.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:ft(t.enableEmptyFileHint,!0),enableBackgroundSuggestions:ft(t.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:ft(t.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:ft(!t.advanced?.nextEdit?.noDiffMode,!t.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:ft(t.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(t.advanced?.apiToken||t.apiToken||"").trim().toUpperCase(),completionURL:(t.advanced?.completionURL||t.completionURL||"").trim(),enableWorkspaceUpload:ft(t.advanced?.enableWorkspaceUpload,!0),model:t.advanced?.model||"",enableDebugFeatures:ft(t.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:ft(t.advanced?.enableReviewerWorkflows,!1),enableDataCollection:ft(t.advanced?.enableDataCollection,!1),codeInstruction:{model:t.advanced?.codeInstruction?.model||void 0},chat:{url:t.advanced?.chat?.url||void 0,model:t.advanced?.chat?.model||void 0,stream:t.advanced?.chat?.stream??void 0,enableEditableHistory:t.advanced?.chat?.enableEditableHistory,useRichTextHistory:t.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:t.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:t.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:t.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:ft(t.advanced?.autofix?.enabled,!1),locationUrl:t.advanced?.autofix?.locationUrl||void 0,autofixUrl:t.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:t.advanced?.oauth?.clientID,url:t.advanced?.oauth?.url},completions:{timeoutMs:t.advanced?.completions?.timeoutMs??800,maxWaitMs:t.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:t.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:t.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:ft(t.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:t.advanced?.nextEdit?.enabled,backgroundEnabled:ft(t.advanced?.nextEdit?.backgroundEnabled,!0),url:t.advanced?.nextEdit?.url,locationUrl:t.advanced?.nextEdit?.locationUrl,generationUrl:t.advanced?.nextEdit?.generationUrl,showInstructionTextbox:ft(t.advanced?.nextEdit?.showInstructionTextbox,!1),model:t.advanced?.nextEdit?.model,useDebounceMs:t.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:ft(t.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:ft(t.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:t.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:t.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:t.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:ft(t.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:ft(t.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:ft(t.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:t.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:ft(t.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:ft(t.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:ft(t.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:ft(t.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:t.advanced?.smartPaste?.url,model:t.advanced?.smartPaste?.model},instructions:{model:t.advanced?.instructions?.model}}}}};function ft(e,t){return e==null?t:typeof e=="string"?e.toLowerCase()!=="false":!!e}function d2(e,t){return e==null?t:typeof e=="string"?parseInt(e):e}var tT=kt(Vu());var sa="augment.sessions",eT=["email"],sl=class extends mt{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(o=>{this._isLoggedIn=!!o}),this._context.secrets.onDidChange(async o=>{o.key===sa&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new De;_readyEmitter=new De;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(sa,JSON.stringify({accessToken:n,tenantURL:i,scopes:eT}))}async getSession(){let n=await this._context.secrets.get(sa);if(n){let i=JSON.parse(n);if((0,tT.isEqual)(i.scopes,eT))return i}return null}async removeSession(){await this._context.secrets.get(sa)&&await this._context.secrets.delete(sa)}};var Qo=require("crypto"),ep=require("url");var f2=["email"],al="augment.oauth-state",h2=process.env.TEST_HOSTNAME??".augmentcode.com",g2=10,cl=class{constructor(t,n,i,o){this._context=t;this._config=n;this._apiServer=i;this._authSession=o;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=Ie("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let t=nT((0,Qo.randomBytes)(32)),n=nT(p2(Buffer.from(t))),i=(0,Qo.randomUUID)(),o={codeVerifier:t,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(al,JSON.stringify(o)),this._logger.info("Created OAuth state"),o}async getOAuthState(){this._logger.info("Getting OAuth state");let t=await this._context.secrets.get(al);if(t){let n=JSON.parse(t);if(new Date().getTime()-n.creationTime{let i=performance.now()-e;return t(Math.round(i)),n}}function rT(e,t){return(...n)=>{let i=performance.now(),o=m2(i,t),c=e(...n);return c instanceof Promise?c.then(o):o(c)}}function b2(e,t,n,i,o,c,u){return{blob_name:e,path:t,char_start:n,char_end:i,replacement_text:o,present_in_blob:c,expected_blob_name:u}}function iT(e){return e.map(t=>b2(t.blobName,t.pathName,t.origStart,t.origStart+t.origLength,t.text,t.uploaded,t.expectedBlobName))}var ll=class{constructor(t,n,i,o){this.completionText=t;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=o}toString(){return`text: ${this.completionText} +`)+J+`return __p +}`;var ke=Xb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(ke.source=J,Hd(ke))throw ke;return ke}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return sm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=am(l,h),S=cm(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,lm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=am(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Ce(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(to(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-no(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=co(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Ym("toUpperCase");function Jb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Xb=De(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],De(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Ce(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||xe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,ke=M&&!ae;if(!_&&Q){S=ke?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&ke?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(xe(_)?_:[],h)}return this[a](function(S){return o.apply(xe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(oo,l)||(oo[l]=[]),oo[l].push({name:o,func:a})}}),oo[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):ki?((ki.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Vk=I((m3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((bG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Vg="\\",bj=/^\s+$/,_j=/(?:[^\\]|^)\\$/,vj=/^\\!/,yj=/^\\#/,wj=/\r?\n/g,Sj=/^\.*\/|^\.+$/,Gg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,xj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),Pj=/([0-z])-([0-z])/g,lT=()=>!1,Cj=t=>t.replace(Pj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),kj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Tj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Vg],[/\\\\/g,()=>Vg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Vg?`\\[${n}${kj(i)}${s}`:s==="]"&&i.length%2===0?`[${Cj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Rj=(t,e)=>{let n=aT[t];return n||(n=Tj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Jg=t=>typeof t=="string",Dj=t=>t&&Jg(t)&&!bj.test(t)&&!_j.test(t)&&t.indexOf("#")!==0,Fj=t=>t.split(wj),Qg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Ej=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vj,"!").replace(yj,"#");let s=Rj(t,e);return new Qg(n,t,i,s)},Ij=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Jg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>Sj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Kg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){xj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Dj(e)){let n=Ej(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Jg(e)?Fj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ij),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Gg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Gg)+Gg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Kg(t),Mj=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Mj;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var i2={};nA(i2,{API_ENDPOINT:()=>e2});module.exports=rA(i2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=r_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=t_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&n_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},Ni;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(Ni||(Ni={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=r_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ee=gt(kS());var TS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&TS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function RS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var DS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,DS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var FS=require("crypto"),og={randomUUID:FS.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return RS(i)}var $s=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},No=class extends Error{constructor(e="Skipping inline completion."){super(e)}},wt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Fe(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Hk=gt(Dk());var Ju=gt(require("fs")),ea=gt(Ek()),Mk=gt(require("os")),ta=gt(require("path")),KW=process.env.TEST_TMPDIR?ta.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ta.default.join(Mk.default.homedir(),".local","state"),Ik=ta.default.join(KW,"augment","augment-server.log"),Zs;function JW(){if(Zs)return Zs;let t=ta.default.dirname(Ik);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"info").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?ea.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "info"`,ea.default.setLevel("info")),ea.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Ik,`${c} [${i.toUpperCase()}] ${s} +`)}},Zs=ea.default.getLogger("server"),n&&Zs.warn(n),Zs}function _e(t){let e=JW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var ra=gt(Go()),Qo=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,ra.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: +${this.diff(this.value,e).map(n=>` - ${n}`).join(` +`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ra.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ra.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var $k=require("events"),Dn=gt(require("fs")),Wk=gt(ng());var Ak;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>Se}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,Te,ge,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=Te||m,this.fragment=ge||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:Te,query:ge,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),Te===void 0?Te=this.path:Te===null&&(Te=m),ge===void 0?ge=this.query:ge===null&&(ge=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&Te===this.path&&ge===this.query&&me===this.fragment?this:new A(se,re,Te,ge,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,Te=-1;for(let ge=0;ge=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)Te!==-1&&(re+=encodeURIComponent(X.substring(Te,ge)),Te=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[me];St!==void 0?(Te!==-1&&(re+=encodeURIComponent(X.substring(Te,ge)),Te=-1),re+=St):Te===-1&&(Te=ge)}}return Te!==-1&&(re+=encodeURIComponent(X.substring(Te))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:Te,authority:ge,path:me,query:St,fragment:We}=X;if(Te&&(re+=Te,re+=":"),(ge||Te==="file")&&(re+=v,re+=v),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var Se;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,Te=!1;re[0]!==Dt&&(re=Dt+re,Te=!0);let ge=Je.resolve(re,...se);return Te&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(Se||(Se={}))})(),Ak=i})();var{URI:Ze,Utils:Tt}=Ak;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=Ni.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Hi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Nk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function qk(t){let e=await nn.lstat(t);return Nk(e)}function Ok(t){try{return Vi(t).type==="File"}catch{return!1}}async function Lk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Vi(t){let e=Hi.lstatSync(t);return Nk(e)}function ia(t){let e=[],n=Hi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function oa(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Bk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Uk(t){return Hi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=Wk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},bi=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},_i=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new $k.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,jk=[];function zk(t){jk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new _i(t))},get workspaceFolders(){return jk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Uk(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},sa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Hk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Vk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function aa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function vi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){aa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ca(t,e=""){let n=[];if(typeof t!="object"||t===null)return Gk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${ca(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ca(s,e+" "))):n.push(`${e}${i}: ${Gk(s)}`);return n.join(` +`)}function Gk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ua(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>wt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return $s()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Gi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Fe(U,!0)}`),wt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?wt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),wt.fromResponse(B).status===10&&this._logger.debug(`object size is ${ca(s)} `),wt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Fe(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Gi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Fe(P,!0)}`),P.stack&&this._logger.error(P.stack),wt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?wt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),wt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?ca(s):0} `),wt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` +`);){let Je=te.indexOf(` +`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let Se=JSON.parse(Dt);yield c(Se)}catch(Se){K.error(`JSON parse failed for ${Dt}: ${Fe(Se)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!wt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:vi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:vi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:vi("BackChatResultNode","id",d.id),type:vi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?vi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:vi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:vi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);aa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);aa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version)}let c=[];if(e.languages===void 0)c=Og;else{aa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Gi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Kk=gt(Go());var la="augment.sessions",Qk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===la&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(la,JSON.stringify({accessToken:n,tenantURL:i,scopes:Qk}))}async getSession(){let n=await this._context.secrets.get(la);if(n){let i=JSON.parse(n);if((0,Kk.isEqual)(i.scopes,Qk))return i}return null}async removeSession(){await this._context.secrets.get(la)&&await this._context.secrets.delete(la)}};var Yo=require("crypto"),jg=require("url");var lj=["email"],ol="augment.oauth-state",dj=process.env.TEST_HOSTNAME??".augmentcode.com",fj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Jk((0,Yo.randomBytes)(32)),n=Jk(hj(Buffer.from(e))),i=(0,Yo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=gj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function pj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>pj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} suffixReplacementText: ${this.suffixReplacementText} skippedSuffix: ${this.skippedSuffix} start: ${this.range.startOffset} - end: ${this.range.endOffset}`}};var dl=class{constructor(t,n,i){this._extension=t;this._configListener=n;this._metricsReporter=i;this.generateCompletion=rT(this.generateCompletion.bind(this),o=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:o})})}_logger=Ie("CompletionsModel");_completionSerial=0;async generateCompletion(t,n,i){let o=this._extension.workspaceManager;if(o===void 0)return;let c=o.completionServer,u=c.createRequestId(),f=o.safeResolvePathName(t.uri);if(f===void 0)return;let[g,b]=[f.rootPath,f.relPath],x=t.offsetAt(n),[k,I,M,N,B]=this._extractPrefixAndSuffix(t,x);x+=B;let W={prefixBegin:M,cursorPosition:x,suffixEnd:N},D=(await this._requestCompletion(o,c,u,t,k,I,W,f,i)).completionItems;if(D.length===0)return{completions:[],document:t,requestId:u,repoRoot:g,pathName:b,prefix:k,suffix:I,occuredAt:new Date,isReused:!1};D.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],ne=D[0];return ne.skippedSuffix.includes(` -`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),ne.skippedSuffix="",ne.suffixReplacementText=""),P.push(new ll(ne.text,ne.suffixReplacementText,ne.skippedSuffix,{startOffset:t.offsetAt(n),endOffset:t.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:t,requestId:u,repoRoot:g,pathName:b,prefix:k,suffix:I,isReused:!1}}async _requestCompletion(t,n,i,o,c,u,f,g,b){let x=o.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(x))throw new Eo(`Language ${x} is disabled.`);let I=this._completionSerial++;this._logger.debug(`Requesting new completion - #${I} submitted; requestId: ${i}`);let M=t.translateRange(g,f.prefixBegin,f.suffixEnd),N=M===void 0?f:{prefixBegin:M.beginOffset,cursorPosition:f.cursorPosition,suffixEnd:M.endOffset},B=t.getContext(),W=B.blobs,X=this._getRecentChanges(B),D=void 0;try{let P=await n.complete(i,c,u,g.relPath,M?.blobName,N,x,W,X,D,void 0,void 0,b);return P.unknownBlobNames.length>0&&t.handleUnknownBlobs(B,P.unknownBlobNames),P.checkpointNotFound&&t.handleUnknownCheckpoint(i,W.checkpointId),v2(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(Nt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${I} cancelled in back end; requestId ${i}`),new Eo("Cancelled in back end");if(Nt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${I} retriable error on back end; requestId ${i}`),new Eo("Retriable error on back end");let U=Ee(P);throw this._logger.warn(`Completion #${I} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(t,n){let i=this._extension.modelInfo,o=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,f]=[void 0,0];u!==void 0&&(n+=f);let g=Math.max(0,n-o),b=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let x=t.positionAt(g),k=t.positionAt(n),I=t.positionAt(n),M=t.positionAt(b),N=dt.create(x,k),B=dt.create(I,M),W=t.getText(N),X=t.getText(B);return[W,X,g,n+X.length,0]}_getRecentChanges(t){let n=t.recentChunks,i=t.lastChatResponse;if(i!==void 0){let o={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+t)%this._maxItems]}_normalizeSliceIdx(t){return t>=0?Math.min(t,this.length):Math.max(this.length+t,0)}_translateIdx(t){return(this._insertCount+this._emptySlots+t)%this._maxItems}slice(t,n){let i=this._normalizeSliceIdx(t??0),o=this._normalizeSliceIdx(n??this.length);if(i>o)return[];let c=o-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let t=0;t{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let t=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(o){throw this._logger.error(`Error uploading metrics: ${o} ${o instanceof Error?o.stack:""}`),o}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var hl=class e extends Jo{constructor(n){super("ClientMetricsReporter",e.defaultMaxRecords,e.defaultUploadMsec,e.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function tp(e){let t=Math.floor(e/1e3),n=e%1e3*1e6;return[t,n]}var gl=class e extends Jo{constructor(n,i,o,c){super("CompletionAcceptanceReporter",i??e.defaultMaxRecords,o??e.defaultUploadMsec,c??e.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,o,c){let[u,f]=tp(i),[g,b]=tp(o);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:f,resolve_time_sec:g,resolve_time_nsec:b,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var pl=class e{constructor(t){this._extensionContext=t}static storageSubDir="augment-global-state";update(t,n){return this._extensionContext.globalState.update(t,n)}get(t){return this._extensionContext.globalState.get(t)}async save(t,n,i){await this._ensureStorageUriExists(i);let o=this._getFileUri(t,i);return await Yu(o.fsPath,JSON.stringify(n))}async load(t,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(t,n);try{let o=await Vo(i.fsPath);return JSON.parse(o)}catch{return}}async _ensureStorageUriExists(t){let n=this._getStorageUri(t);await GR(n.fsPath)||await ta(n.fsPath)}_getStorageUri(t){return t?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,e.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,e.storageSubDir)}_getFileUri(t,n){return Tt.joinPath(this._getStorageUri(n),`${t}.json`)}};var NT=kt(Vu());var np=class{async read(t){try{return await QR(t)}catch{return}}stat(t){try{return Zs(t)}catch{return}}};function oT(){return new np}var sT=kt(require("crypto"));function aT(e){let t=sT.createHash("sha256");return t.update(e),t.digest("hex")}var fp=kt(bT());var aa=class{accepted=!0},mi=class{accepted=!1};var st=kt(require("node:path"));var ca=st.posix.sep,L2=new RegExp("/\\/g");function _T(e){return st.isAbsolute(e)}function O2(e){return st.sep==="\\"?e.replace(L2,ca):e}function vT(e){return O2(e)}function yT(e){return e.with({path:st.dirname(e.fsPath)})}function bl(e){let t=st.dirname(e);return t==="."?"":B2(t)}function B2(e){return e.endsWith(ca)?e:e+ca}function Xo(e){for(;;){if(e===st.sep||e===ca||!e.endsWith(ca)&&!e.endsWith(st.sep))return e;e=e.slice(0,-1)}}function ua(e,t){let n=typeof e=="string"?e:e.fsPath,i=typeof t=="string"?t:t.fsPath;return st.relative(n,i)}function $r(e,t){let n=ua(e,t);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function tt(e,t,n=!1){let i=st.join(e,t);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function la(e,t){let n=ua(e,t);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(e,t){return la(e,t)!==void 0}function _l(e,t){let n=ua(e,t);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function vl(e,t,n){let i=typeof e=="string"?Ze.file(e):e;for(;;){try{let c=Tt.joinPath(i,t),u=await HR(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let o=st.dirname(i.fsPath);if(st.relative(o,i.fsPath).length===0)return;i=i.with({path:o})}}function U2(e){return!1}function Yt(e){return Xo(e.fsPath)}function xT(e){return e.fsPath}function Ko(e){if(e.scheme==="file"||e.scheme==="untitled"||U2(e))return Yt(e)}var bi=class extends aa{explicit=!1;format(){return"Tracked"}},cp=class extends aa{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},up=class extends mi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},yl=class{constructor(t,n,i,o){this.dirName=t;this.ignoreSource=n;this.rules=i;this.next=o}},lp=class e{constructor(t,n,i){this._rootUri=t;this._ignoreSource=n;this._top=i}static async buildNew(t,n,i){let o=new Array;if($r(i,n)!==""){let u=n;for(;;){u=yT(u);let f=$r(i,u),g=await t.getRules(u);if(g&&o.push([f,t,g]),f==="")break}}let c;for(let u=o.length-1;u>=0;u--){let[f,g,b]=o[u];c=new yl(f,g,b,c)}return new e(i,t,c)}async buildAtop(t,n){let i=await this._ignoreSource.getRules(t,n);if(i===void 0)return this;let o=$r(this._rootUri,t),c=new yl(o,this._ignoreSource,i,this._top);return new e(this._rootUri,this._ignoreSource,c)}getPathInfo(t){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,t))throw new Error(`candidatePath "${t}" is not below ignore file's parent "${n.dirName}"`);let i=t.slice(n.dirName.length),o=n.rules.test(i);if(o.ignored)return new up(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(o.unignored)return new cp(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new bi}},dp=class e{constructor(t,n){this._ignoreSources=t;this._ignoreStacks=n}static async buildNew(t,n,i){let o=new Array;for(let c of t){let u=await lp.buildNew(c,n,i);o.push(u)}return new e(t,o)}async buildAtop(t,n){let i=new Array,o=0;for(let c=0;c=0;n--){let o=this._ignoreStacks[n].getPathInfo(t);if(o.explicit)return o}return new bi}};async function $2(e,t){let n=Tt.joinPath(e,t);try{let i=await Vo(n.fsPath),o=(0,fp.default)({ignorecase:!1});return o.add(i),o}catch{}}var Yo=class{constructor(t=[]){this._ignoreSources=t}async build(t,n){return await dp.buildNew(this._ignoreSources,t,n)}},da=class{constructor(t){this.filename=t}getName(t){return xT(Tt.joinPath(t,this.filename))}async getRules(t,n){if(!(n!==void 0&&!(n.find(([o,c])=>c==="File"&&this.filename===o)!==void 0)))return $2(t,this.filename)}},xl=class{constructor(t){this._sourceFolderRootPath=t}getName(){return"default Augment rules"}getRules(t){return new Promise(n=>{if(Yt(t)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,fp.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var wl=class{constructor(t){this.name=t}start=Date.now();increments=[];charge(t){this.increments.push({name:t,end:Date.now()})}*[Symbol.iterator](){let t=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-t],t=i;yield["total",t-this.start]}format(){return(this.name?`${this.name}: + end: ${this.range.endOffset}`}};var ul=class{constructor(e,n,i){this._extension=e;this._configListener=n;this._metricsReporter=i;this.generateCompletion=Xk(this.generateCompletion.bind(this),s=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:s})})}_logger=_e("CompletionsModel");_completionSerial=0;async generateCompletion(e,n,i){let s=this._extension.workspaceManager;if(s===void 0)return;let c=s.completionServer,u=c.createRequestId(),d=s.safeResolvePathName(e.uri);if(d===void 0)return;let[f,m]=[d.rootPath,d.relPath],v=e.offsetAt(n),[x,D,N,A,L]=this._extractPrefixAndSuffix(e,v);v+=L;let B={prefixBegin:N,cursorPosition:v,suffixEnd:A},F=(await this._requestCompletion(s,c,u,e,x,D,B,d,i)).completionItems;if(F.length===0)return{completions:[],document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,occuredAt:new Date,isReused:!1};F.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],te=F[0];return te.skippedSuffix.includes(` +`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let v=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(v))throw new No(`Language ${v} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,v,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),mj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(wt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new No("Cancelled in back end");if(wt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new No("Retriable error on back end");let U=Fe(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let v=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new bi(v,x),L=new bi(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends es{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function zg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends es{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=zg(i),[f,m]=zg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Yu(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Ko(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Lk(n.fsPath)||await oa(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var eT=gt(require("crypto")),fa=2023102300,da=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},ts=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=eT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new da(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var MT=gt(Go());var Hg=class{async read(e){try{return await Bk(e)}catch{return}}stat(e){try{return Vi(e)}catch{return}}};function tT(){return new Hg}var nT=gt(require("crypto"));function rT(t){let e=nT.createHash("sha256");return e.update(t),e.digest("hex")}var tp=gt(hT());var ha=class{accepted=!0},yi=class{accepted=!1};var st=gt(require("node:path"));var ga=st.posix.sep,Aj=new RegExp("/\\/g");function gT(t){return st.isAbsolute(t)}function Nj(t){return st.sep==="\\"?t.replace(Aj,ga):t}function pT(t){return Nj(t)}function mT(t){return t.with({path:st.dirname(t.fsPath)})}function gl(t){let e=st.dirname(t);return e==="."?"":qj(e)}function qj(t){return t.endsWith(ga)?t:t+ga}function ns(t){for(;;){if(t===st.sep||t===ga||!t.endsWith(ga)&&!t.endsWith(st.sep))return t;t=t.slice(0,-1)}}function pa(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return st.relative(n,i)}function $r(t,e){let n=pa(t,e);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function et(t,e,n=!1){let i=st.join(t,e);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function ma(t,e){let n=pa(t,e);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(t,e){return ma(t,e)!==void 0}function pl(t,e){let n=pa(t,e);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?Ze.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await qk(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=st.dirname(i.fsPath);if(st.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function Oj(t){return!1}function Jt(t){return ns(t.fsPath)}function bT(t){return t.fsPath}function Wr(t){if(t.scheme==="file"||t.scheme==="untitled"||Oj(t))return Jt(t)}var wi=class extends ha{explicit=!1;format(){return"Tracked"}},Xg=class extends ha{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},Yg=class extends yi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},Zg=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if($r(i,n)!==""){let u=n;for(;;){u=mT(u);let d=$r(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=$r(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new Yg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new Xg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new wi}},ep=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await Zg.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new wi}};async function Lj(t,e){let n=Tt.joinPath(t,e);try{let i=await Ko(n.fsPath),s=(0,tp.default)({ignorecase:!1});return s.add(i),s}catch{}}var rs=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await ep.buildNew(this._ignoreSources,e,n)}},ba=class{constructor(e){this.filename=e}getName(e){return bT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Lj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,tp.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: `:"")+Array.from(this).map(([n,i])=>` - ${n}: ${i} ms`).join(` -`)}},Pl=class{_value=0;_add(t=1){this._value+=t}_invalidate(){this._value=Number.NaN}get value(){return this._value}},hp=class extends Pl{increment(t=1){this._add(t)}},gp=class extends Pl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},Zo=class{constructor(t){this.name=t}counters=new Map;timings=new Map;counterMetric(t){let n=this.counters.get(t);return n===void 0&&(n=new hp,this.counters.set(t,n)),n}timingMetric(t){let n=this.timings.get(t);return n===void 0&&(n=new gp,this.timings.set(t,n)),n}format(){let t=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` -`),i=" - timing stats:",o=Array.from(this.timings.entries()).map(([c,u])=>` - ${c}: ${u.value} ms`).join(` -`);return t+` +`)}},yl=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},np=class extends yl{increment(e=1){this._add(e)}},rp=class extends yl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},is=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new np,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new rp,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` +`),i=" - timing stats:",s=Array.from(this.timings.entries()).map(([c,u])=>` - ${c}: ${u.value} ms`).join(` +`);return e+` `+n+` `+i+` -`+o}};var wT=kt(require("os"));function PT(e){let t=wT.default.homedir();return _l(e,t)}var fa=kt(require("node:path"));async function Cl(e,t,n,i){let o=await n.build(e,t),c=new Map;c.set("",o),c.set(".",o);let u=200,f=Date.now(),g=[];g.push([e,o]);let b;for(;(b=g.pop())!==void 0;){Date.now()-f>=u&&(await new Promise(W=>setTimeout(W,0)),f=Date.now());let[k,I]=b,M=$r(t,k),N=ea(k.fsPath),B=await I.buildAtop(k,N);B!==I&&c.set(M,B);for(let[W,X]of N){if(Date.now()-f>=u&&(await new Promise(_e=>setTimeout(_e,0)),f=Date.now()),W==="."||W===".."||X!=="Directory")continue;let P=Tt.joinPath(k,W),U=tt(M,W,!0);B.getPathInfo(U).accepted&&g.push([P,B])}}return new mp(c,i)}var es=class{constructor(t,n,i,o){this._name=t;this._startUri=n;this._rootUri=i;this._pathFilter=o;if(!fa.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!fa.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Yt(i),Yt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Yt(this._startUri)} must be inside rootUri ${Yt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new Zo("Path metrics");_logger=Ie("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let t=200,n=Date.now(),i=new Array;i.push(this._startUri);let o;for(;(o=i.pop())!==void 0;){Date.now()-n>=t&&(await new Promise(b=>setTimeout(b,0)),n=Date.now());let u=$r(this._rootUri,o),f=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let g=ea(o.fsPath);this._readDirMs.stop();for(let[b,x]of g){if(Date.now()-n>=t&&(await new Promise(W=>setTimeout(W,0)),n=Date.now()),b==="."||b==="..")continue;this._filterMs.start();let I=Tt.joinPath(o,b),M=tt(u,b,x==="Directory"),N=f.getPathInfo(M,x);this._filterMs.stop();let B=M;x==="File"?this._filesEmitted.increment():x==="Directory"?(B=Xo(M),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[I,B,x,N],this._yieldMs.stop(),x==="Directory"&&N.accepted&&i.push(I)}}this._totalMs.stop()}},pp=class extends mi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},Sl=class{_fileExtensions;constructor(t){if(t){this._fileExtensions=new Set;for(let n of t)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(t,n="File"){return this.getPathInfo(t,n).accepted}getPathInfo(t,n="File"){if(n==="File"){let o=fa.extname(t);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(o.toLowerCase()))return new pp(o)}else n==="Directory"&&!t.endsWith("/")&&(t+="/");let i=this._getIgnoreStack(bl(t));return i===void 0?new bi:i.getPathInfo(t)}},mp=class extends Sl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new bp(i,this._fileExtensions)}_getIgnoreStack(n){if(_T(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let o=0;o<1e4;o++){let c=this._ignorePathMap.get(i);if(c)return c;if(bl(i)===i)return;i=bl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},bp=class extends Sl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var kl=class e{static defaultStartSeq=1e4;_next;constructor(t=e.defaultStartSeq){this._next=t}next(){return this._next++}};var _p=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Rl=class e extends mt{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new _p;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(e._disposedError):this._execute())),this._kickPromise)}};var vp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(t){this._items.delete(t)}_insert(t,n,i=!1){let o=this._items.has(t);return!i&&o?!1:(this._items.set(t,n),!o)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let t=this._items;this._items=new Map;for(let n of t){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends vp{constructor(n){super();this._processItem=n}insert(n,i,o=!1){return this._insert(n,i,o)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},Tl=class{constructor(t){this._processItem=t}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(t){return this._keys.has(t)?!1:(this._keys.add(t),this._items.push(t),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let t=this._items;this._keys.clear(),this._items=new Array;for(let n of t){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},_i=class{constructor(t,n){this._toKick=t;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var W2=Object.freeze({git:{name:".git",type:"Directory"}});async function ST(e){for(let[t,n]of Object.entries(W2)){let i=await vl(e,n.name,n.type);if(i!==void 0)return{root:i,toolName:t}}}var ha=class extends Error{constructor(n,i){let o=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${o}, retry = ${i}`);this.toThrow=n;this.retry=i}},yp=class{throwError(t,n){throw new ha(t,n)}},xp=class{progressReporter;completedItems=0;totalItems;constructor(t,n){this.progressReporter=t,this.totalItems=n,this.update(0,this.totalItems)}update(t,n){this.completedItems+=t,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},wp=class{constructor(t,n){this.item=t;this.process=n}itemCount(){return 1}start(t){return this.process(this.item,t)}},Pp=class{constructor(t,n){this.items=t;this.process=n}itemCount(){return this.items.size}start(t){return this.process(this.items,t)}},Dl=class{queue=new Set;get size(){return this.queue.size}add(t){this.queue.add(t)}delete(t){this.queue.delete(t)}},Sp=class extends Dl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new wp(i,this.process)}},Cp=class extends Dl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let o=0;o{let u=[];function f(){for(let g of u)g.dispose()}u.push(this.eventEmitters[e.queueStatusChanged].event(()=>{f(),this.stopping?c(this.shutdownError):o()})),n&&u.push(this.eventEmitters[e.itemFailed].event(g=>{f(),c(g)}))}))}update(t=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=t;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(t,n)}}notifyStatusChanged(){this.eventEmitters[e.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(t){let n=t instanceof ha?t.toThrow:t;this.eventEmitters[e.itemFailed].fire(n)}delay(t){return new Promise(n=>setTimeout(n,t))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let t=this.queue.dequeue();this.itemsInProgress=t.itemCount();let n=0,i=0;do{try{await t.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(o){if(this.notifyItemFailed(o),!(o instanceof ha&&o.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function ts(e,t){let n=new Set(t);return e.filter(i=>!n.has(i))}var Il=class e extends mt{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new De;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(t,n,i,o){super(),this._logger=Ie("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=t,this._featureFlagManager=n,this._checkpointThreshold=o??e.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new El("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(t){let n=this._checkpointBlobNames.get(t);n!==void 0?(this._checkpointBlobNames.set(t,n+1),n===0&&this._toRemove.delete(t)):this._toAdd.set(t,(this._toAdd.get(t)??0)+1)}derefBlob(t){!this.derefFromCheckpoint(t)&&!this.derefFromAdded(t)&&this._logger.error(`derefBlob: blob ${t} not found in checkpoint or toAdd`)}derefFromCheckpoint(t){let n=this._checkpointBlobNames.get(t);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${t} has reference count ${n}. In toRemove? ${this._toRemove.has(t)}`),!1):(this._checkpointBlobNames.set(t,n-1),n===1&&this._toRemove.add(t),!0)}derefFromAdded(t){let n=this._toAdd.get(t);return n===void 0?!1:n<=1?(this._toAdd.delete(t),n===1):(this._toAdd.set(t,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(t,n){let i=new Set(this._toAdd.keys()),o=new Set(this._toRemove);for(let c of t)this._checkpointBlobNames.has(c)||i.add(c),o.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&o.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(o)}}blobsPayload(t){let n=this.getCheckpointedBlobNames(),i=ts(t,n),o=ts(n,t);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:o}}expandBlobs(t){if(t.checkpointId===void 0)return t.addedBlobs;if(t.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${t.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...t.addedBlobs),t.deletedBlobs.length>0){let i=new Set(t.deletedBlobs);return n.filter(o=>!i.has(o))}return n}validateMatching(t,n,i=!1){if(t.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${t.checkpointId} vs ${n.checkpointId}`),!1;let o=!0,c=ts(t.addedBlobs,n.addedBlobs),u=ts(n.addedBlobs,t.addedBlobs);return(c.length>0||u.length>0)&&(o=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=ts(t.deletedBlobs,n.deletedBlobs),u=ts(n.deletedBlobs,t.deletedBlobs),(c.length>0||u.length>0)&&(o=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),o}updateBlob(t,n,i){this._logger.verbose(`notifyBlobChange ${t}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[t,n]of this._checkpointBlobNames)n>0?this._toAdd.set(t,n):this._toRemove.delete(t)||this._logger.warn(`blob with 0 references was not found in toRemove: ${t}`);for(let t of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${t}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(t,n){let{checkpointId:i,addedBlobs:o,deletedBlobs:c}=t;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${o.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(t)}catch(f){let g=f instanceof Error?f.message:`${f}`,b=this._checkpointId?this._checkpointId:"{initial}";Nt.isAPIErrorWithStatus(f,5)?(this._logger.warn(`checkpoint-blobs from ${b} failed with invalid argument: ${g}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(f,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${g}.`),n.throwError(f,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let f of o){let g=this._toAdd.get(f);g===void 0?(this._checkpointBlobNames.set(f,0),this._toRemove.add(f)):(this._checkpointBlobNames.set(f,g),this._toAdd.delete(f))}for(let f of c){let g=this._checkpointBlobNames.get(f);g===void 0?this._logger.warn(`In _checkpoint: deleted blob ${f} not found in checkpoint`):g>0&&this._toAdd.set(f,g),this._checkpointBlobNames.delete(f),this._toRemove.delete(f)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let t=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:t,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function ga(e,t,n,i){let o=0;for(let c of n)if(e.log(t,` ${c}`),o++,i!==void 0&&o>=i){e.log(t," ...");break}}var CT=kt(require("crypto")),ma=2023102300,pa=class extends Error{constructor(t){super(`content exceeds maximum size of ${t}`)}},Fl=class{constructor(t){this.maxBlobSize=t}_textEncoder=new TextEncoder;_hash(t,n){let i=CT.createHash("sha256");return i.update(t),i.update(n),i.digest("hex")}calculateOrThrow(t,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new pa(this.maxBlobSize);return this._hash(t,n)}calculate(t,n){try{return this.calculateOrThrow(t,n,!0)}catch{return}}calculateNoThrow(t,n){return this.calculateOrThrow(t,n,!1)}};var kp=class{constructor(t,n){this.maxItems=t;this.maxByteSize=n}items=new Map;byteSize=0;addItem(t,n){let i=this.items.get(t);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(t,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},Rp=class{constructor(t){this.maxItemCount=t}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(t,n){if(this.items.has(t))return!1;this.items.set(t,n)}},Al=class e extends mt{constructor(n,i,o,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=o;this._pathMap=c;this._logger=Ie(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=e.maxProbeBatchSize:(ue.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${e.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,e.maxProbeBatchSize),e.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new _i(this._probeRetryWaiters,e.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new _i(this._probeRetryBackoffWaiters,e.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new De;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new De;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new Zo("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=vT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return oa(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let o=this._pathMap.getRepoRoot(n);if(o!==void 0)return tt(o,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,o,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,o,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,o,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,o,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,o,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,o,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,o,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,o,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,o,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof pa){this._largeFiles.increment();let f=this._fileTooLargeString(i.length);this._pathMapInvalidate(o,n,c,f)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(o,n,c,Ee(u));return}}async _calculate(n){if(n===void 0)return;let[i,[o,c]]=n;if(!this._pathMapVerify(o,c,i))return;let u=this._makeAbsPath(o,c);if(u===void 0){this._inflightItemRemove(i);return}let f=this._getMtime(u,o,c,i);if(f===void 0)return;let g,b=this._pathMap.getBlobInfo(o,c,f);if(b!==void 0){this._mtimeCacheHits.increment();let[k,I]=b;if(I>0){this._pathMapUpdate(o,c,i,k,f);return}g=k}else{let k=await this._readAndValidate(u,o,c,i);if(k===void 0||(this._mtimeCacheMisses.increment(),g=this._calculateBlobName(c,k,o,i),g===void 0))return}this._pathsAccepted.increment();let x={folderId:o,relPath:c,blobName:g,mtime:f,startTime:Date.now()};this._enqueueForProbeRetry(i,x)}_newProbeBatch(){return new Rp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,f]=n;if(!this._pathMapVerify(f.folderId,f.relPath,u)||(this._probeBatch.addItem(u,f),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let o=new Set;for(let[u,f]of i.items)o.add(f.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${o.size} blobs`),this._probeMs.start();let c;try{c=await yr(async()=>this._apiServer.findMissing([...o]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),ga(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),ga(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),f=new Set(c.nonindexedBlobNames),g=this._beginUploadBatch();for(let[b,x]of i.items)this._pathMapVerify(x.folderId,x.relPath,b)&&(u.has(x.blobName)?this._enqueueForUpload(b,x.folderId,x.relPath,!1):f.has(x.blobName)?this._enqueueForProbeRetry(b,x):this._pathMapUpdate(x.folderId,x.relPath,b,x.blobName,x.mtime));g.dispose()}else for(let[u,f]of i.items)this._enqueueForProbeRetry(u,f)}_newUploadBatch(){return new kp(e.maxUploadBatchBlobCount,e.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[f,{seq:g,folderId:b,relPath:x}]=n;if(!this._pathMapVerify(b,x,g))return;let k=this._getMtime(f,b,x,g);if(k===void 0)return;let I=await this._readAndValidate(f,b,x,g);if(I===void 0)return;let M=this._calculateBlobName(x,I,b,g);if(M===void 0)return;let N;try{N=this._textDecoder.decode(I)}catch(W){this._pathMapInvalidate(b,x,g,Ee(W)),this._encodingErrors.increment();return}let B={seq:g,folderId:b,pathName:x,text:N,blobName:M,mtime:k,byteSize:I.length,metadata:[]};if(this._uploadBatch.addItem(M,B))return;i=B}let o=this._grabUploadBatch();if(o===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${o.items.size} blobs`);let c=new Array;for(let[f,g]of o.items)c.push(g[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[f,g]of o.items){let b=u.get(f);if(b===void 0)for(let x of g)this._pathMapInvalidate(x.folderId,x.pathName,x.seq,this._fileUploadFailure);else for(let x of g){let k={folderId:x.folderId,relPath:x.pathName,blobName:b,mtime:x.mtime,startTime:Date.now()};this._enqueueForProbeRetry(x.seq,k)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await yr(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Ee(c)}`)}let o=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let f=await yr(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);o.set(u.blobName,f.blobName)}catch{}}}_inflightItemAdd(n,i,o){this._itemsInFlight.set(n,[i,o])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,o){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(o),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=o?(this._inflightItemRemove(o),!1):!0}_pathMapUpdate(n,i,o,c,u){this._inflightItemRemove(o),this._pathMap.update(n,i,o,c,u)}_pathMapInvalidate(n,i,o,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,o,c),this._inflightItemRemove(o),this._pathMap.markUntrackable(n,i,o,c)}_enqueueForCalculate(n,i){let o=this._nextSeq();this._inflightItemAdd(o,n,i),this._toCalculate.insert(o,[n,i])?this._toCalculate.kick():this._inflightItemRemove(o)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,o]=n;this._logger.verbose(`probe enqueue ${o.blobName} -> ${i}, ${o.folderId}:${o.relPath}`),this._toProbe.insert(i,o)}return Promise.resolve()}_beginUploadBatch(){return new Or(()=>this._toUpload.kick())}_enqueueForUpload(n,i,o,c=!0){this._logger.verbose(`upload enqueue ${i}:${o} -> ${n}`);let u=this._makeAbsPath(i,o);if(u===void 0){this._inflightItemRemove(n);return}let f=this._toUpload.get(u);if(f!==void 0){let g=f.seq;if(g>n)this._inflightItemRemove(g);else if(g ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var Wr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},Tp=class{constructor(t=ma){this.namingVersion=t}entries=new Array};function z2(e){if(!(e.mtime===void 0||typeof e.mtime!="number"||!e.mtime)&&!(e.name===void 0||typeof e.name!="string"||!e.name))return{mtime:e.mtime,name:e.name}}function H2(e){return tt(e,Wr.cacheFileName)}function Nl(e){let t=H2(e);return VR(t)}async function RT(e,t){let n=tt(e,Wr.cacheFileName),i=tt(t,Wr.cacheFileName);await ta(t),await jg(n,i)}async function TT(e,t){let n=new Map,i=Ie(`MtimeCache[${e}]`),o=tt(t,Wr.cacheFileName);i.info(`reading blob name cache from ${o}`);try{let c=0,u=await Vo(o),f=JSON.parse(u);if(f.namingVersion===void 0||f.namingVersion!==ma)i.info(`blob naming version ${f.namingVersion} !== ${ma}`);else if(Array.isArray(f.entries))for(let[g,b]of f.entries){let x=z2(b);x!==void 0&&(n.set(g,{mtime:x.mtime,name:x.name}),c++)}i.info(`read ${c} entries from ${o}`)}catch(c){let u=Ee(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${o} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${o}: ${u}`)}return n}var Ml=class extends Wr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=tt(this._cacheDirName,Wr.cacheFileName),this._tmpFileName=tt(this._cacheDirName,Wr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=Ie("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new Tp;for(let[o,c,u]of n)i.entries.push([o,{mtime:c,name:u}]);await ta(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await jg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${ma} to ${this._cacheFileName}`)}};var DT=require("node:buffer");var ql=class{constructor(t,n){this._fileReader=n;this._blobNameCalculator=new Fl(t)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(t){let n=this._fileReader.stat(t);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(t){let n;try{if(n=await this._fileReader.read(t),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,DT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(t,n){return this._blobNameCalculator.calculateOrThrow(t,n)}};var sr=class e{constructor(t,n){this.rootPath=t;this.relPath=n}static from(t){return new e(t.rootPath,t.relPath)}get absPath(){return tt(this.rootPath,this.relPath)}equals(t){return e.equals(this,t)}static equals(t,n){if(t===n)return!0;if(t==null||n==null)return!1;let i=ET(t)?tt(t.rootPath,t.relPath):t.fsPath,o=ET(n)?tt(n.rootPath,n.relPath):n.fsPath;return i===o}};function ET(e){return e!=null&&typeof e=="object"&&("rootPath"in e||"relPath"in e)}var Ll=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new De;_nextEntryTS=1e3;_logger=Ie("PathMap");constructor(){}dispose(){for(let[t,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(t){return this._sourceFolders.get(t)?.onDidChangePathStatus}openSourceFolder(t,n){for(let[u,f]of this._sourceFolders){if(_l(f.folderRoot,t))throw new Error(`Source folder ${t} is already open`);if(or(t,f.folderRoot))throw new Error(`Source folder ${t} contains ${f.folderRoot}`);if(or(f.folderRoot,t))throw new Error(`Source folder ${f.folderRoot} contains ${t}`)}let i=this._nextFolderId++,o=new Dp(t,n);this._sourceFolders.set(i,o);let c=o.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return o.addDisposable(c),this._logger.info(`Opened source folder ${t} with id ${i}`),i}closeSourceFolder(t){let n=this._sourceFolders.get(t);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(t),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${t}`)}_handleBlobNameChangeEvent(t){this._blobNameChangedEmitter.fire(t)}getRepoRoot(t){return this._sourceFolders.get(t)?.repoRoot}hasFile(t,n){return this._sourceFolders.get(t)?.hasFile(n)??!1}getBlobName(t,n){return this._sourceFolders.get(t)?.getBlobName(n)}getBlobInfo(t,n,i){return this._sourceFolders.get(t)?.getBlobInfo(n,i)}getAnyPathName(t){for(let n of this._sourceFolders.values()){let i=n.getPathName(t);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(t){let n=new Array;for(let i of this._sourceFolders.values()){let o=i.getPathName(t);o!==void 0&&n.push(new sr(i.repoRoot,o))}return n}getUniquePathCount(t){let n=0;for(let i of this._sourceFolders.values())i.getPathName(t)!==void 0&&n++;return n}getAllQualifiedPathNames(t){return this.getAllQualifiedPathInfos(t).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(t){let n=new Array;for(let i of this._sourceFolders.values()){let o=i.getPathInfo(t);if(o!==void 0){let[c,u]=o;n.push({qualifiedPathName:new sr(i.repoRoot,t),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(t){let n=new Array;for(let i of this._sourceFolders.values()){let o=i.getPathName(t);o!==void 0&&n.push([i.folderRoot,i.repoRoot,o])}return n}getPathInfo(t,n){return this._sourceFolders.get(t)?.getPathInfo(n)}reportMissing(t){for(let n of this._sourceFolders.values()){let i=n.reportMissing(t);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(t,n,i,o){let c=this._nextEntryTS++;this._sourceFolders.get(t)?.insert(n,c,i,o)}remove(t,n){this._sourceFolders.get(t)?.remove(n)}shouldTrack(t,n){return this._sourceFolders.get(t)?.shouldTrack(n)??!1}getContentSeq(t,n){return this._sourceFolders.get(t)?.getContentSeq(n)}update(t,n,i,o,c){this._sourceFolders.get(t)?.update(n,i,o,c)}markUntrackable(t,n,i,o){this._sourceFolders.get(t)?.markUntrackable(n,i,o)}purge(t,n){this._sourceFolders.get(t)?.purge(n)}*pathsWithBlobNames(){for(let[t,n]of this._sourceFolders)for(let[i,o,c]of n.pathsWithBlobNames())yield[t,n.repoRoot,i,o,c]}*pathsInFolder(t){let n=this._sourceFolders.get(t);n!==void 0&&(yield*n.allPaths())}enablePersist(t,n,i){this._sourceFolders.get(t)?.enablePersist(n,i)}_makeQualifiedPathName(t,n){return new sr(t.repoRoot,n)}trackedFileCount(t){return this._sourceFolders.get(t)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Dp=class extends mt{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new De;_blobNameChangedEmitter=new De;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,o,c){let u=this._allPathNames.get(n),f=u===void 0||u.fileType!==o||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:o,pathAcceptance:c},this._allPathNames.set(n,u);else{let g=u.fileInfo;u.entryTS=i,u.fileType=o,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,g?.trackable&&(this._blobNameToPathName.delete(g.blobName),this._publishBlobNameChange(n,g.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),f&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let o=i.fileInfo.blobName;this._blobNameToPathName.delete(o),this._publishBlobNameChange(n,o,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,o,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let f=u.fileInfo===void 0?!0:u.fileInfo.trackable,g;u.fileInfo?.trackable&&(g=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:o,mtime:c},this._trackableFilePaths.add(n),o!==g&&(g!==void 0&&this._blobNameToPathName.delete(g),this._blobNameToPathName.set(o,n),this._publishBlobNameChange(n,g,o),this._markDirty()),(!f||g===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,o){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:o},this._trackableFilePaths.delete(n);let f=!1;if(u===void 0)f=!0;else if(u.trackable===!0){f=!0;let g=u.blobName;this._blobNameToPathName.delete(g),this._publishBlobNameChange(n,g,void 0),this._markDirty()}else f=o!==u.reason;f&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return tt(this.repoRoot,n)}_publishBlobNameChange(n,i,o){i!==o&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:o})}purge(n){let i=new Array;for(let[o,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(o)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[f,g]of u){let b=g.fileInfo;b?.trackable&&(yield[f,b.mtime,b.blobName])}},o=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=o}};var Ol=require("fs");var Ep=class{_onDidCreate=new De;_onDidChange=new De;_onDidDelete=new De;logger=Ie("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(t){this.workspaceFolder=t;let n={recursive:!0,persistent:!0};this.watcher=(0,Ol.watch)(t,n,(i,o)=>this.listener(i,o)),this.logger.info(`Filesystem watcher initialized with directory ${t}`)}listener(t,n){if(n===null)return;this.logger.info(`Received raw filesystem event: ${t} ${n}`);let i=tt(this.workspaceFolder,n);t==="rename"?this.statThenFire(i):t==="change"&&this.fireEvent(i,"change")}statThenFire(t){(0,Ol.existsSync)(t)?this.fireEvent(t,"create"):this.fireEvent(t,"delete")}fireEvent(t,n){this.logger.info(`Firing filesystem event: ${n} ${t}`),n==="create"?this._onDidCreate.fire(Ze.file(t)):n==="change"?this._onDidChange.fire(Ze.file(t)):n==="delete"&&this._onDidDelete.fire(Ze.file(t))}dispose(){this.watcher.close()}};function IT(e){return new Ep(e)}var Ip=class extends mi{constructor(n){super();this.reason=n}format(){return this.reason}},Bl=class extends mt{constructor(n,i,o,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=o;this._pathFilter=c;this._workspaceFolder=u;this._logger=Ie(`PathNotifier[${i}]`)}_pathFoundEmitter=new De;_pathCreatedEmitter=new De;_pathChangedEmitter=new De;_pathDeletedEmitter=new De;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new es(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[o,c,u,f]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:f})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let o of i)this._pathDeletedEmitter.fire(o);return n.stats}_handlePathChanged(n,i){let o=this._getRelPath(n);if(o===void 0)return;let c,u;try{c=Zs(Yt(n)).type,u=this._pathFilter.getPathInfo(o,c)}catch(g){c="Other",u=new Ip(Ee(g))}let f=i?"created":"changed";this._logger.verbose(`${c} ${f}: ${o}, acceptance = ${u.format()}`),this._deletedPaths?.delete(o),i?this._pathCreatedEmitter.fire({relPath:o,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:o,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Ko(n);if(i!==void 0)return la(this.repoRoot,i)}_createFilesystemWatcher(n){let i=IT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(o=>this._handlePathChanged(o,!0)),i.onDidChange(o=>this._handlePathChanged(o,!1)),i.onDidDelete(o=>this._handlePathDeleted(o)))}};async function FT(e,t,n,i){let o=Yt(e),c=Yt(t),u=new Array;u.push(o);let f=new Array,g=200,b=Date.now(),x;for(;(x=u.pop())!==void 0&&(i===void 0||f.length=g&&(await new Promise(B=>setTimeout(B,0)),b=Date.now());let I=$r(c,x),M=n.makeLocalPathFilter(I),N=ea(x);for(let[B,W]of N){if(Date.now()-b>=g&&(await new Promise(P=>setTimeout(P,0)),b=Date.now()),B==="."||B==="..")continue;let D=tt(I,B,W==="Directory");M.acceptsPath(D,W)&&(W==="File"?f.push(D):W==="Directory"&&u.push(tt(x,B)))}}return Promise.resolve(f)}var Ul=class e{constructor(t,n,i,o){this._apiServer=t;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=o}static verifyBatchSize=1e3;async describe(t,n,i){let o=await this._getAllPathNames(t,n,i);if(o.length>this._maxTrackedFiles)return{trackable:!1};let c=o.length,u=await this._chooseBlobNameSample(n,o);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let f=await this._apiServer.findMissing(u),g=u.length,b=Math.min(f.unknownBlobNames.length,g);return{trackable:!0,trackableFiles:c,uploadedFraction:(g-b)/g}}async _getAllPathNames(t,n,i){let o=await Cl(Ze.file(t),Ze.file(n),new Yo(i),this._fileExtensions);return await FT(Ze.file(t),Ze.file(n),o,this._maxTrackedFiles+1)}async _chooseBlobNameSample(t,n){let i=new Array;for(;i.length0;){let o=Math.floor(Math.random()*n.length),c=n[o];n[o]=n[n.length-1],n.pop();let u=tt(t,c),f=await this._pathHandler.readText(u);if(f.type!=="text")continue;let g=this._pathHandler.calculateBlobName(c,f.contents);i.push(g)}return i}};var $l=class e extends mt{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=Ie("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new _i(this._probeWaiters,e.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new _i(this._longWaiters,e.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,o]of n)this._logger.verbose(`enqueue: ${o.rootPath}:${o.relPath}`),this._toProbe.insert(i,{qualifiedPath:o,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,f]=n;if(this._workspaceManager.getBlobName(f.qualifiedPath)!==u||(this._currentBatch.set(u,f),this._currentBatch.sizethis._apiServer.findMissing(o),this._logger)}catch{}if(c===void 0)for(let[u,f]of i)this._addRetryWaiter(u,f);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&ga(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),f=new Set(c.nonindexedBlobNames);for(let[g,b]of i)u.has(g)?this._workspaceManager.notifyBlobMissing(b.qualifiedPath,g):f.has(g)&&this._addRetryWaiter(g,b)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,o]=n;this._logger.verbose(`probe enqueue: ${o.qualifiedPath.rootPath}:${o.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,o)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(M)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return ua(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Ap=class extends mt{constructor(n,i,o){super(o);this.pathFilter=n;this.pathNotifier=i}};var V2=new Set(["home directory","too large"]),G2=new Set(["nested"]);function ba(e){return V2.has(e)}function MT(e){return G2.has(e)}function ar(e){return e.containingFolderRoot!==void 0?"nested":e.isHomeDir?"home directory":e.folderQualification!==void 0&&!e.folderQualification.trackable?"too large":e.syncingPermission==="denied"?"permission denied":e.syncingPermission==="granted"?"trackable":e.folderQualification===void 0?"qualifying":"permission needed"}var Wl=class e extends mt{constructor(n,i,o,c,u,f,g=new Array,b){super();this._storageUriProvider=n;this._apiServer=i;this._featureFlagManager=o;this._completionServer=c;this._maxUploadSizeBytes=u;this._workspaceFolders=f;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let x=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=x*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new De),this._folderSyncedEmitter=this.addDisposable(new De),this._syncingProgressEmitter=this.addDisposable(new De),this._syncingStateEmitter=this.addDisposable(new De),this._sourceFoldersChangedEmitter=this.addDisposable(new De),this._sourceFolderContentsChangedEmitter=this.addDisposable(new De),this._sourceFolderContentsChangedEmitter=this.addDisposable(new De),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let I=new Set;for(let M of g)for(let N of M.extensions)I.add(N);this._fileExtensions=I}this._pathHandler=new ql(this._maxUploadSizeBytes,oT()),this._pathMap=this.addDisposable(new Ll);let k=b?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Il(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,k)),this._unknownBlobHandler=this.addDisposable(new $l(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Rl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ul(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(new Or(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new da(".gitignore"),new xl(n),new da(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new bi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new kl;_pathHandler;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=Ie("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let o=ar(i);return ba(o)||MT(o)||o==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await oa(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let o=ar(i);return ba(o)||MT(o)||o==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await oa(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,o]of this._registeredSourceFolders){let c=ar(o);if(ba(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,o)=>{n.push(this._getSyncingProgress(o,i.sourceFolder))}),n}_getSyncingProgress(n,i){let o=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:o}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?PT(n):!1}_registerInitialSourceFolders(){let n=new Array;this._workspaceFolders?.forEach(o=>{let c=AT(o.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;this._workspaceFolders?.forEach(o=>{let c=o.name,u=AT(o.uri);if(u===void 0)return;let f="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${f}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:f,workspaceFolder:o}),f==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Nl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,o)=>{let c=ar(i);ba(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(o))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=ar(n);ba(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,o]of this._registeredSourceFolders)if(ar(o)==="trackable"){for(let[u,f]of this._registeredSourceFolders)if(ar(f)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,o]of this._registeredSourceFolders){if(!n.has(i)){o.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){o.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),o.containingFolderRoot=c;break}}for(let[i,o]of this._registeredSourceFolders)ar(o)==="qualifying"&&o.cancel===void 0&&this._qualifySourceFolder(i,o);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[o,c]=await this._findRepoRoot(n),u,f;if(this._enableFileLimitsForSyncingPermission){f="full",this._logger.info(`Beginning ${f} qualification of source folder ${n}`);let b=new Br;if(i.cancel=b,u=await this._sourceFolderDescriber.describe(n,o,e.ignoreSources(n)),b.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,b.dispose()}else f="phony",this._logger.info(`Beginning ${f} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let g={...u,repoRoot:o,isRepo:c};i.folderQualification=g,g.trackable?(this._logger.info(`Finished ${f} qualification of source folder ${n}: trackable files: ${g.trackableFiles}, uploaded fraction: ${g.uploadedFraction}, is repo: ${g.isRepo}`),g.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!g.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):g.uploadedFractionu._newlyTracked=!1});let k=await this._refreshSourceFolder(u,o);if(k===void 0||u.stopped)return;o.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let I=this._pathMap.onDidChangePathStatus(g);if(I===void 0)return;u.addDisposable(I(N=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),o?.charge("await DiskFileManager quiesced");let M=new Ml(f,u.cacheDirPath);this._pathMap.enablePersist(g,M,e.pathMapPersistFrequencyMs),o.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,o,k)}finally{x.dispose()}}async _createSourceFolder(n,i,o){let c=i.folderName,u=new ir,f=new ir,g=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[b,x]=await this._findRepoRoot(n);if(o.isCancellationRequested)return;let k=this._pathMap.openSourceFolder(n,b);u.add(new Or(()=>this._pathMap.closeSourceFolder(k)));let I=new Al(c,this._apiServer,this._pathHandler,this._pathMap);u.add(I);let M=void 0,N=await this._migrateMtimeCache(n,i);return new Fp(c,n,b,g,M,k,I,N,u,f,i.logger)}async _migrateMtimeCache(n,i){let o=this._computeCacheDirPath(n);if(Nl(o))return o;let c=this._computeCacheDirPath(i.folderName);if(!Nl(c))return o;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${o}"`),await RT(c,o)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${o}": ${Ee(u)}`)}return o}_computeCacheDirPath(n){return e.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let o=Yt(i),c=aT(e._textEncoder.encode(n));return tt(o,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Ee(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let o=await this._createSourceFolderTracker(n,i);try{n.setTracker(o)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Ee(u)}`),o.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let o=n.tracker;if(o===void 0)return;let c=this._pathMap.nextEntryTS,u=await o.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let o=new ir,c=await Cl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new Yo(e.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return o.add(u),i?.charge("create PathNotifier"),new Ap(c,u,o)}_createPathNotifier(n,i){let o=new Bl(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return o.addDisposables(o.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),o.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),o.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),o.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),o}async _findRepoRoot(n){let i;return i=await vl(n,e.augmentRootName),i===void 0&&(i=(await ST(n))?.root),i!==void 0?[qT(i),!0]:[n,!1]}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,o){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,f]=c,g={folderId:u.folderId,relPath:f,beginOffset:i,endOffset:o}}getContext(){if(this._pathMap===void 0)return ns.empty();let n={folderMap:new Map,recentChunks:[]},i=new Set,o=new Map,c=new Map;for(let[M,N]of n.folderMap){let B=this._pathMap.getRepoRoot(M);B!==void 0&&c.set(B,N);for(let[W,X]of N){i.add(X);let D=this._pathMap.getBlobName(M,W);D!==void 0&&D!==X&&o.set(D,(o.get(D)??0)+1)}}let u=new Set;for(let[M,N]of o)i.has(M)||N===this._pathMap.getUniquePathCount(M)&&u.add(M);let f=new Array;for(let M of n.recentChunks);let g=this._blobsCheckpointManager,b=g!==void 0&&this._useCheckpointManagerContext,x=b&&this._validateCheckpointManagerContext,k;if(!b||x){let M=new Set(i);for(let[W,X,D,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(W)?.has(D)||M.add(U);let N=Array.from(M),B=this._blobNamesToBlobs(N);if(k=new ns(B,f,c,this._lastChatResponse,N),!b)return k}let I=g.getContextAdjusted(i,u);return k!==void 0&&(g.validateMatching(k.blobs,I)||this._logger.error("blob context mismatch")),new ns(I,f,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let o=new Set(i),c=new Array;for(let[u,f]of n.trackedPaths)if(u!==void 0)for(let[g,b]of f)o.has(b)&&(c.push([b,new sr(u,g)]),o.delete(b));for(let u of o){let f=this._pathMap.getAnyPathName(u);f!==void 0&&c.push([u,f])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let o=this._pathMap.reportMissing(i);if(o!==void 0){let u=this._getSourceFolder(o.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}this._getSourceFolder(n.rootPath)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Ko(n);if(i===void 0)return;let o=this._resolveAbsPath(i);if(o===void 0)return;let[c,u]=o;return new sr(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Ko(n);if(i===void 0)return;let o=this._resolveAbsPath(i);if(o===void 0)return;let[c,u]=o;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Ko(n);if(i===void 0)return;let o=this._resolveAbsPath(i);if(o===void 0)return new sr("",i);let[c,u]=o;return new sr(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,o]of this._trackedSourceFolders){if(o.sourceFolder===void 0)continue;let c=o.sourceFolder.relativePathName(n);if(c!==void 0)return[o.sourceFolder,c]}}hasFile(n){let[i,o]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||o===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,o]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||o===void 0))return this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,o,c){let u=n.folderId;this._pathMap.insert(u,i,o,c),o==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,o,c){let u=n.folderId;if(this._pathMap.insert(u,i,o,c),!!c.accepted){if(o==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(o==="Directory"){let f=n.tracker?.pathFilter;if(f===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,f))}}}_handleFileChanged(n,i,o){let c=n.folderId;this._pathMap.insert(c,i,"File",o),o.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let o=n.folderId,c=this._pathMap.getPathInfo(o,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,f]=c;f.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(o,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,o){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new es(n.folderName,Tt.joinPath(c,i),c,o);for await(let[f,g,b,x]of u)this._handlePathFound(n,g,b,x)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let o=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(o))la(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(o,u)}_emitFileNotification(n,i,o){}_reportSourceFolderStartup(n,i,o,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(o.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>ar(i)==="trackable").map(([n,i])=>({folderRoot:n}))}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let o=i.sourceFolder;if(o!==void 0&&o.initialEnumerationComplete)return o.diskFileManager.itemsInFlight}};var jl=class extends mt{constructor(n,i,o,c,u,f,g){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=o;this._auth=c;this._featureFlagManager=u;this._workspaceFolders=f;this._initialModelConfig=g;this._completionAcceptanceReporter=new gl(o),this._clientMetricsReporter=new hl(o),this._completionsModel=new dl(this,this._augmentConfigListener,this._clientMetricsReporter)}_completionServer=void 0;workspaceManager=void 0;_enableCancel;_modelInfo;get modelInfo(){return this._modelInfo}_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=Ie("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Ee(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){(0,LT.assert)(!this.enabled);let i=this._workspaceFolders.map((u,f)=>({uri:Ze.parse(u.uri),name:u.name,index:f}));if(this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let o;try{if(o=this._initialModelConfig,o.models.length===0)throw new Do;let u=o.defaultModel;if(this._modelInfo=o.models.find(f=>[f.name,f.internalName].includes(u)||f.name===(0,OT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new To(u)}catch(u){let f=Ee(u);throw this._logger.error(`Failed to get model config: ${f}`),u}this._completionServer=new ul(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let c=this._featureFlagManager.currentFlags.maxUploadSizeBytes;this.workspaceManager=new Wl(this._extensionContext,this._apiServer,this._featureFlagManager,this._completionServer,c,i),this.disposeOnDisable.push(this.workspaceManager);{let u=[this._completionAcceptanceReporter];for(let f of u)f.enableUpload(),this.disposeOnDisable.push(f)}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function BT(e){let t=e.get("sessionId");return(t===void 0||!rg(t))&&(t=Ns(),e.update("sessionId",t)),t}var En=(0,Ne.createConnection)(),Mp=new Ne.TextDocuments(hc),jT,Q2=".config/augment/api_token",J2="https://staging-shard-0.api.augmentcode.com/",X2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},K2=process.env.TEST_TMPDIR?_a.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||_a.join(WT.default.homedir(),".local","share"),zT=_a.join(K2,"vim-augment"),UT=_a.join(process.env.HOME||"~",Q2),Y2=Hl.existsSync(UT)?Hl.readFileSync(UT,"utf8").trim():"",me=Ie("server"),rs,Np,cr,$T=new tl,zt,zl=new ol;async function HT(e,t){if(await cr.initState(),!cr.isLoggedIn)throw new Error("Not logged in. Please login first.");let n=await rs.getModelConfig();if(n.models.length===0)throw new Do;me.debug(`Received modelConfig: ${JSON.stringify(n,null,2)}`);let i=n.defaultModel,o=n.models.find(c=>c.name===n.defaultModel);if(o===void 0)throw new To(i);return o.name=i,$T.update(n.featureFlags),new jl(e,zl,rs,cr,$T,t,n)}En.onInitialize(async e=>{me.info("Initializing Language Server"),jT=e;let t=e.initializationOptions?.editor??"unknown",n=e.initializationOptions?.pluginVersion??"unknown",i=e.initializationOptions?.vimVersion??"unknown",o=`Augment.vim/${n} ${t}/${i}`;me.info(`User agent: ${o}`);let c=e.workspaceFolders??[];me.info(`Roots: ${JSON.stringify(c)}`);for(let k of c)me.info(`Root name, URI: ${k.name}, ${k.uri}`);let u;try{u=new na(Ze.file(zT))}catch(k){throw me.error(`Error initializing server context storage: ${Ee(k)}`),k}cr=new sl(u,zl);let f=new pl(u),g=BT(f);me.info(`Session ID: ${g}`);let b={...zl.config,oauth:X2,apiToken:Y2};rs=new rl(zl,cr,g,o,global.fetch),Np=new cl(u,b,rs,cr);let x={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ne.TextDocumentSyncKind.Incremental}};try{zt=await HT(u,c),await zt.enable(),me.info("Initialized completion server")}catch(k){me.error(`Error initializing completion server: ${Ee(k)}`)}return x});En.onInitialized(()=>{me.info("Language server initialized")});En.onCompletion(async e=>{let t=Mp.get(e.textDocument.uri);if(!t)return me.warn(`Not tracking the document ${e.textDocument.uri}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Not tracking the document ${e.textDocument.uri}`);if(zt?.completionServer===void 0)return me.warn("Completion server is not initialized."),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Completion server is not initialized");if(!cr.isLoggedIn)return me.warn("Not logged in. Please login first."),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new Zu(t),i=await zt.completionsModel.generateCompletion(n,e.position);return me.info(`Completion: ${i?.requestId}`),me.debug(`Completion result: ${JSON.stringify(i)}`),[{label:i?.requestId??"",insertText:i?.completions[0]?.completionText??""}]}catch(n){return me.error(`Error getting completion: ${Ee(n)}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Error getting completion: ${Ee(n)}`)}});En.onRequest("augment/login",async()=>{try{return cr.isLoggedIn?(me.info("Already logged in"),{loggedIn:!0,url:""}):(me.info("Logging in..."),{loggedIn:!1,url:await Np.startFlow()})}catch(e){let t=e instanceof Error?e.stack:"No stack trace available",n=Ee(e);return me.error(`Error handling augment/login: ${n}`),me.error(`Stack trace: ${t}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});En.onRequest("augment/logout",async()=>{try{return await cr.removeSession(),zt?.disable(),me.info("Logged out."),{success:!0}}catch(e){let t=e instanceof Error?e.stack:"No stack trace available",n=Ee(e);return me.error(`Error handling augment/logout: ${n}`),me.error(`Stack trace: ${t}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});En.onRequest("augment/token",async e=>{try{if(await Np.handleAuthJson(e.code),!zt){let t=new na(Ze.file(zT)),n=jT?.workspaceFolders??[];zt=await HT(t,n),me.info("Initialized completion server")}return await zt.enable(),me.info("Logged in."),{success:!0}}catch(t){let n=t instanceof Error?t.stack:"No stack trace available",i=Ee(t);return me.error(`Error creating completion server: ${i}`),me.error(`Stack trace: ${n}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});En.onRequest("augment/status",()=>{let e=!!cr.isLoggedIn,t;if(zt?.workspaceManager){let n=0,i=0,o=zt.workspaceManager.getSyncingProgress();for(let c of o)c.progress&&c.progress.newlyTracked&&(me.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),n+=c.progress.trackedFiles,i+=c.progress.trackedFiles-c.progress.backlogSize);t=n>0?Math.floor(i/n*100):100}return{loggedIn:e,syncPercentage:t}});En.onRequest("augment/chat",async e=>{let t=e.textDocumentPosition.textDocument.uri,n=Mp.get(t);if(n||me.warn(`Not tracking the document ${t}`),zt?.completionServer===void 0)return me.warn("Completion server is not initialized."),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Completion server is not initialized");if(!cr.isLoggedIn)return me.warn("Not logged in. Please login first."),new Ne.ResponseError(Ne.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=e.textDocumentPosition.position,o=n?.offsetAt(i)||0,c=n?.getText()||"",u=o,f=c.length-o,g=c.slice(Math.max(0,o-u),o),b=c.slice(o,o+f),x=zt.completionServer.createRequestId();me.info(`Chat (${x}) requested`),n&&(me.debug(`Document URI: ${n.uri}`),me.debug(`Language ID: ${n.languageId}`)),e.selectedText!==void 0&&me.debug(`Selected text: ${e.selectedText}`);let I=zt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]};if(e.partialResultToken===void 0){me.info("No partialResultToken provided. Sending full response.");try{let N=await rs.chat(x,e.message,[],I,[],[],void 0,[],void 0,e.selectedText,g,b,n?.uri,n?.languageId);return me.debug(`Chat result: ${JSON.stringify(N)}`),zt.workspaceManager?.recordChatReponse(N.text),{label:x,text:N.text}}catch(N){return me.error(`Error getting chat: ${Ee(N)}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Error getting chat: ${Ee(N)}`)}}me.debug(`PartialResultToken provided: ${e.partialResultToken}`);let M="";try{let N=await rs.chatStream(x,e.message,[],I,[],[],void 0,[],void 0,e.selectedText,g,b,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let B of N)me.debug(`Chat chunk for ${x}: ${B.text}`),await En.sendNotification("augment/chatChunk",{token:e.partialResultToken,value:{label:x,text:B.text}}),M+=B.text}catch(N){return me.error(`Error streaming chat: ${Ee(N)}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Error streaming chat: ${Ee(N)}`)}return zt.workspaceManager?.recordChatReponse(M),{label:x,text:""}});var Z2="https://api.github.com/repos/augmentcode/augment.vim/tags?per_page=1";En.onRequest("augment/pluginVersion",async()=>{try{let e=await fetch(Z2);if(!e.ok)return me.error(`Failed to fetch version: ${e.statusText}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Failed to fetch plugin version: ${e.statusText}`);let t=await e.json();return Array.isArray(t)&&t.length>0&&typeof t[0].name=="string"?{version:t[0].name}:new Ne.ResponseError(Ne.ErrorCodes.InternalError,"No version tags found for plugin")}catch(e){return me.error(`Error fetching version: ${Ee(e)}`),new Ne.ResponseError(Ne.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Ee(e)}`)}});En.onNotification("augment/resolveCompletion",e=>{if(me.info(`Completion (${e.requestId}) resolved with accept=${e.accept}`),zt?.completionReporter===void 0){me.warn("Completion reporter is not yet initialized.");return}zt.completionReporter.reportResolution(e.requestId,Date.now(),Date.now(),e.accept?0:void 0)});Mp.listen(En);En.listen();me.info("Language server started");0&&(module.exports={API_ENDPOINT}); +`+s}};var _T=gt(require("os"));function vT(t){let e=_T.default.homedir();return pl(t,e)}var _a=gt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=$r(e,x),A=ia(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=et(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new op(c,i)}var os=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!_a.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!_a.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new is("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=$r(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ia(s.fsPath);this._readDirMs.stop();for(let[m,v]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=et(u,m,v==="Directory"),A=d.getPathInfo(N,v);this._filterMs.stop();let L=N;v==="File"?this._filesEmitted.increment():v==="Directory"?(L=ns(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,v,A],this._yieldMs.stop(),v==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},ip=class extends yi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=_a.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new ip(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new wi:i.getPathInfo(e)}},op=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new sp(i,this._fileExtensions)}_getIgnoreStack(n){if(gT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},sp=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var ap=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends ot{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new ap;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var cp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends cp{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},jr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var Bj=Object.freeze({git:{name:".git",type:"Directory"}});async function yT(t){for(let[e,n]of Object.entries(Bj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var va=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},up=class{throwError(e,n){throw new va(e,n)}},lp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},dp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},fp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},hp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new dp(i,this.process)}},gp=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof va?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof va&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function ss(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends ot{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=ss(e,n),s=ss(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=ss(e.addedBlobs,n.addedBlobs),u=ss(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=ss(e.deletedBlobs,n.deletedBlobs),u=ss(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";wt.isAPIErrorWithStatus(d,5)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function Si(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var pp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},mp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends ot{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new is("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=pT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return ua(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return et(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof da){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,Fe(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let v={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,v)}_newProbeBatch(){return new mp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),Si(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),Si(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,v]of i.items)this._pathMapVerify(v.folderId,v.relPath,m)&&(u.has(v.blobName)?this._enqueueForUpload(m,v.folderId,v.relPath,!1):d.has(v.blobName)?this._enqueueForProbeRetry(m,v):this._pathMapUpdate(v.folderId,v.relPath,m,v.blobName,v.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new pp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:v}]=n;if(!this._pathMapVerify(m,v,f))return;let x=this._getMtime(d,m,v,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,v,f);if(D===void 0)return;let N=this._calculateBlobName(v,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,v,f,Fe(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:v,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let v of f)this._pathMapInvalidate(v.folderId,v.pathName,v.seq,this._fileUploadFailure);else for(let v of f){let x={folderId:v.folderId,relPath:v.pathName,blobName:m,mtime:v.mtime,startTime:Date.now()};this._enqueueForProbeRetry(v.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Fe(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var zr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},bp=class{constructor(e=fa){this.namingVersion=e}entries=new Array};function $j(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function Wj(t){return et(t,zr.cacheFileName)}function Fl(t){let e=Wj(t);return Ok(e)}async function ST(t,e){let n=et(t,zr.cacheFileName),i=et(e,zr.cacheFileName);await oa(e),await Dg(n,i)}async function xT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=et(e,zr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Ko(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==fa)i.info(`blob naming version ${d.namingVersion} !== ${fa}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let v=$j(m);v!==void 0&&(n.set(f,{mtime:v.mtime,name:v.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=Fe(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends zr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=et(this._cacheDirName,zr.cacheFileName),this._tmpFileName=et(this._cacheDirName,zr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new bp;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await oa(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await Dg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${fa} to ${this._cacheFileName}`)}};var CT=gt(Go());var PT=require("console");var _p=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},as=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},cs=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new as(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,v=Math.min(m,e-s.length);s.length+=v,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=v;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var kT=6,TT=6,ya=kT*TT,zj=1e3,Hj=2e3,Vj=60*1e3,Gj=200,Qj=30*1e3,Kj=30*1e3,Jj=60*1e3,vp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Zo(TT),this.addChangeset(s),this.changesSinceUpload=new cs}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new cs})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},yp=class extends vp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends ot{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new jr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,Hj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,Vj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new jr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let v=m.recentChanges(!1);if(v===void 0||v.blobName===void 0)continue;d.set(f,v.blobName);let x=m.getText(),D=v.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:v.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let v=m.changeTracker.getChunks(n,f.getText().length);if(v.length!==0)for(let x of v)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new yp(n,i,d,f,d),c.set(i,u);let m=u.getText(),v=this._blobNameCalculator.calculate(i,m);if(v===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(v)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=v,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let v of c){let[x,D,N]=v;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let v=d.changesSinceUpload.length>=Gj;v||(v=d.changesSinceUpload.countChunks(this._chunkSize)>=ya),v&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let v=s.changesSinceUpload.countChunks(this._chunkSize);v>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),v>=ya&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=kT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),v=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,CT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:v,changesSinceUpload:new cs},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Qj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${Fe(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${Fe(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Jj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size{if(!(Date.now()-u>Kj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let v of m)this.notifyMissingBlob(v.folderId,v.pathName,f);else if(d.has(f))for(let v of m)this._requeueVerifyWaiter(v,f);else for(let v of m)this._commit(v,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),Si(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),Si(this._logger,i,n.nonindexedBlobNames,5))}};var wp=gt(Go());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] +[${JSON.stringify(i)}] +[${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.getBlobName(e,n)}handleMissingBlob(e,n,i){if(this.isV2Enabled){let s=this._openFileManagerV2.handleMissingBlob(e,n,i);return this._openFileManagerV1.notifyMissingBlob(e,n,i)||s}else return this._openFileManagerV1.notifyMissingBlob(e,n,i)}loseFocus(){this._openFileManagerV1.loseFocus()}stopTracking(e,n){this._openFileManagerV1.stopTracking(e,n),this.isV2Enabled&&this._openFileManagerV2.stopTracking(e,n)}handleClosedDocument(e){this._openFileManagerV1.stopTracking(e.folderId,e.relPath,0),this.isV2Enabled&&this._openFileManagerV2.handleClosedDocument(e)}handleChangedDocument(e){this._openFileManagerV1.applyTextDocumentChange(e.folderId,e.relPath,e.event),this.isV2Enabled&&this._openFileManagerV2.handleChangedDocument(e)}isTracked(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.isTracked(e,n),s=this._openFileManagerV1.isTracked(e,n);return i!==s&&this._logger.debug(`[WARN] isTracked returned different results between v1 and v2 [${e}:${n}] +[${JSON.stringify(i)}] +[${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.isTracked(e,n)}getTrackedPaths(e){if(this.isV2Enabled){let n=this._openFileManagerV2.getTrackedPaths(e),i=this._openFileManagerV1.getTrackedPaths(e),s=(0,wp.difference)(n,i);s.length>0&&this._logger.debug(`[WARN] getTrackedPaths in new but not in old [${e}] +[${JSON.stringify(s)}]`);let c=(0,wp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] +[${JSON.stringify(c)}]`),i}else return this._openFileManagerV1.getTrackedPaths(e)}dispose(){this._openFileManagerV2?.dispose(),this._openFileManagerV1.dispose()}getRecencySummary(e){return this._openFileManagerV1.getRecencySummary(e)}translateRange(e,n,i,s){if(this.isV2Enabled){let c=this._openFileManagerV2.translateRange(e,n,i,s),u=this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s});return(c?.blobName!==u?.blobName||c?.beginOffset!==u?.beginOffset||c?.endOffset!==u?.endOffset)&&this._logger.debug(`[WARN] translateRange returned different results between v1 and v2 [${e}:${n}] +[${JSON.stringify(c)}] +[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends yi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Vi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Fe(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&Si(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new wi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Fe(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Fe(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Fe(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Vi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Fe(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(wt.isAPIErrorWithStatus(c,7))return;if(c instanceof Gi)return;if(c instanceof Jo)return;let u=Fe(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),wt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Gi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Fe(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Fe(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new _i(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return pe.error(`Error getting completion: ${Fe(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Fe(n)}`)}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Fe(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Fe(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Fe(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn,e;if(Xt?.workspaceManager){let n=0,i=0,s=Xt.workspaceManager.getSyncingProgress();for(let c of s)c.progress&&c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),n+=c.progress.trackedFiles,i+=c.progress.trackedFiles-c.progress.backlogSize);e=n>0?Math.floor(i/n*100):100}return{loggedIn:t,syncPercentage:e}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Fe(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Fe(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Fe(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Fe(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=Ni.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new _i(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new _i(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new bi(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new bi(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=Ni.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): +${e.getText()}`)}Rt.documents.add(e);let i={document:new _i(e),contentChanges:n};Mg.fire(i)});on.listen();pe.info("Language server started");0&&(module.exports={API_ENDPOINT}); /*! Bundled license information: lodash/lodash.js: diff --git a/doc/augment.txt b/doc/augment.txt index 77904d1..f17c3e9 100644 --- a/doc/augment.txt +++ b/doc/augment.txt @@ -94,6 +94,25 @@ g:augment_suppress_version_warning is outdated. This can be disabled by setting `g:augment_suppress_version_warning = v:true` before the plugin is loaded. + *g:augment_node_command* +g:augment_node_command + Specify a custom Node.js executable to use when launching the Augment + server. By default, Augment will use the 'node' command found in your + PATH. The provided command can either be the full path to a Node.js binary + or the name of a command in your PATH. Set this option before the plugin + is loaded if you need to use a specific Node.js installation. The Node.js + version is recommended to be 22.0.0 or higher. + + Note: If the specified Node.js executable is not found, an error message + will be displayed in the plugin log. + + Example: + ```vim + let g:augment_node_command = '/usr/local/bin/node' + " Or + let g:augment_node_command = 'node-22' + ``` + ------------------------------------------------------------------------------ Alternate Keybinds *augment-alternate-keybinds* From 822c5eb3e004e8258a08557892a67ab99de77b92 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 6 Feb 2025 00:39:29 +0000 Subject: [PATCH 04/41] Augment Vim v0.9.0 --- autoload/augment/version.vim | 2 +- dist/server.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 1ef8b65..bf8715b 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.8.0' + return '0.9.0' endfunction diff --git a/dist/server.js b/dist/server.js index 6d3d715..5cba687 100644 --- a/dist/server.js +++ b/dist/server.js @@ -84,7 +84,7 @@ ${this.diff(this.value,e).map(n=>` - ${n}`).join(` [${JSON.stringify(s)}]`);let c=(0,wp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] [${JSON.stringify(c)}]`),i}else return this._openFileManagerV1.getTrackedPaths(e)}dispose(){this._openFileManagerV2?.dispose(),this._openFileManagerV1.dispose()}getRecencySummary(e){return this._openFileManagerV1.getRecencySummary(e)}translateRange(e,n,i,s){if(this.isV2Enabled){let c=this._openFileManagerV2.translateRange(e,n,i,s),u=this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s});return(c?.blobName!==u?.blobName||c?.beginOffset!==u?.beginOffset||c?.endOffset!==u?.endOffset)&&this._logger.debug(`[WARN] translateRange returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(c)}] -[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends yi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Vi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Fe(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&Si(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new wi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Fe(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Fe(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Fe(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Vi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Fe(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(wt.isAPIErrorWithStatus(c,7))return;if(c instanceof Gi)return;if(c instanceof Jo)return;let u=Fe(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),wt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Gi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Fe(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Fe(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new _i(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return pe.error(`Error getting completion: ${Fe(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Fe(n)}`)}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Fe(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Fe(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Fe(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn,e;if(Xt?.workspaceManager){let n=0,i=0,s=Xt.workspaceManager.getSyncingProgress();for(let c of s)c.progress&&c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),n+=c.progress.trackedFiles,i+=c.progress.trackedFiles-c.progress.backlogSize);e=n>0?Math.floor(i/n*100):100}return{loggedIn:t,syncPercentage:e}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Fe(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Fe(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Fe(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Fe(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=Ni.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new _i(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new _i(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new bi(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new bi(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=Ni.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): +[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends yi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Vi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Fe(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&Si(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new wi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Fe(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Fe(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Fe(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Vi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Fe(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(wt.isAPIErrorWithStatus(c,7))return;if(c instanceof Gi)return;if(c instanceof Jo)return;let u=Fe(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),wt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Gi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Fe(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Fe(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new _i(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return pe.error(`Error getting completion: ${Fe(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Fe(n)}`)}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Fe(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Fe(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Fe(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Fe(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Fe(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Fe(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Fe(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=Ni.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new _i(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new _i(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new bi(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new bi(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=Ni.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): ${e.getText()}`)}Rt.documents.add(e);let i={document:new _i(e),contentChanges:n};Mg.fire(i)});on.listen();pe.info("Language server started");0&&(module.exports={API_ENDPOINT}); /*! Bundled license information: From 7200c7e133b06e0d2435a0913a52f47c11f54209 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 6 Feb 2025 00:40:41 +0000 Subject: [PATCH 05/41] Augment Vim v0.10.0 --- autoload/augment/version.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index bf8715b..0a99502 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.9.0' + return '0.10.0' endfunction From 18b083a9912f8c90115cbb7613a5fabb86d07630 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 10 Feb 2025 19:01:01 +0000 Subject: [PATCH 06/41] Augment Vim v0.11.0 --- autoload/augment/version.vim | 2 +- dist/server.js | 38 ++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 0a99502..311e518 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.10.0' + return '0.11.0' endfunction diff --git a/dist/server.js b/dist/server.js index 5cba687..2155b2c 100644 --- a/dist/server.js +++ b/dist/server.js @@ -4,15 +4,15 @@ * Licensed for use only with Vim plugin - See LICENSE.md * Modification or reverse engineering prohibited */ -"use strict";var XM=Object.create;var pc=Object.defineProperty;var YM=Object.getOwnPropertyDescriptor;var ZM=Object.getOwnPropertyNames;var eA=Object.getPrototypeOf,tA=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),nA=(t,e)=>{for(var n in e)pc(t,n,{get:e[n],enumerable:!0})},e_=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ZM(e))!tA.call(t,s)&&s!==n&&pc(t,s,{get:()=>e[s],enumerable:!(i=YM(e,s))||i.enumerable});return t};var gt=(t,e,n)=>(n=t!=null?XM(eA(t)):{},e_(e||!t||!t.__esModule?pc(n,"default",{value:t,enumerable:!0}):n,t)),rA=t=>e_(pc({},"__esModule",{value:!0}),t);var bc=I(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.thenable=Et.typedArray=Et.stringArray=Et.array=Et.func=Et.error=Et.number=Et.string=Et.boolean=void 0;function oA(t){return t===!0||t===!1}Et.boolean=oA;function i_(t){return typeof t=="string"||t instanceof String}Et.string=i_;function sA(t){return typeof t=="number"||t instanceof Number}Et.number=sA;function aA(t){return t instanceof Error}Et.error=aA;function o_(t){return typeof t=="function"}Et.func=o_;function s_(t){return Array.isArray(t)}Et.array=s_;function cA(t){return s_(t)&&t.every(e=>i_(e))}Et.stringArray=cA;function uA(t,e){return Array.isArray(t)&&t.every(e)}Et.typedArray=uA;function lA(t){return t&&o_(t.then)}Et.thenable=lA});var ho=I(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.stringArray=Vt.array=Vt.func=Vt.error=Vt.number=Vt.string=Vt.boolean=void 0;function dA(t){return t===!0||t===!1}Vt.boolean=dA;function a_(t){return typeof t=="string"||t instanceof String}Vt.string=a_;function fA(t){return typeof t=="number"||t instanceof Number}Vt.number=fA;function hA(t){return t instanceof Error}Vt.error=hA;function gA(t){return typeof t=="function"}Vt.func=gA;function c_(t){return Array.isArray(t)}Vt.array=c_;function pA(t){return c_(t)&&t.every(e=>a_(e))}Vt.stringArray=pA});var Rf=I(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Message=ce.NotificationType9=ce.NotificationType8=ce.NotificationType7=ce.NotificationType6=ce.NotificationType5=ce.NotificationType4=ce.NotificationType3=ce.NotificationType2=ce.NotificationType1=ce.NotificationType0=ce.NotificationType=ce.RequestType9=ce.RequestType8=ce.RequestType7=ce.RequestType6=ce.RequestType5=ce.RequestType4=ce.RequestType3=ce.RequestType2=ce.RequestType1=ce.RequestType=ce.RequestType0=ce.AbstractMessageSignature=ce.ParameterStructures=ce.ResponseError=ce.ErrorCodes=void 0;var qi=ho(),rf;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(rf||(ce.ErrorCodes=rf={}));var of=class t extends Error{constructor(e,n,i){super(n),this.code=qi.number(e)?e:rf.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ce.ResponseError=of;var fn=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ce.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var ut=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ce.AbstractMessageSignature=ut;var sf=class extends ut{constructor(e){super(e,0)}};ce.RequestType0=sf;var af=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType=af;var cf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType1=cf;var uf=class extends ut{constructor(e){super(e,2)}};ce.RequestType2=uf;var lf=class extends ut{constructor(e){super(e,3)}};ce.RequestType3=lf;var df=class extends ut{constructor(e){super(e,4)}};ce.RequestType4=df;var ff=class extends ut{constructor(e){super(e,5)}};ce.RequestType5=ff;var hf=class extends ut{constructor(e){super(e,6)}};ce.RequestType6=hf;var gf=class extends ut{constructor(e){super(e,7)}};ce.RequestType7=gf;var pf=class extends ut{constructor(e){super(e,8)}};ce.RequestType8=pf;var mf=class extends ut{constructor(e){super(e,9)}};ce.RequestType9=mf;var bf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType=bf;var _f=class extends ut{constructor(e){super(e,0)}};ce.NotificationType0=_f;var vf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType1=vf;var yf=class extends ut{constructor(e){super(e,2)}};ce.NotificationType2=yf;var wf=class extends ut{constructor(e){super(e,3)}};ce.NotificationType3=wf;var Sf=class extends ut{constructor(e){super(e,4)}};ce.NotificationType4=Sf;var xf=class extends ut{constructor(e){super(e,5)}};ce.NotificationType5=xf;var Pf=class extends ut{constructor(e){super(e,6)}};ce.NotificationType6=Pf;var Cf=class extends ut{constructor(e){super(e,7)}};ce.NotificationType7=Cf;var kf=class extends ut{constructor(e){super(e,8)}};ce.NotificationType8=kf;var Tf=class extends ut{constructor(e){super(e,9)}};ce.NotificationType9=Tf;var u_;(function(t){function e(s){let c=s;return c&&qi.string(c.method)&&(qi.string(c.id)||qi.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&qi.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(qi.string(c.id)||qi.number(c.id)||c.id===null)}t.isResponse=i})(u_||(ce.Message=u_={}))});var Ff=I(ri=>{"use strict";var l_;Object.defineProperty(ri,"__esModule",{value:!0});ri.LRUCache=ri.LinkedMap=ri.Touch=void 0;var Gt;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Gt||(ri.Touch=Gt={}));var _c=class{constructor(){this[l_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Gt.None){let i=this._map.get(e);if(i)return n!==Gt.None&&this.touch(i,n),i.value}set(e,n,i=Gt.None){let s=this._map.get(e);if(s)s.value=n,i!==Gt.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Gt.None:this.addItemLast(s);break;case Gt.First:this.addItemFirst(s);break;case Gt.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(l_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Gt.First&&n!==Gt.Last)){if(n===Gt.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Gt.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};ri.LinkedMap=_c;var Df=class extends _c{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Gt.AsNew){return super.get(e,n)}peek(e){return super.get(e,Gt.None)}set(e,n){return super.set(e,n,Gt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ri.LRUCache=Df});var f_=I(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.Disposable=void 0;var d_;(function(t){function e(n){return{dispose:n}}t.create=e})(d_||(vc.Disposable=d_={}))});var ii=I(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Ef;function If(){if(Ef===void 0)throw new Error("No runtime abstraction layer installed");return Ef}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ef=n}t.install=e})(If||(If={}));Mf.default=If});var po=I(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.Emitter=go.Event=void 0;var mA=ii(),h_;(function(t){let e={dispose(){}};t.None=function(){return e}})(h_||(go.Event=h_={}));var Af=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Af),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};go.Emitter=yc;yc._noop=function(){}});var xc=I(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.CancellationTokenSource=mo.CancellationToken=void 0;var bA=ii(),_A=ho(),Nf=po(),wc;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Nf.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Nf.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||_A.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(wc||(mo.CancellationToken=wc={}));var vA=Object.freeze(function(t,e){let n=(0,bA.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),Sc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?vA:(this._emitter||(this._emitter=new Nf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},qf=class{get token(){return this._token||(this._token=new Sc),this._token}cancel(){this._token?this._token.cancel():this._token=wc.Cancelled}dispose(){this._token?this._token instanceof Sc&&this._token.dispose():this._token=wc.None}};mo.CancellationTokenSource=qf});var g_=I(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.SharedArrayReceiverStrategy=bo.SharedArraySenderStrategy=void 0;var yA=xc(),ks;(function(t){t.Continue=0,t.Cancelled=1})(ks||(ks={}));var Of=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=ks.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,ks.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};bo.SharedArraySenderStrategy=Of;var Lf=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===ks.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Bf=class{constructor(e){this.token=new Lf(e)}cancel(){}dispose(){}},Uf=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new yA.CancellationTokenSource:new Bf(n)}};bo.SharedArrayReceiverStrategy=Uf});var Wf=I(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.Semaphore=void 0;var wA=ii(),$f=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,wA.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};Pc.Semaphore=$f});var m_=I(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.ReadableStreamMessageReader=oi.AbstractMessageReader=oi.MessageReader=void 0;var zf=ii(),_o=ho(),jf=po(),SA=Wf(),p_;(function(t){function e(n){let i=n;return i&&_o.func(i.listen)&&_o.func(i.dispose)&&_o.func(i.onError)&&_o.func(i.onClose)&&_o.func(i.onPartialMessage)}t.is=e})(p_||(oi.MessageReader=p_={}));var Cc=class{constructor(){this.errorEmitter=new jf.Emitter,this.closeEmitter=new jf.Emitter,this.partialMessageEmitter=new jf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${_o.string(e.message)?e.message:"unknown"}`)}};oi.AbstractMessageReader=Cc;var Hf;(function(t){function e(n){let i,s,c,u=new Map,d,f=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let m of n.contentDecoders)u.set(m.name,m);if(n.contentTypeDecoder!==void 0&&(d=n.contentTypeDecoder,f.set(d.name,d)),n.contentTypeDecoders!==void 0)for(let m of n.contentTypeDecoders)f.set(m.name,m)}return d===void 0&&(d=(0,zf.default)().applicationJson.decoder,f.set(d.name,d)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:d,contentTypeDecoders:f}}t.fromOptions=e})(Hf||(Hf={}));var Vf=class extends Cc{constructor(e,n){super(),this.readable=e,this.options=Hf.fromOptions(n),this.buffer=(0,zf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new SA.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. -${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,zf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};oi.ReadableStreamMessageReader=Vf});var w_=I(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.WriteableStreamMessageWriter=si.AbstractMessageWriter=si.MessageWriter=void 0;var b_=ii(),Ts=ho(),xA=Wf(),__=po(),PA="Content-Length: ",v_=`\r +"use strict";var XM=Object.create;var pc=Object.defineProperty;var YM=Object.getOwnPropertyDescriptor;var ZM=Object.getOwnPropertyNames;var eA=Object.getPrototypeOf,tA=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),nA=(t,e)=>{for(var n in e)pc(t,n,{get:e[n],enumerable:!0})},e_=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ZM(e))!tA.call(t,s)&&s!==n&&pc(t,s,{get:()=>e[s],enumerable:!(i=YM(e,s))||i.enumerable});return t};var gt=(t,e,n)=>(n=t!=null?XM(eA(t)):{},e_(e||!t||!t.__esModule?pc(n,"default",{value:t,enumerable:!0}):n,t)),rA=t=>e_(pc({},"__esModule",{value:!0}),t);var bc=I(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.thenable=Et.typedArray=Et.stringArray=Et.array=Et.func=Et.error=Et.number=Et.string=Et.boolean=void 0;function oA(t){return t===!0||t===!1}Et.boolean=oA;function i_(t){return typeof t=="string"||t instanceof String}Et.string=i_;function sA(t){return typeof t=="number"||t instanceof Number}Et.number=sA;function aA(t){return t instanceof Error}Et.error=aA;function o_(t){return typeof t=="function"}Et.func=o_;function s_(t){return Array.isArray(t)}Et.array=s_;function cA(t){return s_(t)&&t.every(e=>i_(e))}Et.stringArray=cA;function uA(t,e){return Array.isArray(t)&&t.every(e)}Et.typedArray=uA;function lA(t){return t&&o_(t.then)}Et.thenable=lA});var go=I(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.stringArray=Vt.array=Vt.func=Vt.error=Vt.number=Vt.string=Vt.boolean=void 0;function dA(t){return t===!0||t===!1}Vt.boolean=dA;function a_(t){return typeof t=="string"||t instanceof String}Vt.string=a_;function fA(t){return typeof t=="number"||t instanceof Number}Vt.number=fA;function hA(t){return t instanceof Error}Vt.error=hA;function gA(t){return typeof t=="function"}Vt.func=gA;function c_(t){return Array.isArray(t)}Vt.array=c_;function pA(t){return c_(t)&&t.every(e=>a_(e))}Vt.stringArray=pA});var Rf=I(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Message=ce.NotificationType9=ce.NotificationType8=ce.NotificationType7=ce.NotificationType6=ce.NotificationType5=ce.NotificationType4=ce.NotificationType3=ce.NotificationType2=ce.NotificationType1=ce.NotificationType0=ce.NotificationType=ce.RequestType9=ce.RequestType8=ce.RequestType7=ce.RequestType6=ce.RequestType5=ce.RequestType4=ce.RequestType3=ce.RequestType2=ce.RequestType1=ce.RequestType=ce.RequestType0=ce.AbstractMessageSignature=ce.ParameterStructures=ce.ResponseError=ce.ErrorCodes=void 0;var Oi=go(),rf;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(rf||(ce.ErrorCodes=rf={}));var of=class t extends Error{constructor(e,n,i){super(n),this.code=Oi.number(e)?e:rf.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ce.ResponseError=of;var fn=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ce.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var ut=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ce.AbstractMessageSignature=ut;var sf=class extends ut{constructor(e){super(e,0)}};ce.RequestType0=sf;var af=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType=af;var cf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType1=cf;var uf=class extends ut{constructor(e){super(e,2)}};ce.RequestType2=uf;var lf=class extends ut{constructor(e){super(e,3)}};ce.RequestType3=lf;var df=class extends ut{constructor(e){super(e,4)}};ce.RequestType4=df;var ff=class extends ut{constructor(e){super(e,5)}};ce.RequestType5=ff;var hf=class extends ut{constructor(e){super(e,6)}};ce.RequestType6=hf;var gf=class extends ut{constructor(e){super(e,7)}};ce.RequestType7=gf;var pf=class extends ut{constructor(e){super(e,8)}};ce.RequestType8=pf;var mf=class extends ut{constructor(e){super(e,9)}};ce.RequestType9=mf;var bf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType=bf;var _f=class extends ut{constructor(e){super(e,0)}};ce.NotificationType0=_f;var vf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType1=vf;var yf=class extends ut{constructor(e){super(e,2)}};ce.NotificationType2=yf;var wf=class extends ut{constructor(e){super(e,3)}};ce.NotificationType3=wf;var Sf=class extends ut{constructor(e){super(e,4)}};ce.NotificationType4=Sf;var xf=class extends ut{constructor(e){super(e,5)}};ce.NotificationType5=xf;var Pf=class extends ut{constructor(e){super(e,6)}};ce.NotificationType6=Pf;var Cf=class extends ut{constructor(e){super(e,7)}};ce.NotificationType7=Cf;var kf=class extends ut{constructor(e){super(e,8)}};ce.NotificationType8=kf;var Tf=class extends ut{constructor(e){super(e,9)}};ce.NotificationType9=Tf;var u_;(function(t){function e(s){let c=s;return c&&Oi.string(c.method)&&(Oi.string(c.id)||Oi.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&Oi.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(Oi.string(c.id)||Oi.number(c.id)||c.id===null)}t.isResponse=i})(u_||(ce.Message=u_={}))});var Ff=I(ri=>{"use strict";var l_;Object.defineProperty(ri,"__esModule",{value:!0});ri.LRUCache=ri.LinkedMap=ri.Touch=void 0;var Gt;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Gt||(ri.Touch=Gt={}));var _c=class{constructor(){this[l_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Gt.None){let i=this._map.get(e);if(i)return n!==Gt.None&&this.touch(i,n),i.value}set(e,n,i=Gt.None){let s=this._map.get(e);if(s)s.value=n,i!==Gt.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Gt.None:this.addItemLast(s);break;case Gt.First:this.addItemFirst(s);break;case Gt.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(l_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Gt.First&&n!==Gt.Last)){if(n===Gt.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Gt.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};ri.LinkedMap=_c;var Df=class extends _c{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Gt.AsNew){return super.get(e,n)}peek(e){return super.get(e,Gt.None)}set(e,n){return super.set(e,n,Gt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ri.LRUCache=Df});var f_=I(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.Disposable=void 0;var d_;(function(t){function e(n){return{dispose:n}}t.create=e})(d_||(vc.Disposable=d_={}))});var ii=I(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Ef;function If(){if(Ef===void 0)throw new Error("No runtime abstraction layer installed");return Ef}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ef=n}t.install=e})(If||(If={}));Mf.default=If});var mo=I(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.Emitter=po.Event=void 0;var mA=ii(),h_;(function(t){let e={dispose(){}};t.None=function(){return e}})(h_||(po.Event=h_={}));var Af=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Af),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};po.Emitter=yc;yc._noop=function(){}});var xc=I(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.CancellationTokenSource=bo.CancellationToken=void 0;var bA=ii(),_A=go(),Nf=mo(),wc;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Nf.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Nf.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||_A.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(wc||(bo.CancellationToken=wc={}));var vA=Object.freeze(function(t,e){let n=(0,bA.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),Sc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?vA:(this._emitter||(this._emitter=new Nf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},qf=class{get token(){return this._token||(this._token=new Sc),this._token}cancel(){this._token?this._token.cancel():this._token=wc.Cancelled}dispose(){this._token?this._token instanceof Sc&&this._token.dispose():this._token=wc.None}};bo.CancellationTokenSource=qf});var g_=I(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.SharedArrayReceiverStrategy=_o.SharedArraySenderStrategy=void 0;var yA=xc(),ks;(function(t){t.Continue=0,t.Cancelled=1})(ks||(ks={}));var Of=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=ks.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,ks.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};_o.SharedArraySenderStrategy=Of;var Lf=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===ks.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Bf=class{constructor(e){this.token=new Lf(e)}cancel(){}dispose(){}},Uf=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new yA.CancellationTokenSource:new Bf(n)}};_o.SharedArrayReceiverStrategy=Uf});var Wf=I(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.Semaphore=void 0;var wA=ii(),$f=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,wA.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};Pc.Semaphore=$f});var m_=I(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.ReadableStreamMessageReader=oi.AbstractMessageReader=oi.MessageReader=void 0;var zf=ii(),vo=go(),jf=mo(),SA=Wf(),p_;(function(t){function e(n){let i=n;return i&&vo.func(i.listen)&&vo.func(i.dispose)&&vo.func(i.onError)&&vo.func(i.onClose)&&vo.func(i.onPartialMessage)}t.is=e})(p_||(oi.MessageReader=p_={}));var Cc=class{constructor(){this.errorEmitter=new jf.Emitter,this.closeEmitter=new jf.Emitter,this.partialMessageEmitter=new jf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${vo.string(e.message)?e.message:"unknown"}`)}};oi.AbstractMessageReader=Cc;var Hf;(function(t){function e(n){let i,s,c,u=new Map,d,f=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let m of n.contentDecoders)u.set(m.name,m);if(n.contentTypeDecoder!==void 0&&(d=n.contentTypeDecoder,f.set(d.name,d)),n.contentTypeDecoders!==void 0)for(let m of n.contentTypeDecoders)f.set(m.name,m)}return d===void 0&&(d=(0,zf.default)().applicationJson.decoder,f.set(d.name,d)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:d,contentTypeDecoders:f}}t.fromOptions=e})(Hf||(Hf={}));var Vf=class extends Cc{constructor(e,n){super(),this.readable=e,this.options=Hf.fromOptions(n),this.buffer=(0,zf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new SA.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. +${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,zf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};oi.ReadableStreamMessageReader=Vf});var w_=I(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.WriteableStreamMessageWriter=si.AbstractMessageWriter=si.MessageWriter=void 0;var b_=ii(),Ts=go(),xA=Wf(),__=mo(),PA="Content-Length: ",v_=`\r `,y_;(function(t){function e(n){let i=n;return i&&Ts.func(i.dispose)&&Ts.func(i.onClose)&&Ts.func(i.onError)&&Ts.func(i.write)}t.is=e})(y_||(si.MessageWriter=y_={}));var kc=class{constructor(){this.errorEmitter=new __.Emitter,this.closeEmitter=new __.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${Ts.string(e.message)?e.message:"unknown"}`)}};si.AbstractMessageWriter=kc;var Gf;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,b_.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,b_.default)().applicationJson.encoder}}t.fromOptions=e})(Gf||(Gf={}));var Qf=class extends kc{constructor(e,n){super(),this.writable=e,this.options=Gf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new xA.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let s=[];return s.push(PA,i.byteLength.toString(),v_),s.push(v_),this.doWrite(e,s,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(s){return this.handleError(s,e),Promise.reject(s)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};si.WriteableStreamMessageWriter=Qf});var S_=I(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.AbstractMessageBuffer=void 0;var CA=13,kA=10,TA=`\r `,Kf=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let n=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let n=0,i=0,s=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};Tc.AbstractMessageBuffer=Kf});var T_=I(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.createMessageConnection=Pe.ConnectionOptions=Pe.MessageStrategy=Pe.CancellationStrategy=Pe.CancellationSenderStrategy=Pe.CancellationReceiverStrategy=Pe.RequestCancellationReceiverStrategy=Pe.IdCancellationReceiverStrategy=Pe.ConnectionStrategy=Pe.ConnectionError=Pe.ConnectionErrors=Pe.LogTraceNotification=Pe.SetTraceNotification=Pe.TraceFormat=Pe.TraceValues=Pe.Trace=Pe.NullLogger=Pe.ProgressType=Pe.ProgressToken=void 0;var x_=ii(),_t=ho(),he=Rf(),P_=Ff(),Rs=po(),Jf=xc(),Es;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(Es||(Es={}));var Xf;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(Xf||(Pe.ProgressToken=Xf={}));var Ds;(function(t){t.type=new he.NotificationType("$/progress")})(Ds||(Ds={}));var Yf=class{constructor(){}};Pe.ProgressType=Yf;var Zf;(function(t){function e(n){return _t.func(n)}t.is=e})(Zf||(Zf={}));Pe.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(Pe.Trace=He={}));var C_;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(C_||(Pe.TraceValues=C_={}));(function(t){function e(i){if(!_t.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(Pe.Trace=He={}));var Tn;(function(t){t.Text="text",t.JSON="json"})(Tn||(Pe.TraceFormat=Tn={}));(function(t){function e(n){return _t.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Tn||(Pe.TraceFormat=Tn={}));var eh;(function(t){t.type=new he.NotificationType("$/setTrace")})(eh||(Pe.SetTraceNotification=eh={}));var Rc;(function(t){t.type=new he.NotificationType("$/logTrace")})(Rc||(Pe.LogTraceNotification=Rc={}));var Fs;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(Fs||(Pe.ConnectionErrors=Fs={}));var vo=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Pe.ConnectionError=vo;var th;(function(t){function e(n){let i=n;return i&&_t.func(i.cancelUndispatched)}t.is=e})(th||(Pe.ConnectionStrategy=th={}));var Dc;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(Dc||(Pe.IdCancellationReceiverStrategy=Dc={}));var nh;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(nh||(Pe.RequestCancellationReceiverStrategy=nh={}));var Fc;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new Jf.CancellationTokenSource}});function e(n){return Dc.is(n)||nh.is(n)}t.is=e})(Fc||(Pe.CancellationReceiverStrategy=Fc={}));var Ec;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Es.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&_t.func(i.sendCancellation)&&_t.func(i.cleanup)}t.is=e})(Ec||(Pe.CancellationSenderStrategy=Ec={}));var Ic;(function(t){t.Message=Object.freeze({receiver:Fc.Message,sender:Ec.Message});function e(n){let i=n;return i&&Fc.is(i.receiver)&&Ec.is(i.sender)}t.is=e})(Ic||(Pe.CancellationStrategy=Ic={}));var Mc;(function(t){function e(n){let i=n;return i&&_t.func(i.handleMessage)}t.is=e})(Mc||(Pe.MessageStrategy=Mc={}));var k_;(function(t){function e(n){let i=n;return i&&(Ic.is(i.cancellationStrategy)||th.is(i.connectionStrategy)||Mc.is(i.messageStrategy))}t.is=e})(k_||(Pe.ConnectionOptions=k_={}));var Zn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Zn||(Zn={}));function RA(t,e,n,i){let s=n!==void 0?n:Pe.NullLogger,c=0,u=0,d=0,f="2.0",m,v=new Map,x,D=new Map,N=new Map,A,L=new P_.LinkedMap,B=new Map,K=new Set,F=new Map,P=He.Off,U=Tn.Text,te,ve=Zn.New,Be=new Rs.Emitter,Je=new Rs.Emitter,Dt=new Rs.Emitter,Se=new Rs.Emitter,X=new Rs.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Ic.Message;function se(C){if(C===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+C.toString()}function re(C){return C===null?"res-unknown-"+(++d).toString():"res-"+C.toString()}function Te(){return"not-"+(++u).toString()}function ge(C,H){he.Message.isRequest(H)?C.set(se(H.id),H):he.Message.isResponse(H)?C.set(re(H.id),H):C.set(Te(),H)}function me(C){}function St(){return ve===Zn.Listening}function We(){return ve===Zn.Closed}function je(){return ve===Zn.Disposed}function bn(){(ve===Zn.New||ve===Zn.Listening)&&(ve=Zn.Closed,Je.fire(void 0))}function wr(C){Be.fire([C,void 0,void 0])}function Vn(C){Be.fire(C)}t.onClose(bn),t.onError(wr),e.onClose(bn),e.onError(Vn);function lr(){A||L.size===0||(A=(0,x_.default)().timer.setImmediate(()=>{A=void 0,dr()}))}function xi(C){he.Message.isRequest(C)?Qi(C):he.Message.isNotification(C)?xr(C):he.Message.isResponse(C)?Sr(C):Pr(C)}function dr(){if(L.size===0)return;let C=L.shift();try{let H=i?.messageStrategy;Mc.is(H)?H.handleMessage(C,xi):xi(C)}finally{lr()}}let fr=C=>{try{if(he.Message.isNotification(C)&&C.method===Es.type.method){let H=C.params.id,Z=se(H),ie=L.get(Z);if(he.Message.isRequest(ie)){let Le=i?.connectionStrategy,Ge=Le&&Le.cancelUndispatched?Le.cancelUndispatched(ie,me):void 0;if(Ge&&(Ge.error!==void 0||Ge.result!==void 0)){L.delete(Z),F.delete(H),Ge.id=ie.id,Bt(Ge,C.method,Date.now()),e.write(Ge).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=F.get(H);if(Ue!==void 0){Ue.cancel(),Hr(C);return}else K.add(H)}ge(L,C)}finally{lr()}};function Qi(C){if(je())return;function H(Re,Qe,Ne){let at={jsonrpc:f,id:C.id};Re instanceof he.ResponseError?at.error=Re.toJson():at.result=Re===void 0?null:Re,Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function Z(Re,Qe,Ne){let at={jsonrpc:f,id:C.id,error:Re.toJson()};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function ie(Re,Qe,Ne){Re===void 0&&(Re=null);let at={jsonrpc:f,id:C.id,result:Re};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}Pi(C);let Ue=v.get(C.method),Le,Ge;Ue&&(Le=Ue.type,Ge=Ue.handler);let tt=Date.now();if(Ge||m){let Re=C.id??String(Date.now()),Qe=Dc.is(z.receiver)?z.receiver.createCancellationTokenSource(Re):z.receiver.createCancellationTokenSource(C);C.id!==null&&K.has(C.id)&&Qe.cancel(),C.id!==null&&F.set(Re,Qe);try{let Ne;if(Ge)if(C.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines ${Le.numberOfParams} params but received none.`),C.method,tt);return}Ne=Ge(Qe.token)}else if(Array.isArray(C.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by name but received parameters by position`),C.method,tt);return}Ne=Ge(...C.params,Qe.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by position but received parameters by name`),C.method,tt);return}Ne=Ge(C.params,Qe.token)}else m&&(Ne=m(C.method,C.params,Qe.token));let at=Ne;Ne?at.then?at.then(Ft=>{F.delete(Re),H(Ft,C.method,tt)},Ft=>{F.delete(Re),Ft instanceof he.ResponseError?Z(Ft,C.method,tt):Ft&&_t.string(Ft.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ft.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}):(F.delete(Re),H(Ne,C.method,tt)):(F.delete(Re),ie(Ne,C.method,tt))}catch(Ne){F.delete(Re),Ne instanceof he.ResponseError?H(Ne,C.method,tt):Ne&&_t.string(Ne.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ne.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${C.method}`),C.method,tt)}function Sr(C){if(!je())if(C.id===null)C.error?s.error(`Received response message without id: Error is: +${v}`);let D=v.substr(0,x),N=v.substr(x+1).trim();d.set(e?D.toLowerCase():D,N)}return d}tryReadBody(e){if(!(this._totalLengththis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};Tc.AbstractMessageBuffer=Kf});var T_=I(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.createMessageConnection=Pe.ConnectionOptions=Pe.MessageStrategy=Pe.CancellationStrategy=Pe.CancellationSenderStrategy=Pe.CancellationReceiverStrategy=Pe.RequestCancellationReceiverStrategy=Pe.IdCancellationReceiverStrategy=Pe.ConnectionStrategy=Pe.ConnectionError=Pe.ConnectionErrors=Pe.LogTraceNotification=Pe.SetTraceNotification=Pe.TraceFormat=Pe.TraceValues=Pe.Trace=Pe.NullLogger=Pe.ProgressType=Pe.ProgressToken=void 0;var x_=ii(),_t=go(),he=Rf(),P_=Ff(),Rs=mo(),Jf=xc(),Es;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(Es||(Es={}));var Xf;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(Xf||(Pe.ProgressToken=Xf={}));var Ds;(function(t){t.type=new he.NotificationType("$/progress")})(Ds||(Ds={}));var Yf=class{constructor(){}};Pe.ProgressType=Yf;var Zf;(function(t){function e(n){return _t.func(n)}t.is=e})(Zf||(Zf={}));Pe.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(Pe.Trace=He={}));var C_;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(C_||(Pe.TraceValues=C_={}));(function(t){function e(i){if(!_t.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(Pe.Trace=He={}));var Tn;(function(t){t.Text="text",t.JSON="json"})(Tn||(Pe.TraceFormat=Tn={}));(function(t){function e(n){return _t.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Tn||(Pe.TraceFormat=Tn={}));var eh;(function(t){t.type=new he.NotificationType("$/setTrace")})(eh||(Pe.SetTraceNotification=eh={}));var Rc;(function(t){t.type=new he.NotificationType("$/logTrace")})(Rc||(Pe.LogTraceNotification=Rc={}));var Fs;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(Fs||(Pe.ConnectionErrors=Fs={}));var yo=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Pe.ConnectionError=yo;var th;(function(t){function e(n){let i=n;return i&&_t.func(i.cancelUndispatched)}t.is=e})(th||(Pe.ConnectionStrategy=th={}));var Dc;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(Dc||(Pe.IdCancellationReceiverStrategy=Dc={}));var nh;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(nh||(Pe.RequestCancellationReceiverStrategy=nh={}));var Fc;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new Jf.CancellationTokenSource}});function e(n){return Dc.is(n)||nh.is(n)}t.is=e})(Fc||(Pe.CancellationReceiverStrategy=Fc={}));var Ec;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Es.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&_t.func(i.sendCancellation)&&_t.func(i.cleanup)}t.is=e})(Ec||(Pe.CancellationSenderStrategy=Ec={}));var Ic;(function(t){t.Message=Object.freeze({receiver:Fc.Message,sender:Ec.Message});function e(n){let i=n;return i&&Fc.is(i.receiver)&&Ec.is(i.sender)}t.is=e})(Ic||(Pe.CancellationStrategy=Ic={}));var Mc;(function(t){function e(n){let i=n;return i&&_t.func(i.handleMessage)}t.is=e})(Mc||(Pe.MessageStrategy=Mc={}));var k_;(function(t){function e(n){let i=n;return i&&(Ic.is(i.cancellationStrategy)||th.is(i.connectionStrategy)||Mc.is(i.messageStrategy))}t.is=e})(k_||(Pe.ConnectionOptions=k_={}));var Zn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Zn||(Zn={}));function RA(t,e,n,i){let s=n!==void 0?n:Pe.NullLogger,c=0,u=0,d=0,f="2.0",m,v=new Map,x,D=new Map,N=new Map,A,L=new P_.LinkedMap,B=new Map,K=new Set,F=new Map,P=He.Off,U=Tn.Text,te,ve=Zn.New,Be=new Rs.Emitter,Je=new Rs.Emitter,Dt=new Rs.Emitter,Se=new Rs.Emitter,X=new Rs.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Ic.Message;function se(C){if(C===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+C.toString()}function re(C){return C===null?"res-unknown-"+(++d).toString():"res-"+C.toString()}function Re(){return"not-"+(++u).toString()}function ge(C,H){he.Message.isRequest(H)?C.set(se(H.id),H):he.Message.isResponse(H)?C.set(re(H.id),H):C.set(Re(),H)}function me(C){}function St(){return ve===Zn.Listening}function We(){return ve===Zn.Closed}function je(){return ve===Zn.Disposed}function bn(){(ve===Zn.New||ve===Zn.Listening)&&(ve=Zn.Closed,Je.fire(void 0))}function wr(C){Be.fire([C,void 0,void 0])}function Vn(C){Be.fire(C)}t.onClose(bn),t.onError(wr),e.onClose(bn),e.onError(Vn);function lr(){A||L.size===0||(A=(0,x_.default)().timer.setImmediate(()=>{A=void 0,dr()}))}function Pi(C){he.Message.isRequest(C)?Ki(C):he.Message.isNotification(C)?xr(C):he.Message.isResponse(C)?Sr(C):Pr(C)}function dr(){if(L.size===0)return;let C=L.shift();try{let H=i?.messageStrategy;Mc.is(H)?H.handleMessage(C,Pi):Pi(C)}finally{lr()}}let fr=C=>{try{if(he.Message.isNotification(C)&&C.method===Es.type.method){let H=C.params.id,Z=se(H),ie=L.get(Z);if(he.Message.isRequest(ie)){let Le=i?.connectionStrategy,Ge=Le&&Le.cancelUndispatched?Le.cancelUndispatched(ie,me):void 0;if(Ge&&(Ge.error!==void 0||Ge.result!==void 0)){L.delete(Z),F.delete(H),Ge.id=ie.id,Bt(Ge,C.method,Date.now()),e.write(Ge).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=F.get(H);if(Ue!==void 0){Ue.cancel(),Hr(C);return}else K.add(H)}ge(L,C)}finally{lr()}};function Ki(C){if(je())return;function H(De,Qe,Ne){let at={jsonrpc:f,id:C.id};De instanceof he.ResponseError?at.error=De.toJson():at.result=De===void 0?null:De,Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function Z(De,Qe,Ne){let at={jsonrpc:f,id:C.id,error:De.toJson()};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function ie(De,Qe,Ne){De===void 0&&(De=null);let at={jsonrpc:f,id:C.id,result:De};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}Ci(C);let Ue=v.get(C.method),Le,Ge;Ue&&(Le=Ue.type,Ge=Ue.handler);let tt=Date.now();if(Ge||m){let De=C.id??String(Date.now()),Qe=Dc.is(z.receiver)?z.receiver.createCancellationTokenSource(De):z.receiver.createCancellationTokenSource(C);C.id!==null&&K.has(C.id)&&Qe.cancel(),C.id!==null&&F.set(De,Qe);try{let Ne;if(Ge)if(C.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines ${Le.numberOfParams} params but received none.`),C.method,tt);return}Ne=Ge(Qe.token)}else if(Array.isArray(C.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by name but received parameters by position`),C.method,tt);return}Ne=Ge(...C.params,Qe.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by position but received parameters by name`),C.method,tt);return}Ne=Ge(C.params,Qe.token)}else m&&(Ne=m(C.method,C.params,Qe.token));let at=Ne;Ne?at.then?at.then(Ft=>{F.delete(De),H(Ft,C.method,tt)},Ft=>{F.delete(De),Ft instanceof he.ResponseError?Z(Ft,C.method,tt):Ft&&_t.string(Ft.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ft.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}):(F.delete(De),H(Ne,C.method,tt)):(F.delete(De),ie(Ne,C.method,tt))}catch(Ne){F.delete(De),Ne instanceof he.ResponseError?H(Ne,C.method,tt):Ne&&_t.string(Ne.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ne.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${C.method}`),C.method,tt)}function Sr(C){if(!je())if(C.id===null)C.error?s.error(`Received response message without id: Error is: ${JSON.stringify(C.error,void 0,4)}`):s.error("Received response message without id. No further error information provided.");else{let H=C.id,Z=B.get(H);if(gr(C,Z),Z!==void 0){B.delete(H);try{if(C.error){let ie=C.error;Z.reject(new he.ResponseError(ie.code,ie.message,ie.data))}else if(C.result!==void 0)Z.resolve(C.result);else throw new Error("Should never happen.")}catch(ie){ie.message?s.error(`Response handler '${Z.method}' failed with message: ${ie.message}`):s.error(`Response handler '${Z.method}' failed unexpectedly.`)}}}}function xr(C){if(je())return;let H,Z;if(C.method===Es.type.method){let ie=C.params.id;K.delete(ie),Hr(C);return}else{let ie=D.get(C.method);ie&&(Z=ie.handler,H=ie.type)}if(Z||x)try{if(Hr(C),Z)if(C.params===void 0)H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received none.`),Z();else if(Array.isArray(C.params)){let ie=C.params;C.method===Ds.type.method&&ie.length===2&&Xf.is(ie[0])?Z({token:ie[0],value:ie[1]}):(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines parameters by name but received parameters by position`),H.numberOfParams!==C.params.length&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received ${ie.length} arguments`)),Z(...ie))}else H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&s.error(`Notification ${C.method} defines parameters by position but received parameters by name`),Z(C.params);else x&&x(C.method,C.params)}catch(ie){ie.message?s.error(`Notification handler '${C.method}' failed with message: ${ie.message}`):s.error(`Notification handler '${C.method}' failed unexpectedly.`)}else Dt.fire(C)}function Pr(C){if(!C){s.error("Received empty message.");return}s.error(`Received message which is neither a response nor a notification message: ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z=H.id,ie=B.get(Z);ie&&ie.reject(new Error("The received response has neither a result nor an error property."))}}function mt(C){if(C!=null)switch(P){case He.Verbose:return JSON.stringify(C,null,4);case He.Compact:return JSON.stringify(C);default:return}}function hr(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} -`),te.log(`Sending request '${C.method} - (${C.id})'.`,H)}else xt("send-request",C)}function Ki(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} +`),te.log(`Sending request '${C.method} - (${C.id})'.`,H)}else xt("send-request",C)}function Ji(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} `:H=`No parameters provided. @@ -22,7 +22,7 @@ ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z `:C.error===void 0&&(ie=`No result returned. -`)),te.log(`Sending response '${H} - (${C.id})'. Processing request took ${Date.now()-Z}ms`,ie)}else xt("send-response",C)}function Pi(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} +`)),te.log(`Sending response '${H} - (${C.id})'. Processing request took ${Date.now()-Z}ms`,ie)}else xt("send-response",C)}function Ci(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} `),te.log(`Received request '${C.method} - (${C.id})'.`,H)}else xt("receive-request",C)}function Hr(C){if(!(P===He.Off||!te||C.method===Rc.type.method))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} @@ -34,14 +34,14 @@ ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z `:C.error===void 0&&(Z=`No result returned. -`)),H){let ie=C.error?` Request failed: ${C.error.message} (${C.error.code}).`:"";te.log(`Received response '${H.method} - (${C.id})' in ${Date.now()-H.timerStart}ms.${ie}`,Z)}else te.log(`Received response ${C.id} without active response promise.`,Z)}else xt("receive-response",C)}function xt(C,H){if(!te||P===He.Off)return;let Z={isLSPMessage:!0,type:C,message:H,timestamp:Date.now()};te.log(Z)}function sn(){if(We())throw new vo(Fs.Closed,"Connection is closed.");if(je())throw new vo(Fs.Disposed,"Connection is disposed.")}function Cr(){if(St())throw new vo(Fs.AlreadyListening,"Connection is already listening")}function Ji(){if(!St())throw new Error("Call listen() first.")}function jt(C){return C===void 0?null:C}function Ci(C){if(C!==null)return C}function Gn(C){return C!=null&&!Array.isArray(C)&&typeof C=="object"}function _n(C,H){switch(C){case he.ParameterStructures.auto:return Gn(H)?Ci(H):[jt(H)];case he.ParameterStructures.byName:if(!Gn(H))throw new Error("Received parameters by name but param is not an object literal.");return Ci(H);case he.ParameterStructures.byPosition:return[jt(H)];default:throw new Error(`Unknown parameter structure ${C.toString()}`)}}function kr(C,H){let Z,ie=C.numberOfParams;switch(ie){case 0:Z=void 0;break;case 1:Z=_n(C.parameterStructures,H[0]);break;default:Z=[];for(let Ue=0;Ue{sn();let Z,ie;if(_t.string(C)){Z=C;let Le=H[0],Ge=0,tt=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Ge=1,tt=Le);let Re=H.length,Qe=Re-Ge;switch(Qe){case 0:ie=void 0;break;case 1:ie=_n(tt,H[Ge]);break;default:if(tt===he.ParameterStructures.byName)throw new Error(`Received ${Qe} parameters for 'by Name' notification parameter structure.`);ie=H.slice(Ge,Re).map(Ne=>jt(Ne));break}}else{let Le=H;Z=C.method,ie=kr(C,Le)}let Ue={jsonrpc:f,method:Z,params:ie};return Ki(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(C,H)=>{sn();let Z;return _t.func(C)?x=C:H&&(_t.string(C)?(Z=C,D.set(C,{type:void 0,handler:H})):(Z=C.method,D.set(C.method,{type:C,handler:H}))),{dispose:()=>{Z!==void 0?D.delete(Z):x=void 0}}},onProgress:(C,H,Z)=>{if(N.has(H))throw new Error(`Progress handler for token ${H} already registered`);return N.set(H,Z),{dispose:()=>{N.delete(H)}}},sendProgress:(C,H,Z)=>vn.sendNotification(Ds.type,{token:H,value:Z}),onUnhandledProgress:Se.event,sendRequest:(C,...H)=>{sn(),Ji();let Z,ie,Ue;if(_t.string(C)){Z=C;let Re=H[0],Qe=H[H.length-1],Ne=0,at=he.ParameterStructures.auto;he.ParameterStructures.is(Re)&&(Ne=1,at=Re);let Ft=H.length;Jf.CancellationToken.is(Qe)&&(Ft=Ft-1,Ue=Qe);let Yt=Ft-Ne;switch(Yt){case 0:ie=void 0;break;case 1:ie=_n(at,H[Ne]);break;default:if(at===he.ParameterStructures.byName)throw new Error(`Received ${Yt} parameters for 'by Name' request parameter structure.`);ie=H.slice(Ne,Ft).map(Xi=>jt(Xi));break}}else{let Re=H;Z=C.method,ie=kr(C,Re);let Qe=C.numberOfParams;Ue=Jf.CancellationToken.is(Re[Qe])?Re[Qe]:void 0}let Le=c++,Ge;Ue&&(Ge=Ue.onCancellationRequested(()=>{let Re=z.sender.sendCancellation(vn,Le);return Re===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):Re.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let tt={jsonrpc:f,id:Le,method:Z,params:ie};return hr(tt),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(tt),new Promise(async(Re,Qe)=>{let Ne=Yt=>{Re(Yt),z.sender.cleanup(Le),Ge?.dispose()},at=Yt=>{Qe(Yt),z.sender.cleanup(Le),Ge?.dispose()},Ft={method:Z,timerStart:Date.now(),resolve:Ne,reject:at};try{await e.write(tt),B.set(Le,Ft)}catch(Yt){throw s.error("Sending request failed."),Ft.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Yt.message?Yt.message:"Unknown reason")),Yt}})},onRequest:(C,H)=>{sn();let Z=null;return Zf.is(C)?(Z=void 0,m=C):_t.string(C)?(Z=null,H!==void 0&&(Z=C,v.set(C,{handler:H,type:void 0}))):H!==void 0&&(Z=C.method,v.set(C.method,{type:C,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?v.delete(Z):m=void 0)}}},hasPendingResponse:()=>B.size>0,trace:async(C,H,Z)=>{let ie=!1,Ue=Tn.Text;Z!==void 0&&(_t.boolean(Z)?ie=Z:(ie=Z.sendNotification||!1,Ue=Z.traceFormat||Tn.Text)),P=C,U=Ue,P===He.Off?te=void 0:te=H,ie&&!We()&&!je()&&await vn.sendNotification(eh.type,{value:He.toString(C)})},onError:Be.event,onClose:Je.event,onUnhandledNotification:Dt.event,onDispose:X.event,end:()=>{e.end()},dispose:()=>{if(je())return;ve=Zn.Disposed,X.fire(void 0);let C=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of B.values())H.reject(C);B=new Map,F=new Map,K=new Set,L=new P_.LinkedMap,_t.func(e.dispose)&&e.dispose(),_t.func(t.dispose)&&t.dispose()},listen:()=>{sn(),Cr(),ve=Zn.Listening,t.listen(fr)},inspect:()=>{(0,x_.default)().console.log("inspect")}};return vn.onNotification(Rc.type,C=>{if(P===He.Off||!te)return;let H=P===He.Verbose||P===He.Compact;te.log(C.message,H?C.verbose:void 0)}),vn.onNotification(Ds.type,C=>{let H=N.get(C.token);H?H(C.value):Se.fire(C)}),vn}Pe.createMessageConnection=RA});var Ac=I(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var rt=Rf();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return rt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return rt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return rt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return rt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return rt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return rt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return rt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return rt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return rt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return rt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return rt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return rt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return rt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return rt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return rt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return rt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return rt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return rt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return rt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return rt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return rt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return rt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return rt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return rt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return rt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return rt.ParameterStructures}});var rh=Ff();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return rh.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return rh.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return rh.Touch}});var DA=f_();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return DA.Disposable}});var R_=po();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return R_.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return R_.Emitter}});var D_=xc();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return D_.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return D_.CancellationToken}});var F_=g_();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return F_.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return F_.SharedArrayReceiverStrategy}});var ih=m_();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return ih.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return ih.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return ih.ReadableStreamMessageReader}});var oh=w_();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return oh.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return oh.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return oh.WriteableStreamMessageWriter}});var FA=S_();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return FA.AbstractMessageBuffer}});var $t=T_();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return $t.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return $t.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return $t.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return $t.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return $t.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return $t.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return $t.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return $t.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return $t.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return $t.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return $t.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return $t.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return $t.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return $t.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return $t.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return $t.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return $t.MessageStrategy}});var EA=ii();j.RAL=EA.default});var M_=I(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var E_=require("util"),qr=Ac(),Nc=class t extends qr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new E_.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};Nc.emptyBuffer=Buffer.allocUnsafe(0);var sh=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),qr.Disposable.create(()=>this.stream.off("data",e))}},ah=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},I_=Object.freeze({messageBuffer:Object.freeze({create:t=>new Nc(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new E_.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new sh(t),asWritableStream:t=>new ah(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function ch(){return I_}(function(t){function e(){qr.RAL.install(I_)}t.install=e})(ch||(ch={}));uh.default=ch});var Bi=I(Oe=>{"use strict";var IA=Oe&&Oe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),MA=Oe&&Oe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&IA(e,t,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var yo=M_();yo.default.install();var A_=require("path"),AA=require("os"),NA=require("crypto"),Lc=require("net"),Rn=Ac();MA(Ac(),Oe);var lh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Rn.Disposable.create(()=>this.process.off("message",e))}};Oe.IPCMessageReader=lh;var dh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=dh;var fh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.onData=new Rn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};Oe.PortMessageReader=fh;var hh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.PortMessageWriter=hh;var Oi=class extends Rn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.SocketMessageReader=Oi;var Li=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Li;var qc=class extends Rn.ReadableStreamMessageReader{constructor(e,n){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.StreamMessageReader=qc;var Oc=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n)}};Oe.StreamMessageWriter=Oc;var N_=process.env.XDG_RUNTIME_DIR,qA=new Map([["linux",107],["darwin",103]]);function OA(){let t=(0,NA.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;N_?e=A_.join(N_,`vscode-ipc-${t}.sock`):e=A_.join(AA.tmpdir(),`vscode-${t}.sock`);let n=qA.get(process.platform);return n!==void 0&&e.length>n&&(0,yo.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}Oe.generateRandomPipeName=OA;function LA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientPipeTransport=LA;function BA(t,e="utf-8"){let n=(0,Lc.createConnection)(t);return[new Oi(n,e),new Li(n,e)]}Oe.createServerPipeTransport=BA;function UA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientSocketTransport=UA;function $A(t,e="utf-8"){let n=(0,Lc.createConnection)(t,"127.0.0.1");return[new Oi(n,e),new Li(n,e)]}Oe.createServerSocketTransport=$A;function WA(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function jA(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function zA(t,e,n,i){n||(n=Rn.NullLogger);let s=WA(t)?new qc(t):t,c=jA(e)?new Oc(e):e;return Rn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Rn.createMessageConnection)(s,c,n,i)}Oe.createMessageConnection=zA});var gh=I((P2,q_)=>{"use strict";q_.exports=Bi()});var Uc=I((O_,Bc)=>{"use strict";(function(t){if(typeof Bc=="object"&&typeof Bc.exports=="object"){var e=t(require,O_);e!==void 0&&(Bc.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function k(R){return typeof R=="string"}p.is=k})(n||(e.DocumentUri=n={}));var i;(function(p){function k(R){return typeof R=="string"}p.is=k})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(c||(e.uinteger=c={}));var u;(function(p){function k(y,g){return y===Number.MAX_VALUE&&(y=c.MAX_VALUE),g===Number.MAX_VALUE&&(g=c.MAX_VALUE),{line:y,character:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.line)&&q.uinteger(g.character)}p.is=R})(u||(e.Position=u={}));var d;(function(p){function k(y,g,O,G){if(q.uinteger(y)&&q.uinteger(g)&&q.uinteger(O)&&q.uinteger(G))return{start:u.create(y,g),end:u.create(O,G)};if(u.is(y)&&u.is(g))return{start:y,end:g};throw new Error("Range#create called with invalid arguments[".concat(y,", ").concat(g,", ").concat(O,", ").concat(G,"]"))}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&u.is(g.start)&&u.is(g.end)}p.is=R})(d||(e.Range=d={}));var f;(function(p){function k(y,g){return{uri:y,range:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&(q.string(g.uri)||q.undefined(g.uri))}p.is=R})(f||(e.Location=f={}));var m;(function(p){function k(y,g,O,G){return{targetUri:y,targetRange:g,targetSelectionRange:O,originSelectionRange:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.targetRange)&&q.string(g.targetUri)&&d.is(g.targetSelectionRange)&&(d.is(g.originSelectionRange)||q.undefined(g.originSelectionRange))}p.is=R})(m||(e.LocationLink=m={}));var v;(function(p){function k(y,g,O,G){return{red:y,green:g,blue:O,alpha:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.numberRange(g.red,0,1)&&q.numberRange(g.green,0,1)&&q.numberRange(g.blue,0,1)&&q.numberRange(g.alpha,0,1)}p.is=R})(v||(e.Color=v={}));var x;(function(p){function k(y,g){return{range:y,color:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&v.is(g.color)}p.is=R})(x||(e.ColorInformation=x={}));var D;(function(p){function k(y,g,O){return{label:y,textEdit:g,additionalTextEdits:O}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.undefined(g.textEdit)||te.is(g))&&(q.undefined(g.additionalTextEdits)||q.typedArray(g.additionalTextEdits,te.is))}p.is=R})(D||(e.ColorPresentation=D={}));var N;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(N||(e.FoldingRangeKind=N={}));var A;(function(p){function k(y,g,O,G,be,ft){var Xe={startLine:y,endLine:g};return q.defined(O)&&(Xe.startCharacter=O),q.defined(G)&&(Xe.endCharacter=G),q.defined(be)&&(Xe.kind=be),q.defined(ft)&&(Xe.collapsedText=ft),Xe}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.startLine)&&q.uinteger(g.startLine)&&(q.undefined(g.startCharacter)||q.uinteger(g.startCharacter))&&(q.undefined(g.endCharacter)||q.uinteger(g.endCharacter))&&(q.undefined(g.kind)||q.string(g.kind))}p.is=R})(A||(e.FoldingRange=A={}));var L;(function(p){function k(y,g){return{location:y,message:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&f.is(g.location)&&q.string(g.message)}p.is=R})(L||(e.DiagnosticRelatedInformation=L={}));var B;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(B||(e.DiagnosticSeverity=B={}));var K;(function(p){p.Unnecessary=1,p.Deprecated=2})(K||(e.DiagnosticTag=K={}));var F;(function(p){function k(R){var y=R;return q.objectLiteral(y)&&q.string(y.href)}p.is=k})(F||(e.CodeDescription=F={}));var P;(function(p){function k(y,g,O,G,be,ft){var Xe={range:y,message:g};return q.defined(O)&&(Xe.severity=O),q.defined(G)&&(Xe.code=G),q.defined(be)&&(Xe.source=be),q.defined(ft)&&(Xe.relatedInformation=ft),Xe}p.create=k;function R(y){var g,O=y;return q.defined(O)&&d.is(O.range)&&q.string(O.message)&&(q.number(O.severity)||q.undefined(O.severity))&&(q.integer(O.code)||q.string(O.code)||q.undefined(O.code))&&(q.undefined(O.codeDescription)||q.string((g=O.codeDescription)===null||g===void 0?void 0:g.href))&&(q.string(O.source)||q.undefined(O.source))&&(q.undefined(O.relatedInformation)||q.typedArray(O.relatedInformation,L.is))}p.is=R})(P||(e.Diagnostic=P={}));var U;(function(p){function k(y,g){for(var O=[],G=2;G0&&(be.arguments=O),be}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.title)&&q.string(g.command)}p.is=R})(U||(e.Command=U={}));var te;(function(p){function k(O,G){return{range:O,newText:G}}p.replace=k;function R(O,G){return{range:{start:O,end:O},newText:G}}p.insert=R;function y(O){return{range:O,newText:""}}p.del=y;function g(O){var G=O;return q.objectLiteral(G)&&q.string(G.newText)&&d.is(G.range)}p.is=g})(te||(e.TextEdit=te={}));var ve;(function(p){function k(y,g,O){var G={label:y};return g!==void 0&&(G.needsConfirmation=g),O!==void 0&&(G.description=O),G}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.boolean(g.needsConfirmation)||g.needsConfirmation===void 0)&&(q.string(g.description)||g.description===void 0)}p.is=R})(ve||(e.ChangeAnnotation=ve={}));var Be;(function(p){function k(R){var y=R;return q.string(y)}p.is=k})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Je;(function(p){function k(O,G,be){return{range:O,newText:G,annotationId:be}}p.replace=k;function R(O,G,be){return{range:{start:O,end:O},newText:G,annotationId:be}}p.insert=R;function y(O,G){return{range:O,newText:"",annotationId:G}}p.del=y;function g(O){var G=O;return te.is(G)&&(ve.is(G.annotationId)||Be.is(G.annotationId))}p.is=g})(Je||(e.AnnotatedTextEdit=Je={}));var Dt;(function(p){function k(y,g){return{textDocument:y,edits:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&We.is(g.textDocument)&&Array.isArray(g.edits)}p.is=R})(Dt||(e.TextDocumentEdit=Dt={}));var Se;(function(p){function k(y,g,O){var G={kind:"create",uri:y};return g!==void 0&&(g.overwrite!==void 0||g.ignoreIfExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="create"&&q.string(g.uri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(Se||(e.CreateFile=Se={}));var X;(function(p){function k(y,g,O,G){var be={kind:"rename",oldUri:y,newUri:g};return O!==void 0&&(O.overwrite!==void 0||O.ignoreIfExists!==void 0)&&(be.options=O),G!==void 0&&(be.annotationId=G),be}p.create=k;function R(y){var g=y;return g&&g.kind==="rename"&&q.string(g.oldUri)&&q.string(g.newUri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(X||(e.RenameFile=X={}));var z;(function(p){function k(y,g,O){var G={kind:"delete",uri:y};return g!==void 0&&(g.recursive!==void 0||g.ignoreIfNotExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="delete"&&q.string(g.uri)&&(g.options===void 0||(g.options.recursive===void 0||q.boolean(g.options.recursive))&&(g.options.ignoreIfNotExists===void 0||q.boolean(g.options.ignoreIfNotExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var se;(function(p){function k(R){var y=R;return y&&(y.changes!==void 0||y.documentChanges!==void 0)&&(y.documentChanges===void 0||y.documentChanges.every(function(g){return q.string(g.kind)?Se.is(g)||X.is(g)||z.is(g):Dt.is(g)}))}p.is=k})(se||(e.WorkspaceEdit=se={}));var re=function(){function p(k,R){this.edits=k,this.changeAnnotations=R}return p.prototype.insert=function(k,R,y){var g,O;if(y===void 0?g=te.insert(k,R):Be.is(y)?(O=y,g=Je.insert(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.insert(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.replace=function(k,R,y){var g,O;if(y===void 0?g=te.replace(k,R):Be.is(y)?(O=y,g=Je.replace(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.replace(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.delete=function(k,R){var y,g;if(R===void 0?y=te.del(k):Be.is(R)?(g=R,y=Je.del(k,R)):(this.assertChangeAnnotations(this.changeAnnotations),g=this.changeAnnotations.manage(R),y=Je.del(k,g)),this.edits.push(y),g!==void 0)return g},p.prototype.add=function(k){this.edits.push(k)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(k){if(k===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),Te=function(){function p(k){this._annotations=k===void 0?Object.create(null):k,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(k,R){var y;if(Be.is(k)?y=k:(y=this.nextId(),R=k),this._annotations[y]!==void 0)throw new Error("Id ".concat(y," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(y));return this._annotations[y]=R,this._size++,y},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(k){var R=this;this._textEditChanges=Object.create(null),k!==void 0?(this._workspaceEdit=k,k.documentChanges?(this._changeAnnotations=new Te(k.changeAnnotations),k.changeAnnotations=this._changeAnnotations.all(),k.documentChanges.forEach(function(y){if(Dt.is(y)){var g=new re(y.edits,R._changeAnnotations);R._textEditChanges[y.textDocument.uri]=g}})):k.changes&&Object.keys(k.changes).forEach(function(y){var g=new re(k.changes[y]);R._textEditChanges[y]=g})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(k){if(We.is(k)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:k.uri,version:k.version},y=this._textEditChanges[R.uri];if(!y){var g=[],O={textDocument:R,edits:g};this._workspaceEdit.documentChanges.push(O),y=new re(g,this._changeAnnotations),this._textEditChanges[R.uri]=y}return y}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var y=this._textEditChanges[k];if(!y){var g=[];this._workspaceEdit.changes[k]=g,y=new re(g),this._textEditChanges[k]=y}return y}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Te,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=Se.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=Se.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p.prototype.renameFile=function(k,R,y,g){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var O;ve.is(y)||Be.is(y)?O=y:g=y;var G,be;if(O===void 0?G=X.create(k,R,g):(be=Be.is(O)?O:this._changeAnnotations.manage(O),G=X.create(k,R,g,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=z.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=z.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p}();e.WorkspaceChange=ge;var me;(function(p){function k(y){return{uri:y}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)}p.is=R})(me||(e.TextDocumentIdentifier=me={}));var St;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.integer(g.version)}p.is=R})(St||(e.VersionedTextDocumentIdentifier=St={}));var We;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&(g.version===null||q.integer(g.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function k(y,g,O,G){return{uri:y,languageId:g,version:O,text:G}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.string(g.languageId)&&q.integer(g.version)&&q.string(g.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function k(R){var y=R;return y===p.PlainText||y===p.Markdown}p.is=k})(bn||(e.MarkupKind=bn={}));var wr;(function(p){function k(R){var y=R;return q.objectLiteral(R)&&bn.is(y.kind)&&q.string(y.value)}p.is=k})(wr||(e.MarkupContent=wr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(e.CompletionItemKind=Vn={}));var lr;(function(p){p.PlainText=1,p.Snippet=2})(lr||(e.InsertTextFormat=lr={}));var xi;(function(p){p.Deprecated=1})(xi||(e.CompletionItemTag=xi={}));var dr;(function(p){function k(y,g,O){return{newText:y,insert:g,replace:O}}p.create=k;function R(y){var g=y;return g&&q.string(g.newText)&&d.is(g.insert)&&d.is(g.replace)}p.is=R})(dr||(e.InsertReplaceEdit=dr={}));var fr;(function(p){p.asIs=1,p.adjustIndentation=2})(fr||(e.InsertTextMode=fr={}));var Qi;(function(p){function k(R){var y=R;return y&&(q.string(y.detail)||y.detail===void 0)&&(q.string(y.description)||y.description===void 0)}p.is=k})(Qi||(e.CompletionItemLabelDetails=Qi={}));var Sr;(function(p){function k(R){return{label:R}}p.create=k})(Sr||(e.CompletionItem=Sr={}));var xr;(function(p){function k(R,y){return{items:R||[],isIncomplete:!!y}}p.create=k})(xr||(e.CompletionList=xr={}));var Pr;(function(p){function k(y){return y.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=k;function R(y){var g=y;return q.string(g)||q.objectLiteral(g)&&q.string(g.language)&&q.string(g.value)}p.is=R})(Pr||(e.MarkedString=Pr={}));var mt;(function(p){function k(R){var y=R;return!!y&&q.objectLiteral(y)&&(wr.is(y.contents)||Pr.is(y.contents)||q.typedArray(y.contents,Pr.is))&&(R.range===void 0||d.is(R.range))}p.is=k})(mt||(e.Hover=mt={}));var hr;(function(p){function k(R,y){return y?{label:R,documentation:y}:{label:R}}p.create=k})(hr||(e.ParameterInformation=hr={}));var Ki;(function(p){function k(R,y){for(var g=[],O=2;O{sn();let Z,ie;if(_t.string(C)){Z=C;let Le=H[0],Ge=0,tt=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Ge=1,tt=Le);let De=H.length,Qe=De-Ge;switch(Qe){case 0:ie=void 0;break;case 1:ie=_n(tt,H[Ge]);break;default:if(tt===he.ParameterStructures.byName)throw new Error(`Received ${Qe} parameters for 'by Name' notification parameter structure.`);ie=H.slice(Ge,De).map(Ne=>jt(Ne));break}}else{let Le=H;Z=C.method,ie=kr(C,Le)}let Ue={jsonrpc:f,method:Z,params:ie};return Ji(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(C,H)=>{sn();let Z;return _t.func(C)?x=C:H&&(_t.string(C)?(Z=C,D.set(C,{type:void 0,handler:H})):(Z=C.method,D.set(C.method,{type:C,handler:H}))),{dispose:()=>{Z!==void 0?D.delete(Z):x=void 0}}},onProgress:(C,H,Z)=>{if(N.has(H))throw new Error(`Progress handler for token ${H} already registered`);return N.set(H,Z),{dispose:()=>{N.delete(H)}}},sendProgress:(C,H,Z)=>vn.sendNotification(Ds.type,{token:H,value:Z}),onUnhandledProgress:Se.event,sendRequest:(C,...H)=>{sn(),Xi();let Z,ie,Ue;if(_t.string(C)){Z=C;let De=H[0],Qe=H[H.length-1],Ne=0,at=he.ParameterStructures.auto;he.ParameterStructures.is(De)&&(Ne=1,at=De);let Ft=H.length;Jf.CancellationToken.is(Qe)&&(Ft=Ft-1,Ue=Qe);let Yt=Ft-Ne;switch(Yt){case 0:ie=void 0;break;case 1:ie=_n(at,H[Ne]);break;default:if(at===he.ParameterStructures.byName)throw new Error(`Received ${Yt} parameters for 'by Name' request parameter structure.`);ie=H.slice(Ne,Ft).map(Yi=>jt(Yi));break}}else{let De=H;Z=C.method,ie=kr(C,De);let Qe=C.numberOfParams;Ue=Jf.CancellationToken.is(De[Qe])?De[Qe]:void 0}let Le=c++,Ge;Ue&&(Ge=Ue.onCancellationRequested(()=>{let De=z.sender.sendCancellation(vn,Le);return De===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):De.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let tt={jsonrpc:f,id:Le,method:Z,params:ie};return hr(tt),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(tt),new Promise(async(De,Qe)=>{let Ne=Yt=>{De(Yt),z.sender.cleanup(Le),Ge?.dispose()},at=Yt=>{Qe(Yt),z.sender.cleanup(Le),Ge?.dispose()},Ft={method:Z,timerStart:Date.now(),resolve:Ne,reject:at};try{await e.write(tt),B.set(Le,Ft)}catch(Yt){throw s.error("Sending request failed."),Ft.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Yt.message?Yt.message:"Unknown reason")),Yt}})},onRequest:(C,H)=>{sn();let Z=null;return Zf.is(C)?(Z=void 0,m=C):_t.string(C)?(Z=null,H!==void 0&&(Z=C,v.set(C,{handler:H,type:void 0}))):H!==void 0&&(Z=C.method,v.set(C.method,{type:C,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?v.delete(Z):m=void 0)}}},hasPendingResponse:()=>B.size>0,trace:async(C,H,Z)=>{let ie=!1,Ue=Tn.Text;Z!==void 0&&(_t.boolean(Z)?ie=Z:(ie=Z.sendNotification||!1,Ue=Z.traceFormat||Tn.Text)),P=C,U=Ue,P===He.Off?te=void 0:te=H,ie&&!We()&&!je()&&await vn.sendNotification(eh.type,{value:He.toString(C)})},onError:Be.event,onClose:Je.event,onUnhandledNotification:Dt.event,onDispose:X.event,end:()=>{e.end()},dispose:()=>{if(je())return;ve=Zn.Disposed,X.fire(void 0);let C=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of B.values())H.reject(C);B=new Map,F=new Map,K=new Set,L=new P_.LinkedMap,_t.func(e.dispose)&&e.dispose(),_t.func(t.dispose)&&t.dispose()},listen:()=>{sn(),Cr(),ve=Zn.Listening,t.listen(fr)},inspect:()=>{(0,x_.default)().console.log("inspect")}};return vn.onNotification(Rc.type,C=>{if(P===He.Off||!te)return;let H=P===He.Verbose||P===He.Compact;te.log(C.message,H?C.verbose:void 0)}),vn.onNotification(Ds.type,C=>{let H=N.get(C.token);H?H(C.value):Se.fire(C)}),vn}Pe.createMessageConnection=RA});var Ac=I(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var rt=Rf();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return rt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return rt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return rt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return rt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return rt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return rt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return rt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return rt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return rt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return rt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return rt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return rt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return rt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return rt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return rt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return rt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return rt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return rt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return rt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return rt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return rt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return rt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return rt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return rt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return rt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return rt.ParameterStructures}});var rh=Ff();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return rh.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return rh.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return rh.Touch}});var DA=f_();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return DA.Disposable}});var R_=mo();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return R_.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return R_.Emitter}});var D_=xc();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return D_.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return D_.CancellationToken}});var F_=g_();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return F_.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return F_.SharedArrayReceiverStrategy}});var ih=m_();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return ih.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return ih.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return ih.ReadableStreamMessageReader}});var oh=w_();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return oh.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return oh.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return oh.WriteableStreamMessageWriter}});var FA=S_();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return FA.AbstractMessageBuffer}});var $t=T_();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return $t.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return $t.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return $t.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return $t.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return $t.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return $t.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return $t.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return $t.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return $t.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return $t.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return $t.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return $t.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return $t.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return $t.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return $t.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return $t.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return $t.MessageStrategy}});var EA=ii();j.RAL=EA.default});var M_=I(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var E_=require("util"),qr=Ac(),Nc=class t extends qr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new E_.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};Nc.emptyBuffer=Buffer.allocUnsafe(0);var sh=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),qr.Disposable.create(()=>this.stream.off("data",e))}},ah=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},I_=Object.freeze({messageBuffer:Object.freeze({create:t=>new Nc(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new E_.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new sh(t),asWritableStream:t=>new ah(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function ch(){return I_}(function(t){function e(){qr.RAL.install(I_)}t.install=e})(ch||(ch={}));uh.default=ch});var Ui=I(Oe=>{"use strict";var IA=Oe&&Oe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),MA=Oe&&Oe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&IA(e,t,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var wo=M_();wo.default.install();var A_=require("path"),AA=require("os"),NA=require("crypto"),Lc=require("net"),Rn=Ac();MA(Ac(),Oe);var lh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Rn.Disposable.create(()=>this.process.off("message",e))}};Oe.IPCMessageReader=lh;var dh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=dh;var fh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.onData=new Rn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};Oe.PortMessageReader=fh;var hh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.PortMessageWriter=hh;var Li=class extends Rn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,wo.default)().stream.asReadableStream(e),n)}};Oe.SocketMessageReader=Li;var Bi=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,wo.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Bi;var qc=class extends Rn.ReadableStreamMessageReader{constructor(e,n){super((0,wo.default)().stream.asReadableStream(e),n)}};Oe.StreamMessageReader=qc;var Oc=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,wo.default)().stream.asWritableStream(e),n)}};Oe.StreamMessageWriter=Oc;var N_=process.env.XDG_RUNTIME_DIR,qA=new Map([["linux",107],["darwin",103]]);function OA(){let t=(0,NA.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;N_?e=A_.join(N_,`vscode-ipc-${t}.sock`):e=A_.join(AA.tmpdir(),`vscode-${t}.sock`);let n=qA.get(process.platform);return n!==void 0&&e.length>n&&(0,wo.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}Oe.generateRandomPipeName=OA;function LA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Li(d,e),new Bi(d,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientPipeTransport=LA;function BA(t,e="utf-8"){let n=(0,Lc.createConnection)(t);return[new Li(n,e),new Bi(n,e)]}Oe.createServerPipeTransport=BA;function UA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Li(d,e),new Bi(d,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientSocketTransport=UA;function $A(t,e="utf-8"){let n=(0,Lc.createConnection)(t,"127.0.0.1");return[new Li(n,e),new Bi(n,e)]}Oe.createServerSocketTransport=$A;function WA(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function jA(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function zA(t,e,n,i){n||(n=Rn.NullLogger);let s=WA(t)?new qc(t):t,c=jA(e)?new Oc(e):e;return Rn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Rn.createMessageConnection)(s,c,n,i)}Oe.createMessageConnection=zA});var gh=I((P2,q_)=>{"use strict";q_.exports=Ui()});var Uc=I((O_,Bc)=>{"use strict";(function(t){if(typeof Bc=="object"&&typeof Bc.exports=="object"){var e=t(require,O_);e!==void 0&&(Bc.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function k(R){return typeof R=="string"}p.is=k})(n||(e.DocumentUri=n={}));var i;(function(p){function k(R){return typeof R=="string"}p.is=k})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(c||(e.uinteger=c={}));var u;(function(p){function k(y,g){return y===Number.MAX_VALUE&&(y=c.MAX_VALUE),g===Number.MAX_VALUE&&(g=c.MAX_VALUE),{line:y,character:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.line)&&q.uinteger(g.character)}p.is=R})(u||(e.Position=u={}));var d;(function(p){function k(y,g,O,G){if(q.uinteger(y)&&q.uinteger(g)&&q.uinteger(O)&&q.uinteger(G))return{start:u.create(y,g),end:u.create(O,G)};if(u.is(y)&&u.is(g))return{start:y,end:g};throw new Error("Range#create called with invalid arguments[".concat(y,", ").concat(g,", ").concat(O,", ").concat(G,"]"))}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&u.is(g.start)&&u.is(g.end)}p.is=R})(d||(e.Range=d={}));var f;(function(p){function k(y,g){return{uri:y,range:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&(q.string(g.uri)||q.undefined(g.uri))}p.is=R})(f||(e.Location=f={}));var m;(function(p){function k(y,g,O,G){return{targetUri:y,targetRange:g,targetSelectionRange:O,originSelectionRange:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.targetRange)&&q.string(g.targetUri)&&d.is(g.targetSelectionRange)&&(d.is(g.originSelectionRange)||q.undefined(g.originSelectionRange))}p.is=R})(m||(e.LocationLink=m={}));var v;(function(p){function k(y,g,O,G){return{red:y,green:g,blue:O,alpha:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.numberRange(g.red,0,1)&&q.numberRange(g.green,0,1)&&q.numberRange(g.blue,0,1)&&q.numberRange(g.alpha,0,1)}p.is=R})(v||(e.Color=v={}));var x;(function(p){function k(y,g){return{range:y,color:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&v.is(g.color)}p.is=R})(x||(e.ColorInformation=x={}));var D;(function(p){function k(y,g,O){return{label:y,textEdit:g,additionalTextEdits:O}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.undefined(g.textEdit)||te.is(g))&&(q.undefined(g.additionalTextEdits)||q.typedArray(g.additionalTextEdits,te.is))}p.is=R})(D||(e.ColorPresentation=D={}));var N;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(N||(e.FoldingRangeKind=N={}));var A;(function(p){function k(y,g,O,G,be,ft){var Xe={startLine:y,endLine:g};return q.defined(O)&&(Xe.startCharacter=O),q.defined(G)&&(Xe.endCharacter=G),q.defined(be)&&(Xe.kind=be),q.defined(ft)&&(Xe.collapsedText=ft),Xe}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.startLine)&&q.uinteger(g.startLine)&&(q.undefined(g.startCharacter)||q.uinteger(g.startCharacter))&&(q.undefined(g.endCharacter)||q.uinteger(g.endCharacter))&&(q.undefined(g.kind)||q.string(g.kind))}p.is=R})(A||(e.FoldingRange=A={}));var L;(function(p){function k(y,g){return{location:y,message:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&f.is(g.location)&&q.string(g.message)}p.is=R})(L||(e.DiagnosticRelatedInformation=L={}));var B;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(B||(e.DiagnosticSeverity=B={}));var K;(function(p){p.Unnecessary=1,p.Deprecated=2})(K||(e.DiagnosticTag=K={}));var F;(function(p){function k(R){var y=R;return q.objectLiteral(y)&&q.string(y.href)}p.is=k})(F||(e.CodeDescription=F={}));var P;(function(p){function k(y,g,O,G,be,ft){var Xe={range:y,message:g};return q.defined(O)&&(Xe.severity=O),q.defined(G)&&(Xe.code=G),q.defined(be)&&(Xe.source=be),q.defined(ft)&&(Xe.relatedInformation=ft),Xe}p.create=k;function R(y){var g,O=y;return q.defined(O)&&d.is(O.range)&&q.string(O.message)&&(q.number(O.severity)||q.undefined(O.severity))&&(q.integer(O.code)||q.string(O.code)||q.undefined(O.code))&&(q.undefined(O.codeDescription)||q.string((g=O.codeDescription)===null||g===void 0?void 0:g.href))&&(q.string(O.source)||q.undefined(O.source))&&(q.undefined(O.relatedInformation)||q.typedArray(O.relatedInformation,L.is))}p.is=R})(P||(e.Diagnostic=P={}));var U;(function(p){function k(y,g){for(var O=[],G=2;G0&&(be.arguments=O),be}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.title)&&q.string(g.command)}p.is=R})(U||(e.Command=U={}));var te;(function(p){function k(O,G){return{range:O,newText:G}}p.replace=k;function R(O,G){return{range:{start:O,end:O},newText:G}}p.insert=R;function y(O){return{range:O,newText:""}}p.del=y;function g(O){var G=O;return q.objectLiteral(G)&&q.string(G.newText)&&d.is(G.range)}p.is=g})(te||(e.TextEdit=te={}));var ve;(function(p){function k(y,g,O){var G={label:y};return g!==void 0&&(G.needsConfirmation=g),O!==void 0&&(G.description=O),G}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.boolean(g.needsConfirmation)||g.needsConfirmation===void 0)&&(q.string(g.description)||g.description===void 0)}p.is=R})(ve||(e.ChangeAnnotation=ve={}));var Be;(function(p){function k(R){var y=R;return q.string(y)}p.is=k})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Je;(function(p){function k(O,G,be){return{range:O,newText:G,annotationId:be}}p.replace=k;function R(O,G,be){return{range:{start:O,end:O},newText:G,annotationId:be}}p.insert=R;function y(O,G){return{range:O,newText:"",annotationId:G}}p.del=y;function g(O){var G=O;return te.is(G)&&(ve.is(G.annotationId)||Be.is(G.annotationId))}p.is=g})(Je||(e.AnnotatedTextEdit=Je={}));var Dt;(function(p){function k(y,g){return{textDocument:y,edits:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&We.is(g.textDocument)&&Array.isArray(g.edits)}p.is=R})(Dt||(e.TextDocumentEdit=Dt={}));var Se;(function(p){function k(y,g,O){var G={kind:"create",uri:y};return g!==void 0&&(g.overwrite!==void 0||g.ignoreIfExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="create"&&q.string(g.uri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(Se||(e.CreateFile=Se={}));var X;(function(p){function k(y,g,O,G){var be={kind:"rename",oldUri:y,newUri:g};return O!==void 0&&(O.overwrite!==void 0||O.ignoreIfExists!==void 0)&&(be.options=O),G!==void 0&&(be.annotationId=G),be}p.create=k;function R(y){var g=y;return g&&g.kind==="rename"&&q.string(g.oldUri)&&q.string(g.newUri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(X||(e.RenameFile=X={}));var z;(function(p){function k(y,g,O){var G={kind:"delete",uri:y};return g!==void 0&&(g.recursive!==void 0||g.ignoreIfNotExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="delete"&&q.string(g.uri)&&(g.options===void 0||(g.options.recursive===void 0||q.boolean(g.options.recursive))&&(g.options.ignoreIfNotExists===void 0||q.boolean(g.options.ignoreIfNotExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var se;(function(p){function k(R){var y=R;return y&&(y.changes!==void 0||y.documentChanges!==void 0)&&(y.documentChanges===void 0||y.documentChanges.every(function(g){return q.string(g.kind)?Se.is(g)||X.is(g)||z.is(g):Dt.is(g)}))}p.is=k})(se||(e.WorkspaceEdit=se={}));var re=function(){function p(k,R){this.edits=k,this.changeAnnotations=R}return p.prototype.insert=function(k,R,y){var g,O;if(y===void 0?g=te.insert(k,R):Be.is(y)?(O=y,g=Je.insert(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.insert(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.replace=function(k,R,y){var g,O;if(y===void 0?g=te.replace(k,R):Be.is(y)?(O=y,g=Je.replace(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.replace(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.delete=function(k,R){var y,g;if(R===void 0?y=te.del(k):Be.is(R)?(g=R,y=Je.del(k,R)):(this.assertChangeAnnotations(this.changeAnnotations),g=this.changeAnnotations.manage(R),y=Je.del(k,g)),this.edits.push(y),g!==void 0)return g},p.prototype.add=function(k){this.edits.push(k)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(k){if(k===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),Re=function(){function p(k){this._annotations=k===void 0?Object.create(null):k,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(k,R){var y;if(Be.is(k)?y=k:(y=this.nextId(),R=k),this._annotations[y]!==void 0)throw new Error("Id ".concat(y," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(y));return this._annotations[y]=R,this._size++,y},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(k){var R=this;this._textEditChanges=Object.create(null),k!==void 0?(this._workspaceEdit=k,k.documentChanges?(this._changeAnnotations=new Re(k.changeAnnotations),k.changeAnnotations=this._changeAnnotations.all(),k.documentChanges.forEach(function(y){if(Dt.is(y)){var g=new re(y.edits,R._changeAnnotations);R._textEditChanges[y.textDocument.uri]=g}})):k.changes&&Object.keys(k.changes).forEach(function(y){var g=new re(k.changes[y]);R._textEditChanges[y]=g})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(k){if(We.is(k)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:k.uri,version:k.version},y=this._textEditChanges[R.uri];if(!y){var g=[],O={textDocument:R,edits:g};this._workspaceEdit.documentChanges.push(O),y=new re(g,this._changeAnnotations),this._textEditChanges[R.uri]=y}return y}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var y=this._textEditChanges[k];if(!y){var g=[];this._workspaceEdit.changes[k]=g,y=new re(g),this._textEditChanges[k]=y}return y}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Re,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=Se.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=Se.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p.prototype.renameFile=function(k,R,y,g){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var O;ve.is(y)||Be.is(y)?O=y:g=y;var G,be;if(O===void 0?G=X.create(k,R,g):(be=Be.is(O)?O:this._changeAnnotations.manage(O),G=X.create(k,R,g,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=z.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=z.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p}();e.WorkspaceChange=ge;var me;(function(p){function k(y){return{uri:y}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)}p.is=R})(me||(e.TextDocumentIdentifier=me={}));var St;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.integer(g.version)}p.is=R})(St||(e.VersionedTextDocumentIdentifier=St={}));var We;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&(g.version===null||q.integer(g.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function k(y,g,O,G){return{uri:y,languageId:g,version:O,text:G}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.string(g.languageId)&&q.integer(g.version)&&q.string(g.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function k(R){var y=R;return y===p.PlainText||y===p.Markdown}p.is=k})(bn||(e.MarkupKind=bn={}));var wr;(function(p){function k(R){var y=R;return q.objectLiteral(R)&&bn.is(y.kind)&&q.string(y.value)}p.is=k})(wr||(e.MarkupContent=wr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(e.CompletionItemKind=Vn={}));var lr;(function(p){p.PlainText=1,p.Snippet=2})(lr||(e.InsertTextFormat=lr={}));var Pi;(function(p){p.Deprecated=1})(Pi||(e.CompletionItemTag=Pi={}));var dr;(function(p){function k(y,g,O){return{newText:y,insert:g,replace:O}}p.create=k;function R(y){var g=y;return g&&q.string(g.newText)&&d.is(g.insert)&&d.is(g.replace)}p.is=R})(dr||(e.InsertReplaceEdit=dr={}));var fr;(function(p){p.asIs=1,p.adjustIndentation=2})(fr||(e.InsertTextMode=fr={}));var Ki;(function(p){function k(R){var y=R;return y&&(q.string(y.detail)||y.detail===void 0)&&(q.string(y.description)||y.description===void 0)}p.is=k})(Ki||(e.CompletionItemLabelDetails=Ki={}));var Sr;(function(p){function k(R){return{label:R}}p.create=k})(Sr||(e.CompletionItem=Sr={}));var xr;(function(p){function k(R,y){return{items:R||[],isIncomplete:!!y}}p.create=k})(xr||(e.CompletionList=xr={}));var Pr;(function(p){function k(y){return y.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=k;function R(y){var g=y;return q.string(g)||q.objectLiteral(g)&&q.string(g.language)&&q.string(g.value)}p.is=R})(Pr||(e.MarkedString=Pr={}));var mt;(function(p){function k(R){var y=R;return!!y&&q.objectLiteral(y)&&(wr.is(y.contents)||Pr.is(y.contents)||q.typedArray(y.contents,Pr.is))&&(R.range===void 0||d.is(R.range))}p.is=k})(mt||(e.Hover=mt={}));var hr;(function(p){function k(R,y){return y?{label:R,documentation:y}:{label:R}}p.create=k})(hr||(e.ParameterInformation=hr={}));var Ji;(function(p){function k(R,y){for(var g=[],O=2;O=0;an--){var yn=ft[an],Qn=O.offsetAt(yn.range.start),Ie=O.offsetAt(yn.range.end);if(Ie<=Xe)be=be.substring(0,Qn)+yn.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Xe=Qn}return be}p.applyEdits=y;function g(O,G){if(O.length<=1)return O;var be=O.length/2|0,ft=O.slice(0,be),Xe=O.slice(be);g(ft,G),g(Xe,G);for(var an=0,yn=0,Qn=0;an=0;an--){var yn=ft[an],Qn=O.offsetAt(yn.range.start),Ie=O.offsetAt(yn.range.end);if(Ie<=Xe)be=be.substring(0,Qn)+yn.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Xe=Qn}return be}p.applyEdits=y;function g(O,G){if(O.length<=1)return O;var be=O.length/2|0,ft=O.slice(0,be),Xe=O.slice(be);g(ft,G),g(Xe,G);for(var an=0,yn=0,Qn=0;an0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),y=0,g=R.length;if(g===0)return u.create(0,k);for(;yk?g=O:y=O+1}var G=y-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var y=R[k.line],g=k.line+1"u"}p.undefined=y;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Vr,Yi){return k.call(Ie)==="[object Number]"&&Vr<=Ie&&Ie<=Yi}p.numberRange=be;function ft(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ft;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Vr){return Array.isArray(Ie)&&Ie.every(Vr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var wo=Bi(),L_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(L_||(hn.MessageDirection=L_={}));var ph=class{constructor(e){this.method=e}};hn.RegistrationType=ph;var mh=class extends wo.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=mh;var bh=class extends wo.RequestType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolRequestType=bh;var _h=class extends wo.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=_h;var vh=class extends wo.NotificationType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolNotificationType=vh});var $c=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function HA(t){return t===!0||t===!1}It.boolean=HA;function B_(t){return typeof t=="string"||t instanceof String}It.string=B_;function VA(t){return typeof t=="number"||t instanceof Number}It.number=VA;function GA(t){return t instanceof Error}It.error=GA;function QA(t){return typeof t=="function"}It.func=QA;function U_(t){return Array.isArray(t)}It.array=U_;function KA(t){return U_(t)&&t.every(e=>B_(e))}It.stringArray=KA;function JA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=JA;function XA(t){return t!==null&&typeof t=="object"}It.objectLiteral=XA});var j_=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ImplementationRequest=void 0;var $_=pt(),W_;(function(t){t.method="textDocument/implementation",t.messageDirection=$_.MessageDirection.clientToServer,t.type=new $_.ProtocolRequestType(t.method)})(W_||(Wc.ImplementationRequest=W_={}))});var V_=I(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.TypeDefinitionRequest=void 0;var z_=pt(),H_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=z_.MessageDirection.clientToServer,t.type=new z_.ProtocolRequestType(t.method)})(H_||(jc.TypeDefinitionRequest=H_={}))});var K_=I(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.DidChangeWorkspaceFoldersNotification=So.WorkspaceFoldersRequest=void 0;var zc=pt(),G_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(G_||(So.WorkspaceFoldersRequest=G_={}));var Q_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolNotificationType(t.method)})(Q_||(So.DidChangeWorkspaceFoldersNotification=Q_={}))});var Y_=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.ConfigurationRequest=void 0;var J_=pt(),X_;(function(t){t.method="workspace/configuration",t.messageDirection=J_.MessageDirection.serverToClient,t.type=new J_.ProtocolRequestType(t.method)})(X_||(Hc.ConfigurationRequest=X_={}))});var tv=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.ColorPresentationRequest=xo.DocumentColorRequest=void 0;var Vc=pt(),Z_;(function(t){t.method="textDocument/documentColor",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(Z_||(xo.DocumentColorRequest=Z_={}));var ev;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(ev||(xo.ColorPresentationRequest=ev={}))});var iv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.FoldingRangeRefreshRequest=Po.FoldingRangeRequest=void 0;var Gc=pt(),nv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolRequestType(t.method)})(nv||(Po.FoldingRangeRequest=nv={}));var rv;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType0(t.method)})(rv||(Po.FoldingRangeRefreshRequest=rv={}))});var av=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DeclarationRequest=void 0;var ov=pt(),sv;(function(t){t.method="textDocument/declaration",t.messageDirection=ov.MessageDirection.clientToServer,t.type=new ov.ProtocolRequestType(t.method)})(sv||(Qc.DeclarationRequest=sv={}))});var lv=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.SelectionRangeRequest=void 0;var cv=pt(),uv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=cv.MessageDirection.clientToServer,t.type=new cv.ProtocolRequestType(t.method)})(uv||(Kc.SelectionRangeRequest=uv={}))});var gv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.WorkDoneProgressCancelNotification=ai.WorkDoneProgressCreateRequest=ai.WorkDoneProgress=void 0;var YA=Bi(),Jc=pt(),dv;(function(t){t.type=new YA.ProgressType;function e(n){return n===t.type}t.is=e})(dv||(ai.WorkDoneProgress=dv={}));var fv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType(t.method)})(fv||(ai.WorkDoneProgressCreateRequest=fv={}));var hv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolNotificationType(t.method)})(hv||(ai.WorkDoneProgressCancelNotification=hv={}))});var _v=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.CallHierarchyOutgoingCallsRequest=ci.CallHierarchyIncomingCallsRequest=ci.CallHierarchyPrepareRequest=void 0;var Co=pt(),pv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(pv||(ci.CallHierarchyPrepareRequest=pv={}));var mv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(mv||(ci.CallHierarchyIncomingCallsRequest=mv={}));var bv;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(bv||(ci.CallHierarchyOutgoingCallsRequest=bv={}))});var Pv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Or=pt(),vv;(function(t){t.Relative="relative"})(vv||(gn.TokenFormat=vv={}));var Is;(function(t){t.method="textDocument/semanticTokens",t.type=new Or.RegistrationType(t.method)})(Is||(gn.SemanticTokensRegistrationType=Is={}));var yv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(yv||(gn.SemanticTokensRequest=yv={}));var wv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(wv||(gn.SemanticTokensDeltaRequest=wv={}));var Sv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(Sv||(gn.SemanticTokensRangeRequest=Sv={}));var xv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=Or.MessageDirection.serverToClient,t.type=new Or.ProtocolRequestType0(t.method)})(xv||(gn.SemanticTokensRefreshRequest=xv={}))});var Tv=I(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.ShowDocumentRequest=void 0;var Cv=pt(),kv;(function(t){t.method="window/showDocument",t.messageDirection=Cv.MessageDirection.serverToClient,t.type=new Cv.ProtocolRequestType(t.method)})(kv||(Xc.ShowDocumentRequest=kv={}))});var Fv=I(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.LinkedEditingRangeRequest=void 0;var Rv=pt(),Dv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Rv.MessageDirection.clientToServer,t.type=new Rv.ProtocolRequestType(t.method)})(Dv||(Yc.LinkedEditingRangeRequest=Dv={}))});var Lv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Ev;(function(t){t.file="file",t.folder="folder"})(Ev||(Qt.FileOperationPatternKind=Ev={}));var Iv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Iv||(Qt.WillCreateFilesRequest=Iv={}));var Mv;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Mv||(Qt.DidCreateFilesNotification=Mv={}));var Av;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Av||(Qt.WillRenameFilesRequest=Av={}));var Nv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Nv||(Qt.DidRenameFilesNotification=Nv={}));var qv;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(qv||(Qt.DidDeleteFilesNotification=qv={}));var Ov;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Ov||(Qt.WillDeleteFilesRequest=Ov={}))});var jv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.MonikerRequest=ui.MonikerKind=ui.UniquenessLevel=void 0;var Bv=pt(),Uv;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(Uv||(ui.UniquenessLevel=Uv={}));var $v;(function(t){t.$import="import",t.$export="export",t.local="local"})($v||(ui.MonikerKind=$v={}));var Wv;(function(t){t.method="textDocument/moniker",t.messageDirection=Bv.MessageDirection.clientToServer,t.type=new Bv.ProtocolRequestType(t.method)})(Wv||(ui.MonikerRequest=Wv={}))});var Gv=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.TypeHierarchySubtypesRequest=li.TypeHierarchySupertypesRequest=li.TypeHierarchyPrepareRequest=void 0;var ko=pt(),zv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(zv||(li.TypeHierarchyPrepareRequest=zv={}));var Hv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Hv||(li.TypeHierarchySupertypesRequest=Hv={}));var Vv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Vv||(li.TypeHierarchySubtypesRequest=Vv={}))});var Jv=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.InlineValueRefreshRequest=To.InlineValueRequest=void 0;var Zc=pt(),Qv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Zc.MessageDirection.clientToServer,t.type=new Zc.ProtocolRequestType(t.method)})(Qv||(To.InlineValueRequest=Qv={}));var Kv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Zc.MessageDirection.serverToClient,t.type=new Zc.ProtocolRequestType0(t.method)})(Kv||(To.InlineValueRefreshRequest=Kv={}))});var ey=I(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.InlayHintRefreshRequest=di.InlayHintResolveRequest=di.InlayHintRequest=void 0;var Ro=pt(),Xv;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(Xv||(di.InlayHintRequest=Xv={}));var Yv;(function(t){t.method="inlayHint/resolve",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(Yv||(di.InlayHintResolveRequest=Yv={}));var Zv;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Ro.MessageDirection.serverToClient,t.type=new Ro.ProtocolRequestType0(t.method)})(Zv||(di.InlayHintRefreshRequest=Zv={}))});var ay=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var sy=Bi(),ZA=$c(),Do=pt(),ty;(function(t){function e(n){let i=n;return i&&ZA.boolean(i.retriggerRequest)}t.is=e})(ty||(Un.DiagnosticServerCancellationData=ty={}));var ny;(function(t){t.Full="full",t.Unchanged="unchanged"})(ny||(Un.DocumentDiagnosticReportKind=ny={}));var ry;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(ry||(Un.DocumentDiagnosticRequest=ry={}));var iy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(iy||(Un.WorkspaceDiagnosticRequest=iy={}));var oy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(oy||(Un.DiagnosticRefreshRequest=oy={}))});var gy=I(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.DidCloseNotebookDocumentNotification=yt.DidSaveNotebookDocumentNotification=yt.DidChangeNotebookDocumentNotification=yt.NotebookCellArrayChange=yt.DidOpenNotebookDocumentNotification=yt.NotebookDocumentSyncRegistrationType=yt.NotebookDocument=yt.NotebookCell=yt.ExecutionSummary=yt.NotebookCellKind=void 0;var Ms=Uc(),er=$c(),_r=pt(),yh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(yh||(yt.NotebookCellKind=yh={}));var wh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Ms.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(wh||(yt.ExecutionSummary=wh={}));var eu;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&yh.is(u.kind)&&Ms.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.InlineCompletionRequest=void 0;var py=pt(),my;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=py.MessageDirection.clientToServer,t.type=new py.ProtocolRequestType(t.method)})(my||(tu.InlineCompletionRequest=my={}))});var Fw=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),_y=Uc(),Lt=$c(),eN=j_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return eN.ImplementationRequest}});var tN=V_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return tN.TypeDefinitionRequest}});var kw=K_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return kw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return kw.DidChangeWorkspaceFoldersNotification}});var nN=Y_();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return nN.ConfigurationRequest}});var Tw=tv();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Tw.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Tw.ColorPresentationRequest}});var Rw=iv();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRefreshRequest}});var rN=av();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return rN.DeclarationRequest}});var iN=lv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return iN.SelectionRangeRequest}});var kh=gv();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return kh.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return kh.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return kh.WorkDoneProgressCancelNotification}});var Th=_v();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var Eo=Pv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Eo.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Eo.SemanticTokensRegistrationType}});var oN=Tv();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return oN.ShowDocumentRequest}});var sN=Fv();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return sN.LinkedEditingRangeRequest}});var Ui=Lv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return Ui.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Ui.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Ui.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Ui.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Ui.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Ui.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Ui.WillDeleteFilesRequest}});var Rh=jv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Rh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Rh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Rh.MonikerRequest}});var Dh=Gv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySupertypesRequest}});var Dw=Jv();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Dw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Dw.InlineValueRefreshRequest}});var Fh=ey();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Fh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Fh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Fh.InlayHintRefreshRequest}});var As=ay();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return As.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return As.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return As.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return As.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return As.DiagnosticRefreshRequest}});var vr=gy();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return vr.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return vr.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return vr.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return vr.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return vr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return vr.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidCloseNotebookDocumentNotification}});var aN=by();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return aN.InlineCompletionRequest}});var Sh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(Sh||(w.TextDocumentFilter=Sh={}));var xh;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(xh||(w.NotebookDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||xh.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ph||(w.NotebookCellTextDocumentFilter=Ph={}));var Ch;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!Sh.is(i)&&!Ph.is(i))return!1;return!0}t.is=e})(Ch||(w.DocumentSelector=Ch={}));var vy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(vy||(w.RegistrationRequest=vy={}));var yy;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(yy||(w.UnregistrationRequest=yy={}));var wy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(wy||(w.ResourceOperationKind=wy={}));var Sy;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(Sy||(w.FailureHandlingKind=Sy={}));var xy;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(xy||(w.PositionEncodingKind=xy={}));var Py;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Py||(w.StaticRegistrationOptions=Py={}));var Cy;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Ch.is(i.documentSelector))}t.is=e})(Cy||(w.TextDocumentRegistrationOptions=Cy={}));var ky;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(ky||(w.WorkDoneProgressOptions=ky={}));var Ty;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ty||(w.InitializeRequest=Ty={}));var Ry;(function(t){t.unknownProtocolVersion=1})(Ry||(w.InitializeErrorCodes=Ry={}));var Dy;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Dy||(w.InitializedNotification=Dy={}));var Fy;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Fy||(w.ShutdownRequest=Fy={}));var Ey;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Ey||(w.ExitNotification=Ey={}));var Iy;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Iy||(w.DidChangeConfigurationNotification=Iy={}));var My;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(My||(w.MessageType=My={}));var Ay;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ay||(w.ShowMessageNotification=Ay={}));var Ny;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Ny||(w.ShowMessageRequest=Ny={}));var qy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(qy||(w.LogMessageNotification=qy={}));var Oy;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Oy||(w.TelemetryEventNotification=Oy={}));var Ly;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Ly||(w.TextDocumentSyncKind=Ly={}));var By;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(By||(w.DidOpenTextDocumentNotification=By={}));var Uy;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(Uy||(w.TextDocumentContentChangeEvent=Uy={}));var $y;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})($y||(w.DidChangeTextDocumentNotification=$y={}));var Wy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Wy||(w.DidCloseTextDocumentNotification=Wy={}));var jy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidSaveTextDocumentNotification=jy={}));var zy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(zy||(w.TextDocumentSaveReason=zy={}));var Hy;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Hy||(w.WillSaveTextDocumentNotification=Hy={}));var Vy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Vy||(w.WillSaveTextDocumentWaitUntilRequest=Vy={}));var Gy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Gy||(w.DidChangeWatchedFilesNotification=Gy={}));var Qy;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Qy||(w.FileChangeType=Qy={}));var Ky;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(_y.URI.is(i.baseUri)||_y.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Ky||(w.RelativePattern=Ky={}));var Jy;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Jy||(w.WatchKind=Jy={}));var Xy;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Xy||(w.PublishDiagnosticsNotification=Xy={}));var Yy;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Yy||(w.CompletionTriggerKind=Yy={}));var Zy;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Zy||(w.CompletionRequest=Zy={}));var ew;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ew||(w.CompletionResolveRequest=ew={}));var tw;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(tw||(w.HoverRequest=tw={}));var nw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(nw||(w.SignatureHelpTriggerKind=nw={}));var rw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(rw||(w.SignatureHelpRequest=rw={}));var iw;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.DefinitionRequest=iw={}));var ow;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.ReferencesRequest=ow={}));var sw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(sw||(w.DocumentHighlightRequest=sw={}));var aw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.DocumentSymbolRequest=aw={}));var cw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.CodeActionRequest=cw={}));var uw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.CodeActionResolveRequest=uw={}));var lw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.WorkspaceSymbolRequest=lw={}));var dw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.WorkspaceSymbolResolveRequest=dw={}));var fw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.CodeLensRequest=fw={}));var hw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeLensResolveRequest=hw={}));var gw;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(gw||(w.CodeLensRefreshRequest=gw={}));var pw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(pw||(w.DocumentLinkRequest=pw={}));var mw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.DocumentLinkResolveRequest=mw={}));var bw;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.DocumentFormattingRequest=bw={}));var _w;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(_w||(w.DocumentRangeFormattingRequest=_w={}));var vw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentRangesFormattingRequest=vw={}));var yw;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentOnTypeFormattingRequest=yw={}));var ww;(function(t){t.Identifier=1})(ww||(w.PrepareSupportDefaultBehavior=ww={}));var Sw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Sw||(w.RenameRequest=Sw={}));var xw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.PrepareRenameRequest=xw={}));var Pw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.ExecuteCommandRequest=Pw={}));var Cw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(Cw||(w.ApplyWorkspaceEditRequest=Cw={}))});var Iw=I(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.createProtocolConnection=void 0;var Ew=Bi();function cN(t,e,n,i){return Ew.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Ew.createMessageConnection)(t,e,n,i)}nu.createProtocolConnection=cN});var Aw=I(pn=>{"use strict";var uN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),ru=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&uN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;ru(Bi(),pn);ru(Uc(),pn);ru(pt(),pn);ru(Fw(),pn);var lN=Iw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return lN.createProtocolConnection}});var Mw;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Mw||(pn.LSPErrorCodes=Mw={}))});var kt=I(yr=>{"use strict";var dN=yr&&yr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Nw=yr&&yr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&dN(e,t,n)};Object.defineProperty(yr,"__esModule",{value:!0});yr.createProtocolConnection=void 0;var fN=gh();Nw(gh(),yr);Nw(Aw(),yr);function hN(t,e,n,i){return(0,fN.createMessageConnection)(t,e,n,i)}yr.createProtocolConnection=hN});var Eh=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var Ns=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},qs=class t extends Ns{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};qs._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];qs._timeHighBits=["8","9","a","b"];$n.empty=new Ns("00000000-0000-0000-0000-000000000000");function qw(){return new qs}$n.v4=qw;var gN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ow(t){return gN.test(t)}$n.isUUID=Ow;function pN(t){if(!Ow(t))throw new Error("invalid uuid");return new Ns(t)}$n.parse=pN;function mN(){return qw().asHex()}$n.generateUuid=mN});var Lw=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.attachPartialResult=hi.ProgressFeature=hi.attachWorkDone=void 0;var fi=kt(),bN=Eh(),$i=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,{kind:"end"})}};$i.Instances=new Map;var iu=class extends $i{constructor(e,n){super(e,n),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Os=class{constructor(){}begin(){}report(){}done(){}},ou=class extends Os{constructor(){super(),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function _N(t,e){if(e===void 0||e.workDoneToken===void 0)return new Os;let n=e.workDoneToken;return delete e.workDoneToken,new $i(t,n)}hi.attachWorkDone=_N;var vN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(fi.WorkDoneProgressCancelNotification.type,n=>{let i=$i.Instances.get(n.token);(i instanceof iu||i instanceof ou)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new Os:new $i(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,bN.generateUuid)();return this.connection.sendRequest(fi.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new iu(this.connection,e))}else return Promise.resolve(new ou)}};hi.ProgressFeature=vN;var Ih;(function(t){t.type=new fi.ProgressType})(Ih||(Ih={}));var Mh=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Ih.type,this._token,e)}};function yN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Mh(t,n)}hi.attachPartialResult=yN});var Bw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.ConfigurationFeature=void 0;var wN=kt(),SN=bc(),xN=t=>class extends t{getConfiguration(e){return e?SN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(wN.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};su.ConfigurationFeature=xN});var Uw=I(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.WorkspaceFoldersFeature=void 0;var au=kt(),PN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new au.Emitter,this.connection.onNotification(au.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(au.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(au.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};cu.WorkspaceFoldersFeature=PN});var $w=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.CallHierarchyFeature=void 0;var Ah=kt(),CN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Ah.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Ah.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Ah.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};uu.CallHierarchyFeature=CN});var qh=I(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.SemanticTokensBuilder=gi.SemanticTokensDiff=gi.SemanticTokensFeature=void 0;var lu=kt(),kN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(lu.SemanticTokensRefreshRequest.type),on:e=>{let n=lu.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=lu.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=lu.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gi.SemanticTokensFeature=kN;var du=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new du(this._prevData,this._data).computeDiff()}:this.build()}};gi.SemanticTokensBuilder=Nh});var Ww=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.ShowDocumentFeature=void 0;var TN=kt(),RN=t=>class extends t{showDocument(e){return this.connection.sendRequest(TN.ShowDocumentRequest.type,e)}};fu.ShowDocumentFeature=RN});var jw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.FileOperationsFeature=void 0;var Io=kt(),DN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Io.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Io.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Io.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Io.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Io.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Io.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};hu.FileOperationsFeature=DN});var zw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.LinkedEditingRangeFeature=void 0;var FN=kt(),EN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(FN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};gu.LinkedEditingRangeFeature=EN});var Hw=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.TypeHierarchyFeature=void 0;var Oh=kt(),IN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};pu.TypeHierarchyFeature=IN});var Gw=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.InlineValueFeature=void 0;var Vw=kt(),MN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Vw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Vw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};mu.InlineValueFeature=MN});var Kw=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.FoldingRangeFeature=void 0;var Qw=kt(),AN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Qw.FoldingRangeRefreshRequest.type),on:e=>{let n=Qw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};bu.FoldingRangeFeature=AN});var Jw=I(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.InlayHintFeature=void 0;var Lh=kt(),NN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Lh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Lh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Lh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};_u.InlayHintFeature=NN});var Xw=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.DiagnosticFeature=void 0;var Ls=kt(),qN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Ls.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Ls.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Ls.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.WorkspaceDiagnosticRequest.partialResult,n)))}}};vu.DiagnosticFeature=qN});var Uh=I(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.TextDocuments=void 0;var Wi=kt(),Bh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new Wi.Emitter,this._onDidOpen=new Wi.Emitter,this._onDidClose=new Wi.Emitter,this._onDidSave=new Wi.Emitter,this._onWillSave=new Wi.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=Wi.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),Wi.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};yu.TextDocuments=Bh});var Wh=I(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.NotebookDocuments=Mo.NotebookSyncFeature=void 0;var Wn=kt(),Yw=Uh(),ON=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Mo.NotebookSyncFeature=ON;var wu=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};wu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $h=class{constructor(e){e instanceof Yw.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new Yw.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new wu,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],v=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),v.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of v)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Mo.NotebookDocuments=$h});var Zw=I(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.MonikerFeature=void 0;var LN=kt(),BN=t=>class extends t{get moniker(){return{on:e=>{let n=LN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Su.MonikerFeature=BN});var Qh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=bc(),zh=Eh(),we=Lw(),UN=Bw(),$N=Uw(),WN=$w(),jN=qh(),zN=Ww(),HN=jw(),VN=zw(),GN=Hw(),QN=Gw(),KN=Kw(),JN=Jw(),XN=Xw(),YN=Wh(),ZN=Zw();function jh(t){if(t!==null)return t}var Hh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Hh;var xu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Vh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}},eS=(0,zN.ShowDocumentFeature)((0,we.ProgressFeature)(Vh)),tS;(function(t){function e(){return new Pu}t.create=e})(tS||($e.BulkRegistration=tS={}));var Pu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=zh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},nS;(function(t){function e(){return new Bs(void 0,[])}t.create=e})(nS||($e.BulkUnregistration=nS={}));var Bs=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Cu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof Pu?this.registerMany(e):e instanceof Bs?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=zh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=zh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Bs(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},rS=(0,HN.FileOperationsFeature)((0,$N.WorkspaceFoldersFeature)((0,UN.ConfigurationFeature)(Gh))),ku=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Tu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Ru=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Ru;var iS=(0,KN.FoldingRangeFeature)((0,ZN.MonikerFeature)((0,XN.DiagnosticFeature)((0,JN.InlayHintFeature)((0,QN.InlineValueFeature)((0,GN.TypeHierarchyFeature)((0,VN.LinkedEditingRangeFeature)((0,jN.SemanticTokensFeature)((0,WN.CallHierarchyFeature)(Ru))))))))),Du=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Du;var oS=(0,YN.NotebookSyncFeature)(Du);function sS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=sS;function aS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=aS;function cS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=cS;function uS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=uS;function lS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=hS;function eq(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,sS),tracer:n(t.tracer,e.tracer,cS),telemetry:n(t.telemetry,e.telemetry,aS),client:n(t.client,e.client,uS),window:n(t.window,e.window,lS),workspace:n(t.workspace,e.workspace,dS),languages:n(t.languages,e.languages,fS),notebooks:n(t.notebooks,e.notebooks,hS)}}$e.combineFeatures=eq;function tq(t,e,n){let i=n&&n.console?new(n.console(xu)):new xu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(ku)):new ku,u=n&&n.telemetry?new(n.telemetry(Tu)):new Tu,d=n&&n.client?new(n.client(Cu)):new Cu,f=n&&n.window?new(n.window(eS)):new eS,m=n&&n.workspace?new(n.workspace(rS)):new rS,v=n&&n.languages?new(n.languages(iS)):new iS,x=n&&n.notebooks?new(n.notebooks(oS)):new oS,D=[i,c,u,d,f,m,v,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return v},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=tq});var gS=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var nq=require("url"),tr=require("path"),Kh=require("fs"),Zh=require("child_process");function rq(t){let e=nq.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=rq;function Jh(){return process.platform==="win32"}function Fu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(v=>m[v]=f[v]),e&&Kh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let v=(0,Zh.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(v.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}v.on("error",D=>{d(D)}),v.on("message",D=>{D.c==="r"&&(v.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};v.send(x)}catch(v){d(v)}})}mn.resolve=Fu;function Xh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Jh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,Zh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Jh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Xh;function iq(t){let e="yarn",n={encoding:"utf8"};Jh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,Zh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=iq;var Yh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Kh.existsSync(__filename.toUpperCase())||!Kh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Yh||(mn.FileSystem=Yh={}));function oq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Fu(e,n,n,i).then(s=>Yh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Fu(e,Xh(i),t,i))):Fu(e,Xh(i),t,i)}mn.resolveModulePath=oq});var eg=I((Iz,pS)=>{"use strict";pS.exports=kt()});var mS=I(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.InlineCompletionFeature=void 0;var sq=kt(),aq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(sq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Eu.InlineCompletionFeature=aq});var vS=I(Kt=>{"use strict";var cq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),_S=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var uq=qh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return uq.SemanticTokensBuilder}});var lq=mS();_S(kt(),Kt);var dq=Uh();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return dq.TextDocuments}});var fq=Wh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return fq.NotebookDocuments}});_S(Qh(),Kt);var bS;(function(t){t.all={__brand:"features",languages:lq.InlineCompletionFeature}})(bS||(Kt.ProposedFeatures=bS={}))});var ng=I(zn=>{"use strict";var hq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),xS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&hq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var yS=require("node:util"),tg=bc(),gq=Qh(),Us=gS(),ji=eg();xS(eg(),zn);xS(vS(),zn);var wS;(function(t){t.uriToFilePath=Us.uriToFilePath,t.resolveGlobalNodePath=Us.resolveGlobalNodePath,t.resolveGlobalYarnPath=Us.resolveGlobalYarnPath,t.resolve=Us.resolve,t.resolveModulePath=Us.resolveModulePath})(wS||(zn.Files=wS={}));var SS;function Iu(){if(SS!==void 0)try{SS.end()}catch{}}var Ao=!1,PS;function pq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(PS=setInterval(()=>{try{process.kill(i,0)}catch{Iu(),process.exit(Ao?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;tg.number(e)&&PS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(Ao?0:1)}},3e3)},get shutdownReceived(){return Ao},set shutdownReceived(t){Ao=t},exit:t=>{Iu(),process.exit(t)}};function bq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),ji.ConnectionStrategy.is(t)||ji.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),_q(c,u,d,s)}zn.createConnection=bq;function _q(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,v=process.argv.slice(2);for(let x=0;x{Iu(),process.exit(Ao?0:1)}),f.on("close",()=>{Iu(),process.exit(Ao?0:1)})}let d=f=>{let m=(0,ji.createProtocolConnection)(t,e,f,n);return s&&vq(f),m};return(0,gq.createConnection)(d,mq,i)}function vq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,yS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,yS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} -${c}`)},console.warn=function(...s){t.warn(e(s))}}});var kS=I((Oz,CS)=>{"use strict";CS.exports=ng()});var IS=I((Yz,ES)=>{"use strict";function Cq(){this.__data__=[],this.size=0}ES.exports=Cq});var sg=I((Zz,MS)=>{"use strict";function kq(t,e){return t===e||t!==t&&e!==e}MS.exports=kq});var Ws=I((eH,AS)=>{"use strict";var Tq=sg();function Rq(t,e){for(var n=t.length;n--;)if(Tq(t[n][0],e))return n;return-1}AS.exports=Rq});var qS=I((tH,NS)=>{"use strict";var Dq=Ws(),Fq=Array.prototype,Eq=Fq.splice;function Iq(t){var e=this.__data__,n=Dq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Eq.call(e,n,1),--this.size,!0}NS.exports=Iq});var LS=I((nH,OS)=>{"use strict";var Mq=Ws();function Aq(t){var e=this.__data__,n=Mq(e,t);return n<0?void 0:e[n][1]}OS.exports=Aq});var US=I((rH,BS)=>{"use strict";var Nq=Ws();function qq(t){return Nq(this.__data__,t)>-1}BS.exports=qq});var WS=I((iH,$S)=>{"use strict";var Oq=Ws();function Lq(t,e){var n=this.__data__,i=Oq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}$S.exports=Lq});var js=I((oH,jS)=>{"use strict";var Bq=IS(),Uq=qS(),$q=LS(),Wq=US(),jq=WS();function qo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var zq=js();function Hq(){this.__data__=new zq,this.size=0}zS.exports=Hq});var GS=I((aH,VS)=>{"use strict";function Vq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}VS.exports=Vq});var KS=I((cH,QS)=>{"use strict";function Gq(t){return this.__data__.get(t)}QS.exports=Gq});var XS=I((uH,JS)=>{"use strict";function Qq(t){return this.__data__.has(t)}JS.exports=Qq});var ag=I((lH,YS)=>{"use strict";var Kq=typeof global=="object"&&global&&global.Object===Object&&global;YS.exports=Kq});var nr=I((dH,ZS)=>{"use strict";var Jq=ag(),Xq=typeof self=="object"&&self&&self.Object===Object&&self,Yq=Jq||Xq||Function("return this")();ZS.exports=Yq});var Ou=I((fH,ex)=>{"use strict";var Zq=nr(),e1=Zq.Symbol;ex.exports=e1});var ix=I((hH,rx)=>{"use strict";var tx=Ou(),nx=Object.prototype,t1=nx.hasOwnProperty,n1=nx.toString,zs=tx?tx.toStringTag:void 0;function r1(t){var e=t1.call(t,zs),n=t[zs];try{t[zs]=void 0;var i=!0}catch{}var s=n1.call(t);return i&&(e?t[zs]=n:delete t[zs]),s}rx.exports=r1});var sx=I((gH,ox)=>{"use strict";var i1=Object.prototype,o1=i1.toString;function s1(t){return o1.call(t)}ox.exports=s1});var Hs=I((pH,ux)=>{"use strict";var ax=Ou(),a1=ix(),c1=sx(),u1="[object Null]",l1="[object Undefined]",cx=ax?ax.toStringTag:void 0;function d1(t){return t==null?t===void 0?l1:u1:cx&&cx in Object(t)?a1(t):c1(t)}ux.exports=d1});var Oo=I((mH,lx)=>{"use strict";function f1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}lx.exports=f1});var cg=I((bH,dx)=>{"use strict";var h1=Hs(),g1=Oo(),p1="[object AsyncFunction]",m1="[object Function]",b1="[object GeneratorFunction]",_1="[object Proxy]";function v1(t){if(!g1(t))return!1;var e=h1(t);return e==m1||e==b1||e==p1||e==_1}dx.exports=v1});var hx=I((_H,fx)=>{"use strict";var y1=nr(),w1=y1["__core-js_shared__"];fx.exports=w1});var mx=I((vH,px)=>{"use strict";var ug=hx(),gx=function(){var t=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function S1(t){return!!gx&&gx in t}px.exports=S1});var lg=I((yH,bx)=>{"use strict";var x1=Function.prototype,P1=x1.toString;function C1(t){if(t!=null){try{return P1.call(t)}catch{}try{return t+""}catch{}}return""}bx.exports=C1});var vx=I((wH,_x)=>{"use strict";var k1=cg(),T1=mx(),R1=Oo(),D1=lg(),F1=/[\\^$.*+?()[\]{}|]/g,E1=/^\[object .+?Constructor\]$/,I1=Function.prototype,M1=Object.prototype,A1=I1.toString,N1=M1.hasOwnProperty,q1=RegExp("^"+A1.call(N1).replace(F1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O1(t){if(!R1(t)||T1(t))return!1;var e=k1(t)?q1:E1;return e.test(D1(t))}_x.exports=O1});var wx=I((SH,yx)=>{"use strict";function L1(t,e){return t?.[e]}yx.exports=L1});var pi=I((xH,Sx)=>{"use strict";var B1=vx(),U1=wx();function $1(t,e){var n=U1(t,e);return B1(n)?n:void 0}Sx.exports=$1});var Lu=I((PH,xx)=>{"use strict";var W1=pi(),j1=nr(),z1=W1(j1,"Map");xx.exports=z1});var Vs=I((CH,Px)=>{"use strict";var H1=pi(),V1=H1(Object,"create");Px.exports=V1});var Tx=I((kH,kx)=>{"use strict";var Cx=Vs();function G1(){this.__data__=Cx?Cx(null):{},this.size=0}kx.exports=G1});var Dx=I((TH,Rx)=>{"use strict";function Q1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Rx.exports=Q1});var Ex=I((RH,Fx)=>{"use strict";var K1=Vs(),J1="__lodash_hash_undefined__",X1=Object.prototype,Y1=X1.hasOwnProperty;function Z1(t){var e=this.__data__;if(K1){var n=e[t];return n===J1?void 0:n}return Y1.call(e,t)?e[t]:void 0}Fx.exports=Z1});var Mx=I((DH,Ix)=>{"use strict";var eO=Vs(),tO=Object.prototype,nO=tO.hasOwnProperty;function rO(t){var e=this.__data__;return eO?e[t]!==void 0:nO.call(e,t)}Ix.exports=rO});var Nx=I((FH,Ax)=>{"use strict";var iO=Vs(),oO="__lodash_hash_undefined__";function sO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=iO&&e===void 0?oO:e,this}Ax.exports=sO});var Ox=I((EH,qx)=>{"use strict";var aO=Tx(),cO=Dx(),uO=Ex(),lO=Mx(),dO=Nx();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Lx=Ox(),fO=js(),hO=Lu();function gO(){this.size=0,this.__data__={hash:new Lx,map:new(hO||fO),string:new Lx}}Bx.exports=gO});var Wx=I((MH,$x)=>{"use strict";function pO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}$x.exports=pO});var Gs=I((AH,jx)=>{"use strict";var mO=Wx();function bO(t,e){var n=t.__data__;return mO(e)?n[typeof e=="string"?"string":"hash"]:n.map}jx.exports=bO});var Hx=I((NH,zx)=>{"use strict";var _O=Gs();function vO(t){var e=_O(this,t).delete(t);return this.size-=e?1:0,e}zx.exports=vO});var Gx=I((qH,Vx)=>{"use strict";var yO=Gs();function wO(t){return yO(this,t).get(t)}Vx.exports=wO});var Kx=I((OH,Qx)=>{"use strict";var SO=Gs();function xO(t){return SO(this,t).has(t)}Qx.exports=xO});var Xx=I((LH,Jx)=>{"use strict";var PO=Gs();function CO(t,e){var n=PO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}Jx.exports=CO});var Zx=I((BH,Yx)=>{"use strict";var kO=Ux(),TO=Hx(),RO=Gx(),DO=Kx(),FO=Xx();function Bo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var EO=js(),IO=Lu(),MO=Zx(),AO=200;function NO(t,e){var n=this.__data__;if(n instanceof EO){var i=n.__data__;if(!IO||i.length{"use strict";var qO=js(),OO=HS(),LO=GS(),BO=KS(),UO=XS(),$O=tP();function Uo(t){var e=this.__data__=new qO(t);this.size=e.size}Uo.prototype.clear=OO;Uo.prototype.delete=LO;Uo.prototype.get=BO;Uo.prototype.has=UO;Uo.prototype.set=$O;nP.exports=Uo});var oP=I((WH,iP)=>{"use strict";function WO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var jO=pi(),zO=function(){try{var t=jO(Object,"defineProperty");return t({},"",{}),t}catch{}}();sP.exports=zO});var dg=I((zH,uP)=>{"use strict";var cP=aP();function HO(t,e,n){e=="__proto__"&&cP?cP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}uP.exports=HO});var fg=I((HH,lP)=>{"use strict";var VO=dg(),GO=sg(),QO=Object.prototype,KO=QO.hasOwnProperty;function JO(t,e,n){var i=t[e];(!(KO.call(t,e)&&GO(i,n))||n===void 0&&!(e in t))&&VO(t,e,n)}lP.exports=JO});var Qs=I((VH,dP)=>{"use strict";var XO=fg(),YO=dg();function ZO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function eL(t,e){for(var n=-1,i=Array(t);++n{"use strict";function tL(t){return t!=null&&typeof t=="object"}gP.exports=tL});var mP=I((KH,pP)=>{"use strict";var nL=Hs(),rL=$o(),iL="[object Arguments]";function oL(t){return rL(t)&&nL(t)==iL}pP.exports=oL});var yP=I((JH,vP)=>{"use strict";var bP=mP(),sL=$o(),_P=Object.prototype,aL=_P.hasOwnProperty,cL=_P.propertyIsEnumerable,uL=bP(function(){return arguments}())?bP:function(t){return sL(t)&&aL.call(t,"callee")&&!cL.call(t,"callee")};vP.exports=uL});var Bu=I((XH,wP)=>{"use strict";var lL=Array.isArray;wP.exports=lL});var xP=I((YH,SP)=>{"use strict";function dL(){return!1}SP.exports=dL});var hg=I((Ks,Wo)=>{"use strict";var fL=nr(),hL=xP(),kP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,PP=kP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,gL=PP&&PP.exports===kP,CP=gL?fL.Buffer:void 0,pL=CP?CP.isBuffer:void 0,mL=pL||hL;Wo.exports=mL});var RP=I((ZH,TP)=>{"use strict";var bL=9007199254740991,_L=/^(?:0|[1-9]\d*)$/;function vL(t,e){var n=typeof t;return e=e??bL,!!e&&(n=="number"||n!="symbol"&&_L.test(t))&&t>-1&&t%1==0&&t{"use strict";var yL=9007199254740991;function wL(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=yL}DP.exports=wL});var EP=I((tV,FP)=>{"use strict";var SL=Hs(),xL=gg(),PL=$o(),CL="[object Arguments]",kL="[object Array]",TL="[object Boolean]",RL="[object Date]",DL="[object Error]",FL="[object Function]",EL="[object Map]",IL="[object Number]",ML="[object Object]",AL="[object RegExp]",NL="[object Set]",qL="[object String]",OL="[object WeakMap]",LL="[object ArrayBuffer]",BL="[object DataView]",UL="[object Float32Array]",$L="[object Float64Array]",WL="[object Int8Array]",jL="[object Int16Array]",zL="[object Int32Array]",HL="[object Uint8Array]",VL="[object Uint8ClampedArray]",GL="[object Uint16Array]",QL="[object Uint32Array]",lt={};lt[UL]=lt[$L]=lt[WL]=lt[jL]=lt[zL]=lt[HL]=lt[VL]=lt[GL]=lt[QL]=!0;lt[CL]=lt[kL]=lt[LL]=lt[TL]=lt[BL]=lt[RL]=lt[DL]=lt[FL]=lt[EL]=lt[IL]=lt[ML]=lt[AL]=lt[NL]=lt[qL]=lt[OL]=!1;function KL(t){return PL(t)&&xL(t.length)&&!!lt[SL(t)]}FP.exports=KL});var Uu=I((nV,IP)=>{"use strict";function JL(t){return function(e){return t(e)}}IP.exports=JL});var $u=I((Js,jo)=>{"use strict";var XL=ag(),MP=typeof Js=="object"&&Js&&!Js.nodeType&&Js,Xs=MP&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,YL=Xs&&Xs.exports===MP,pg=YL&&XL.process,ZL=function(){try{var t=Xs&&Xs.require&&Xs.require("util").types;return t||pg&&pg.binding&&pg.binding("util")}catch{}}();jo.exports=ZL});var OP=I((rV,qP)=>{"use strict";var eB=EP(),tB=Uu(),AP=$u(),NP=AP&&AP.isTypedArray,nB=NP?tB(NP):eB;qP.exports=nB});var mg=I((iV,LP)=>{"use strict";var rB=hP(),iB=yP(),oB=Bu(),sB=hg(),aB=RP(),cB=OP(),uB=Object.prototype,lB=uB.hasOwnProperty;function dB(t,e){var n=oB(t),i=!n&&iB(t),s=!n&&!i&&sB(t),c=!n&&!i&&!s&&cB(t),u=n||i||s||c,d=u?rB(t.length,String):[],f=d.length;for(var m in t)(e||lB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||aB(m,f)))&&d.push(m);return d}LP.exports=dB});var Wu=I((oV,BP)=>{"use strict";var fB=Object.prototype;function hB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||fB;return t===n}BP.exports=hB});var bg=I((sV,UP)=>{"use strict";function gB(t,e){return function(n){return t(e(n))}}UP.exports=gB});var WP=I((aV,$P)=>{"use strict";var pB=bg(),mB=pB(Object.keys,Object);$P.exports=mB});var zP=I((cV,jP)=>{"use strict";var bB=Wu(),_B=WP(),vB=Object.prototype,yB=vB.hasOwnProperty;function wB(t){if(!bB(t))return _B(t);var e=[];for(var n in Object(t))yB.call(t,n)&&n!="constructor"&&e.push(n);return e}jP.exports=wB});var _g=I((uV,HP)=>{"use strict";var SB=cg(),xB=gg();function PB(t){return t!=null&&xB(t.length)&&!SB(t)}HP.exports=PB});var ju=I((lV,VP)=>{"use strict";var CB=mg(),kB=zP(),TB=_g();function RB(t){return TB(t)?CB(t):kB(t)}VP.exports=RB});var QP=I((dV,GP)=>{"use strict";var DB=Qs(),FB=ju();function EB(t,e){return t&&DB(e,FB(e),t)}GP.exports=EB});var JP=I((fV,KP)=>{"use strict";function IB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}KP.exports=IB});var YP=I((hV,XP)=>{"use strict";var MB=Oo(),AB=Wu(),NB=JP(),qB=Object.prototype,OB=qB.hasOwnProperty;function LB(t){if(!MB(t))return NB(t);var e=AB(t),n=[];for(var i in t)i=="constructor"&&(e||!OB.call(t,i))||n.push(i);return n}XP.exports=LB});var zu=I((gV,ZP)=>{"use strict";var BB=mg(),UB=YP(),$B=_g();function WB(t){return $B(t)?BB(t,!0):UB(t)}ZP.exports=WB});var tC=I((pV,eC)=>{"use strict";var jB=Qs(),zB=zu();function HB(t,e){return t&&jB(e,zB(e),t)}eC.exports=HB});var sC=I((Ys,zo)=>{"use strict";var VB=nr(),oC=typeof Ys=="object"&&Ys&&!Ys.nodeType&&Ys,nC=oC&&typeof zo=="object"&&zo&&!zo.nodeType&&zo,GB=nC&&nC.exports===oC,rC=GB?VB.Buffer:void 0,iC=rC?rC.allocUnsafe:void 0;function QB(t,e){if(e)return t.slice();var n=t.length,i=iC?iC(n):new t.constructor(n);return t.copy(i),i}zo.exports=QB});var cC=I((mV,aC)=>{"use strict";function KB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function JB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function XB(){return[]}dC.exports=XB});var Hu=I((vV,hC)=>{"use strict";var YB=lC(),ZB=vg(),eU=Object.prototype,tU=eU.propertyIsEnumerable,fC=Object.getOwnPropertySymbols,nU=fC?function(t){return t==null?[]:(t=Object(t),YB(fC(t),function(e){return tU.call(t,e)}))}:ZB;hC.exports=nU});var pC=I((yV,gC)=>{"use strict";var rU=Qs(),iU=Hu();function oU(t,e){return rU(t,iU(t),e)}gC.exports=oU});var yg=I((wV,mC)=>{"use strict";function sU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var aU=bg(),cU=aU(Object.getPrototypeOf,Object);bC.exports=cU});var Sg=I((xV,_C)=>{"use strict";var uU=yg(),lU=wg(),dU=Hu(),fU=vg(),hU=Object.getOwnPropertySymbols,gU=hU?function(t){for(var e=[];t;)uU(e,dU(t)),t=lU(t);return e}:fU;_C.exports=gU});var yC=I((PV,vC)=>{"use strict";var pU=Qs(),mU=Sg();function bU(t,e){return pU(t,mU(t),e)}vC.exports=bU});var xg=I((CV,wC)=>{"use strict";var _U=yg(),vU=Bu();function yU(t,e,n){var i=e(t);return vU(t)?i:_U(i,n(t))}wC.exports=yU});var xC=I((kV,SC)=>{"use strict";var wU=xg(),SU=Hu(),xU=ju();function PU(t){return wU(t,xU,SU)}SC.exports=PU});var CC=I((TV,PC)=>{"use strict";var CU=xg(),kU=Sg(),TU=zu();function RU(t){return CU(t,TU,kU)}PC.exports=RU});var TC=I((RV,kC)=>{"use strict";var DU=pi(),FU=nr(),EU=DU(FU,"DataView");kC.exports=EU});var DC=I((DV,RC)=>{"use strict";var IU=pi(),MU=nr(),AU=IU(MU,"Promise");RC.exports=AU});var EC=I((FV,FC)=>{"use strict";var NU=pi(),qU=nr(),OU=NU(qU,"Set");FC.exports=OU});var MC=I((EV,IC)=>{"use strict";var LU=pi(),BU=nr(),UU=LU(BU,"WeakMap");IC.exports=UU});var Vu=I((IV,UC)=>{"use strict";var Pg=TC(),Cg=Lu(),kg=DC(),Tg=EC(),Rg=MC(),BC=Hs(),Ho=lg(),AC="[object Map]",$U="[object Object]",NC="[object Promise]",qC="[object Set]",OC="[object WeakMap]",LC="[object DataView]",WU=Ho(Pg),jU=Ho(Cg),zU=Ho(kg),HU=Ho(Tg),VU=Ho(Rg),zi=BC;(Pg&&zi(new Pg(new ArrayBuffer(1)))!=LC||Cg&&zi(new Cg)!=AC||kg&&zi(kg.resolve())!=NC||Tg&&zi(new Tg)!=qC||Rg&&zi(new Rg)!=OC)&&(zi=function(t){var e=BC(t),n=e==$U?t.constructor:void 0,i=n?Ho(n):"";if(i)switch(i){case WU:return LC;case jU:return AC;case zU:return NC;case HU:return qC;case VU:return OC}return e});UC.exports=zi});var WC=I((MV,$C)=>{"use strict";var GU=Object.prototype,QU=GU.hasOwnProperty;function KU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&QU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}$C.exports=KU});var zC=I((AV,jC)=>{"use strict";var JU=nr(),XU=JU.Uint8Array;jC.exports=XU});var Gu=I((NV,VC)=>{"use strict";var HC=zC();function YU(t){var e=new t.constructor(t.byteLength);return new HC(e).set(new HC(t)),e}VC.exports=YU});var QC=I((qV,GC)=>{"use strict";var ZU=Gu();function e$(t,e){var n=e?ZU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}GC.exports=e$});var JC=I((OV,KC)=>{"use strict";var t$=/\w*$/;function n$(t){var e=new t.constructor(t.source,t$.exec(t));return e.lastIndex=t.lastIndex,e}KC.exports=n$});var tk=I((LV,ek)=>{"use strict";var XC=Ou(),YC=XC?XC.prototype:void 0,ZC=YC?YC.valueOf:void 0;function r$(t){return ZC?Object(ZC.call(t)):{}}ek.exports=r$});var rk=I((BV,nk)=>{"use strict";var i$=Gu();function o$(t,e){var n=e?i$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}nk.exports=o$});var ok=I((UV,ik)=>{"use strict";var s$=Gu(),a$=QC(),c$=JC(),u$=tk(),l$=rk(),d$="[object Boolean]",f$="[object Date]",h$="[object Map]",g$="[object Number]",p$="[object RegExp]",m$="[object Set]",b$="[object String]",_$="[object Symbol]",v$="[object ArrayBuffer]",y$="[object DataView]",w$="[object Float32Array]",S$="[object Float64Array]",x$="[object Int8Array]",P$="[object Int16Array]",C$="[object Int32Array]",k$="[object Uint8Array]",T$="[object Uint8ClampedArray]",R$="[object Uint16Array]",D$="[object Uint32Array]";function F$(t,e,n){var i=t.constructor;switch(e){case v$:return s$(t);case d$:case f$:return new i(+t);case y$:return a$(t,n);case w$:case S$:case x$:case P$:case C$:case k$:case T$:case R$:case D$:return l$(t,n);case h$:return new i;case g$:case b$:return new i(t);case p$:return c$(t);case m$:return new i;case _$:return u$(t)}}ik.exports=F$});var ck=I(($V,ak)=>{"use strict";var E$=Oo(),sk=Object.create,I$=function(){function t(){}return function(e){if(!E$(e))return{};if(sk)return sk(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();ak.exports=I$});var lk=I((WV,uk)=>{"use strict";var M$=ck(),A$=wg(),N$=Wu();function q$(t){return typeof t.constructor=="function"&&!N$(t)?M$(A$(t)):{}}uk.exports=q$});var fk=I((jV,dk)=>{"use strict";var O$=Vu(),L$=$o(),B$="[object Map]";function U$(t){return L$(t)&&O$(t)==B$}dk.exports=U$});var mk=I((zV,pk)=>{"use strict";var $$=fk(),W$=Uu(),hk=$u(),gk=hk&&hk.isMap,j$=gk?W$(gk):$$;pk.exports=j$});var _k=I((HV,bk)=>{"use strict";var z$=Vu(),H$=$o(),V$="[object Set]";function G$(t){return H$(t)&&z$(t)==V$}bk.exports=G$});var Sk=I((VV,wk)=>{"use strict";var Q$=_k(),K$=Uu(),vk=$u(),yk=vk&&vk.isSet,J$=yk?K$(yk):Q$;wk.exports=J$});var Tk=I((GV,kk)=>{"use strict";var X$=rP(),Y$=oP(),Z$=fg(),eW=QP(),tW=tC(),nW=sC(),rW=cC(),iW=pC(),oW=yC(),sW=xC(),aW=CC(),cW=Vu(),uW=WC(),lW=ok(),dW=lk(),fW=Bu(),hW=hg(),gW=mk(),pW=Oo(),mW=Sk(),bW=ju(),_W=zu(),vW=1,yW=2,wW=4,xk="[object Arguments]",SW="[object Array]",xW="[object Boolean]",PW="[object Date]",CW="[object Error]",Pk="[object Function]",kW="[object GeneratorFunction]",TW="[object Map]",RW="[object Number]",Ck="[object Object]",DW="[object RegExp]",FW="[object Set]",EW="[object String]",IW="[object Symbol]",MW="[object WeakMap]",AW="[object ArrayBuffer]",NW="[object DataView]",qW="[object Float32Array]",OW="[object Float64Array]",LW="[object Int8Array]",BW="[object Int16Array]",UW="[object Int32Array]",$W="[object Uint8Array]",WW="[object Uint8ClampedArray]",jW="[object Uint16Array]",zW="[object Uint32Array]",it={};it[xk]=it[SW]=it[AW]=it[NW]=it[xW]=it[PW]=it[qW]=it[OW]=it[LW]=it[BW]=it[UW]=it[TW]=it[RW]=it[Ck]=it[DW]=it[FW]=it[EW]=it[IW]=it[$W]=it[WW]=it[jW]=it[zW]=!0;it[CW]=it[Pk]=it[MW]=!1;function Qu(t,e,n,i,s,c){var u,d=e&vW,f=e&yW,m=e&wW;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!pW(t))return t;var v=fW(t);if(v){if(u=uW(t),!d)return rW(t,u)}else{var x=cW(t),D=x==Pk||x==kW;if(hW(t))return nW(t,d);if(x==Ck||x==xk||D&&!s){if(u=f||D?{}:dW(t),!d)return f?oW(t,tW(u,t)):iW(t,eW(u,t))}else{if(!it[x])return s?t:{};u=lW(t,x,d)}}c||(c=new X$);var N=c.get(t);if(N)return N;c.set(t,u),mW(t)?t.forEach(function(B){u.add(Qu(B,e,n,B,t,c))}):gW(t)&&t.forEach(function(B,K){u.set(K,Qu(B,e,n,K,t,c))});var A=m?f?aW:sW:f?_W:bW,L=v?void 0:A(t);return Y$(L||t,function(B,K){L&&(K=B,B=t[K]),Z$(u,K,Qu(B,e,n,K,t,c))}),u}kk.exports=Qu});var Dk=I((QV,Rk)=>{"use strict";var HW=Tk(),VW=1,GW=4;function QW(t){return HW(t,VW|GW)}Rk.exports=QW});var Ek=I((Fk,Ku)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Ku=="object"&&Ku.exports?Ku.exports=e():t.log=e()})(Fk,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+Se)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(Se,X){return P=Je(Se),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(Se){F=Je(Se),ve()||B.setLevel(Se,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(Se){B.setLevel(B.levels.TRACE,Se)},B.disableAll=function(Se){B.setLevel(B.levels.SILENT,Se)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var Se in s)s[Se].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Go=I((Vo,na)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,v=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",Se=800,X=16,z=1,se=2,re=3,Te=1/0,ge=9007199254740991,me=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,wr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",lr="[object Array]",xi="[object AsyncFunction]",dr="[object Boolean]",fr="[object Date]",Qi="[object DOMException]",Sr="[object Error]",xr="[object Function]",Pr="[object GeneratorFunction]",mt="[object Map]",hr="[object Number]",Ki="[object Null]",Bt="[object Object]",Pi="[object Promise]",Hr="[object Proxy]",gr="[object RegExp]",xt="[object Set]",sn="[object String]",Cr="[object Symbol]",Ji="[object Undefined]",jt="[object WeakMap]",Ci="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",tt=/\b__p \+= '';/g,Re=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(at.source),Xi=/<%-([\s\S]+?)%>/g,xa=/<%([\s\S]+?)%>/g,ls=/<%=([\s\S]+?)%>/g,Pa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ca=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ft=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Vr=/^0o[0-7]+$/i,Yi=/^(?:0|[1-9]\d*)$/,ka=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ta=/($^)/,jT=/['\n\r\u2028\u2029\\]/g,Ra="\\ud800-\\udfff",zT="\\u0300-\\u036f",HT="\\ufe20-\\ufe2f",VT="\\u20d0-\\u20ff",Dp=zT+HT+VT,Fp="\\u2700-\\u27bf",Ep="a-z\\xdf-\\xf6\\xf8-\\xff",GT="\\xac\\xb1\\xd7\\xf7",QT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",KT="\\u2000-\\u206f",JT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ip="A-Z\\xc0-\\xd6\\xd8-\\xde",Mp="\\ufe0e\\ufe0f",Ap=GT+QT+KT+JT,Vl="['\u2019]",XT="["+Ra+"]",Np="["+Ap+"]",Da="["+Dp+"]",qp="\\d+",YT="["+Fp+"]",Op="["+Ep+"]",Lp="[^"+Ra+Ap+qp+Fp+Ep+Ip+"]",Gl="\\ud83c[\\udffb-\\udfff]",ZT="(?:"+Da+"|"+Gl+")",Bp="[^"+Ra+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",Zi="["+Ip+"]",Up="\\u200d",$p="(?:"+Op+"|"+Lp+")",eR="(?:"+Zi+"|"+Lp+")",Wp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",jp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",zp=ZT+"?",Hp="["+Mp+"]?",tR="(?:"+Up+"(?:"+[Bp,Ql,Kl].join("|")+")"+Hp+zp+")*",nR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Vp=Hp+zp+tR,iR="(?:"+[YT,Ql,Kl].join("|")+")"+Vp,oR="(?:"+[Bp+Da+"?",Da,Ql,Kl,XT].join("|")+")",sR=RegExp(Vl,"g"),aR=RegExp(Da,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+oR+Vp,"g"),cR=RegExp([Zi+"?"+Op+"+"+Wp+"(?="+[Np,Zi,"$"].join("|")+")",eR+"+"+jp+"(?="+[Np,Zi+$p,"$"].join("|")+")",Zi+"?"+$p+"+"+Wp,Zi+"+"+jp,rR,nR,qp,iR].join("|"),"g"),uR=RegExp("["+Up+Ra+Dp+Mp+"]"),lR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,dR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],fR=-1,ct={};ct[kr]=ct[vn]=ct[C]=ct[H]=ct[Z]=ct[ie]=ct[Ue]=ct[Le]=ct[Ge]=!0,ct[Vn]=ct[lr]=ct[Gn]=ct[dr]=ct[_n]=ct[fr]=ct[Sr]=ct[xr]=ct[mt]=ct[hr]=ct[Bt]=ct[gr]=ct[xt]=ct[sn]=ct[jt]=!1;var nt={};nt[Vn]=nt[lr]=nt[Gn]=nt[_n]=nt[dr]=nt[fr]=nt[kr]=nt[vn]=nt[C]=nt[H]=nt[Z]=nt[mt]=nt[hr]=nt[Bt]=nt[gr]=nt[xt]=nt[sn]=nt[Cr]=nt[ie]=nt[Ue]=nt[Le]=nt[Ge]=!0,nt[Sr]=nt[xr]=nt[jt]=!1;var hR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},gR={"&":"&","<":"<",">":">",'"':""","'":"'"},pR={"&":"&","<":"<",">":">",""":'"',"'":"'"},mR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},bR=parseFloat,_R=parseInt,Gp=typeof global=="object"&&global&&global.Object===Object&&global,vR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Gp||vR||Function("return this")(),Xl=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,ki=Xl&&typeof na=="object"&&na&&!na.nodeType&&na,Qp=ki&&ki.exports===Xl,Yl=Qp&&Gp.process,En=function(){try{var E=ki&&ki.require&&ki.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Kp=En&&En.isArrayBuffer,Jp=En&&En.isDate,Xp=En&&En.isMap,Yp=En&&En.isRegExp,Zp=En&&En.isSet,em=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function yR(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function cm(E,W){for(var $=E.length;$--&&eo(W,E[$],0)>-1;);return $}function DR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var FR=rd(hR),ER=rd(gR);function IR(E){return"\\"+mR[E]}function MR(E,W){return E==null?t:E[W]}function to(E){return uR.test(E)}function AR(E){return lR.test(E)}function NR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function um(E,W){return function($){return E(W($))}}function Kr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function SD(r,o){var a=this.__data__,l=Ga(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}Tr.prototype.clear=_D,Tr.prototype.delete=vD,Tr.prototype.get=yD,Tr.prototype.has=wD,Tr.prototype.set=SD;function Rr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&v,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=xe(r);if(Q){if(S=k0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==xr||J==Pr;if(ni(r))return Hm(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:lb(r),!T)return M?p0(r,LD(S,r)):g0(r,wm(S,r))}else{if(!nt[J])return h?r:{};S=T0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),Bb(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):Ob(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,ke=Q?t:de(r);return In(ke||r,function(fe,Me){ke&&(Me=fe,fe=r[Me]),bs(S,Me,Nn(fe,o,a,Me,r,_))}),S}function BD(r){var o=Ot(r);return function(a){return Sm(a,r,o)}}function Sm(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function xm(r,o,a){if(typeof r!="function")throw new Mn(s);return Ps(function(){r.apply(t,a)},o)}function _s(r,o,a,l){var h=-1,_=Fa,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=ht(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ds,S=!1,o=new Di(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:Ce(l),l<0&&(l+=h),l=a>l?0:$b(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Qr(h,T):l||(h[h.length]=T)}return h}var gd=Xm(),km=Xm(!0);function pr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&km(r,o,Ot)}function Ka(r,o){return Gr(o,function(a){return Mr(r[a])})}function Ei(r,o){o=ei(o,r);for(var a=0,l=o.length;r!=null&&ao}function WD(r,o){return r!=null&&Ke.call(r,o)}function jD(r,o){return r!=null&&o in Ye(r)}function zD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Di(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&Ua.call(T,M,1),Ua.call(r,M,1);return r}function Om(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Ir(h)?Ua.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+ja(bm()*(o-r+1))}function r0(r,o,a,l){for(var h=-1,_=At(Wa((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=ja(o/2),o&&(r+=r);while(o);return a}function De(r,o){return Ud(hb(r,o,dn),r+"")}function i0(r){return ym(fo(r))}function o0(r,o){var a=fo(r);return sc(a,Fi(o,0,a.length))}function ws(r,o,a,l){if(!bt(r))return r;o=ei(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=br(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Ir(o[h+1])?[]:{})}bs(T,M,V),T=T[M]}return r}var Lm=za?function(r,o){return za.set(r,o),r}:dn,s0=$a?function(r,o){return $a(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function a0(r){return sc(fo(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:v0(r);if(V)return Ia(V);S=!1,h=ds,M=new Di}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=ei(o,r),r=gb(r,o),r==null||delete r[br(On(o))]}function $m(r,o,a,l){return ws(r,o,a(Ei(r,o)),l)}function Ya(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var zm=JR||function(r){return qt.clearTimeout(r)};function Hm(r,o){if(o)return r.slice();var a=r.length,l=fm?fm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new La(o).set(new La(r)),o}function l0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function d0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function f0(r){return ms?Ye(ms.call(r)):{}}function Vm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Gm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Qm(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function eb(r){return Er(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&ic(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Di:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(y,`{ +`&&g++}y&&R.length>0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),y=0,g=R.length;if(g===0)return u.create(0,k);for(;yk?g=O:y=O+1}var G=y-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var y=R[k.line],g=k.line+1"u"}p.undefined=y;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Vr,Zi){return k.call(Ie)==="[object Number]"&&Vr<=Ie&&Ie<=Zi}p.numberRange=be;function ft(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ft;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Vr){return Array.isArray(Ie)&&Ie.every(Vr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var So=Ui(),L_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(L_||(hn.MessageDirection=L_={}));var ph=class{constructor(e){this.method=e}};hn.RegistrationType=ph;var mh=class extends So.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=mh;var bh=class extends So.RequestType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolRequestType=bh;var _h=class extends So.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=_h;var vh=class extends So.NotificationType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolNotificationType=vh});var $c=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function HA(t){return t===!0||t===!1}It.boolean=HA;function B_(t){return typeof t=="string"||t instanceof String}It.string=B_;function VA(t){return typeof t=="number"||t instanceof Number}It.number=VA;function GA(t){return t instanceof Error}It.error=GA;function QA(t){return typeof t=="function"}It.func=QA;function U_(t){return Array.isArray(t)}It.array=U_;function KA(t){return U_(t)&&t.every(e=>B_(e))}It.stringArray=KA;function JA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=JA;function XA(t){return t!==null&&typeof t=="object"}It.objectLiteral=XA});var j_=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ImplementationRequest=void 0;var $_=pt(),W_;(function(t){t.method="textDocument/implementation",t.messageDirection=$_.MessageDirection.clientToServer,t.type=new $_.ProtocolRequestType(t.method)})(W_||(Wc.ImplementationRequest=W_={}))});var V_=I(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.TypeDefinitionRequest=void 0;var z_=pt(),H_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=z_.MessageDirection.clientToServer,t.type=new z_.ProtocolRequestType(t.method)})(H_||(jc.TypeDefinitionRequest=H_={}))});var K_=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.DidChangeWorkspaceFoldersNotification=xo.WorkspaceFoldersRequest=void 0;var zc=pt(),G_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(G_||(xo.WorkspaceFoldersRequest=G_={}));var Q_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolNotificationType(t.method)})(Q_||(xo.DidChangeWorkspaceFoldersNotification=Q_={}))});var Y_=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.ConfigurationRequest=void 0;var J_=pt(),X_;(function(t){t.method="workspace/configuration",t.messageDirection=J_.MessageDirection.serverToClient,t.type=new J_.ProtocolRequestType(t.method)})(X_||(Hc.ConfigurationRequest=X_={}))});var tv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.ColorPresentationRequest=Po.DocumentColorRequest=void 0;var Vc=pt(),Z_;(function(t){t.method="textDocument/documentColor",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(Z_||(Po.DocumentColorRequest=Z_={}));var ev;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(ev||(Po.ColorPresentationRequest=ev={}))});var iv=I(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.FoldingRangeRefreshRequest=Co.FoldingRangeRequest=void 0;var Gc=pt(),nv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolRequestType(t.method)})(nv||(Co.FoldingRangeRequest=nv={}));var rv;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType0(t.method)})(rv||(Co.FoldingRangeRefreshRequest=rv={}))});var av=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DeclarationRequest=void 0;var ov=pt(),sv;(function(t){t.method="textDocument/declaration",t.messageDirection=ov.MessageDirection.clientToServer,t.type=new ov.ProtocolRequestType(t.method)})(sv||(Qc.DeclarationRequest=sv={}))});var lv=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.SelectionRangeRequest=void 0;var cv=pt(),uv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=cv.MessageDirection.clientToServer,t.type=new cv.ProtocolRequestType(t.method)})(uv||(Kc.SelectionRangeRequest=uv={}))});var gv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.WorkDoneProgressCancelNotification=ai.WorkDoneProgressCreateRequest=ai.WorkDoneProgress=void 0;var YA=Ui(),Jc=pt(),dv;(function(t){t.type=new YA.ProgressType;function e(n){return n===t.type}t.is=e})(dv||(ai.WorkDoneProgress=dv={}));var fv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType(t.method)})(fv||(ai.WorkDoneProgressCreateRequest=fv={}));var hv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolNotificationType(t.method)})(hv||(ai.WorkDoneProgressCancelNotification=hv={}))});var _v=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.CallHierarchyOutgoingCallsRequest=ci.CallHierarchyIncomingCallsRequest=ci.CallHierarchyPrepareRequest=void 0;var ko=pt(),pv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(pv||(ci.CallHierarchyPrepareRequest=pv={}));var mv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(mv||(ci.CallHierarchyIncomingCallsRequest=mv={}));var bv;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(bv||(ci.CallHierarchyOutgoingCallsRequest=bv={}))});var Pv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Or=pt(),vv;(function(t){t.Relative="relative"})(vv||(gn.TokenFormat=vv={}));var Is;(function(t){t.method="textDocument/semanticTokens",t.type=new Or.RegistrationType(t.method)})(Is||(gn.SemanticTokensRegistrationType=Is={}));var yv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(yv||(gn.SemanticTokensRequest=yv={}));var wv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(wv||(gn.SemanticTokensDeltaRequest=wv={}));var Sv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(Sv||(gn.SemanticTokensRangeRequest=Sv={}));var xv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=Or.MessageDirection.serverToClient,t.type=new Or.ProtocolRequestType0(t.method)})(xv||(gn.SemanticTokensRefreshRequest=xv={}))});var Tv=I(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.ShowDocumentRequest=void 0;var Cv=pt(),kv;(function(t){t.method="window/showDocument",t.messageDirection=Cv.MessageDirection.serverToClient,t.type=new Cv.ProtocolRequestType(t.method)})(kv||(Xc.ShowDocumentRequest=kv={}))});var Fv=I(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.LinkedEditingRangeRequest=void 0;var Rv=pt(),Dv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Rv.MessageDirection.clientToServer,t.type=new Rv.ProtocolRequestType(t.method)})(Dv||(Yc.LinkedEditingRangeRequest=Dv={}))});var Lv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Ev;(function(t){t.file="file",t.folder="folder"})(Ev||(Qt.FileOperationPatternKind=Ev={}));var Iv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Iv||(Qt.WillCreateFilesRequest=Iv={}));var Mv;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Mv||(Qt.DidCreateFilesNotification=Mv={}));var Av;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Av||(Qt.WillRenameFilesRequest=Av={}));var Nv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Nv||(Qt.DidRenameFilesNotification=Nv={}));var qv;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(qv||(Qt.DidDeleteFilesNotification=qv={}));var Ov;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Ov||(Qt.WillDeleteFilesRequest=Ov={}))});var jv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.MonikerRequest=ui.MonikerKind=ui.UniquenessLevel=void 0;var Bv=pt(),Uv;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(Uv||(ui.UniquenessLevel=Uv={}));var $v;(function(t){t.$import="import",t.$export="export",t.local="local"})($v||(ui.MonikerKind=$v={}));var Wv;(function(t){t.method="textDocument/moniker",t.messageDirection=Bv.MessageDirection.clientToServer,t.type=new Bv.ProtocolRequestType(t.method)})(Wv||(ui.MonikerRequest=Wv={}))});var Gv=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.TypeHierarchySubtypesRequest=li.TypeHierarchySupertypesRequest=li.TypeHierarchyPrepareRequest=void 0;var To=pt(),zv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(zv||(li.TypeHierarchyPrepareRequest=zv={}));var Hv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Hv||(li.TypeHierarchySupertypesRequest=Hv={}));var Vv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Vv||(li.TypeHierarchySubtypesRequest=Vv={}))});var Jv=I(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.InlineValueRefreshRequest=Ro.InlineValueRequest=void 0;var Zc=pt(),Qv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Zc.MessageDirection.clientToServer,t.type=new Zc.ProtocolRequestType(t.method)})(Qv||(Ro.InlineValueRequest=Qv={}));var Kv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Zc.MessageDirection.serverToClient,t.type=new Zc.ProtocolRequestType0(t.method)})(Kv||(Ro.InlineValueRefreshRequest=Kv={}))});var ey=I(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.InlayHintRefreshRequest=di.InlayHintResolveRequest=di.InlayHintRequest=void 0;var Do=pt(),Xv;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Xv||(di.InlayHintRequest=Xv={}));var Yv;(function(t){t.method="inlayHint/resolve",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Yv||(di.InlayHintResolveRequest=Yv={}));var Zv;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(Zv||(di.InlayHintRefreshRequest=Zv={}))});var ay=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var sy=Ui(),ZA=$c(),Fo=pt(),ty;(function(t){function e(n){let i=n;return i&&ZA.boolean(i.retriggerRequest)}t.is=e})(ty||(Un.DiagnosticServerCancellationData=ty={}));var ny;(function(t){t.Full="full",t.Unchanged="unchanged"})(ny||(Un.DocumentDiagnosticReportKind=ny={}));var ry;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(ry||(Un.DocumentDiagnosticRequest=ry={}));var iy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(iy||(Un.WorkspaceDiagnosticRequest=iy={}));var oy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Fo.MessageDirection.serverToClient,t.type=new Fo.ProtocolRequestType0(t.method)})(oy||(Un.DiagnosticRefreshRequest=oy={}))});var gy=I(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.DidCloseNotebookDocumentNotification=yt.DidSaveNotebookDocumentNotification=yt.DidChangeNotebookDocumentNotification=yt.NotebookCellArrayChange=yt.DidOpenNotebookDocumentNotification=yt.NotebookDocumentSyncRegistrationType=yt.NotebookDocument=yt.NotebookCell=yt.ExecutionSummary=yt.NotebookCellKind=void 0;var Ms=Uc(),er=$c(),_r=pt(),yh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(yh||(yt.NotebookCellKind=yh={}));var wh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Ms.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(wh||(yt.ExecutionSummary=wh={}));var eu;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&yh.is(u.kind)&&Ms.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.InlineCompletionRequest=void 0;var py=pt(),my;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=py.MessageDirection.clientToServer,t.type=new py.ProtocolRequestType(t.method)})(my||(tu.InlineCompletionRequest=my={}))});var Fw=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),_y=Uc(),Lt=$c(),eN=j_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return eN.ImplementationRequest}});var tN=V_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return tN.TypeDefinitionRequest}});var kw=K_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return kw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return kw.DidChangeWorkspaceFoldersNotification}});var nN=Y_();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return nN.ConfigurationRequest}});var Tw=tv();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Tw.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Tw.ColorPresentationRequest}});var Rw=iv();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRefreshRequest}});var rN=av();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return rN.DeclarationRequest}});var iN=lv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return iN.SelectionRangeRequest}});var kh=gv();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return kh.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return kh.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return kh.WorkDoneProgressCancelNotification}});var Th=_v();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var Io=Pv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Io.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Io.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Io.SemanticTokensRegistrationType}});var oN=Tv();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return oN.ShowDocumentRequest}});var sN=Fv();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return sN.LinkedEditingRangeRequest}});var $i=Lv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return $i.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return $i.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return $i.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return $i.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return $i.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return $i.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return $i.WillDeleteFilesRequest}});var Rh=jv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Rh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Rh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Rh.MonikerRequest}});var Dh=Gv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySupertypesRequest}});var Dw=Jv();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Dw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Dw.InlineValueRefreshRequest}});var Fh=ey();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Fh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Fh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Fh.InlayHintRefreshRequest}});var As=ay();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return As.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return As.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return As.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return As.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return As.DiagnosticRefreshRequest}});var vr=gy();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return vr.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return vr.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return vr.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return vr.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return vr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return vr.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidCloseNotebookDocumentNotification}});var aN=by();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return aN.InlineCompletionRequest}});var Sh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(Sh||(w.TextDocumentFilter=Sh={}));var xh;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(xh||(w.NotebookDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||xh.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ph||(w.NotebookCellTextDocumentFilter=Ph={}));var Ch;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!Sh.is(i)&&!Ph.is(i))return!1;return!0}t.is=e})(Ch||(w.DocumentSelector=Ch={}));var vy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(vy||(w.RegistrationRequest=vy={}));var yy;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(yy||(w.UnregistrationRequest=yy={}));var wy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(wy||(w.ResourceOperationKind=wy={}));var Sy;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(Sy||(w.FailureHandlingKind=Sy={}));var xy;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(xy||(w.PositionEncodingKind=xy={}));var Py;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Py||(w.StaticRegistrationOptions=Py={}));var Cy;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Ch.is(i.documentSelector))}t.is=e})(Cy||(w.TextDocumentRegistrationOptions=Cy={}));var ky;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(ky||(w.WorkDoneProgressOptions=ky={}));var Ty;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ty||(w.InitializeRequest=Ty={}));var Ry;(function(t){t.unknownProtocolVersion=1})(Ry||(w.InitializeErrorCodes=Ry={}));var Dy;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Dy||(w.InitializedNotification=Dy={}));var Fy;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Fy||(w.ShutdownRequest=Fy={}));var Ey;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Ey||(w.ExitNotification=Ey={}));var Iy;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Iy||(w.DidChangeConfigurationNotification=Iy={}));var My;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(My||(w.MessageType=My={}));var Ay;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ay||(w.ShowMessageNotification=Ay={}));var Ny;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Ny||(w.ShowMessageRequest=Ny={}));var qy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(qy||(w.LogMessageNotification=qy={}));var Oy;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Oy||(w.TelemetryEventNotification=Oy={}));var Ly;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Ly||(w.TextDocumentSyncKind=Ly={}));var By;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(By||(w.DidOpenTextDocumentNotification=By={}));var Uy;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(Uy||(w.TextDocumentContentChangeEvent=Uy={}));var $y;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})($y||(w.DidChangeTextDocumentNotification=$y={}));var Wy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Wy||(w.DidCloseTextDocumentNotification=Wy={}));var jy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidSaveTextDocumentNotification=jy={}));var zy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(zy||(w.TextDocumentSaveReason=zy={}));var Hy;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Hy||(w.WillSaveTextDocumentNotification=Hy={}));var Vy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Vy||(w.WillSaveTextDocumentWaitUntilRequest=Vy={}));var Gy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Gy||(w.DidChangeWatchedFilesNotification=Gy={}));var Qy;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Qy||(w.FileChangeType=Qy={}));var Ky;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(_y.URI.is(i.baseUri)||_y.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Ky||(w.RelativePattern=Ky={}));var Jy;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Jy||(w.WatchKind=Jy={}));var Xy;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Xy||(w.PublishDiagnosticsNotification=Xy={}));var Yy;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Yy||(w.CompletionTriggerKind=Yy={}));var Zy;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Zy||(w.CompletionRequest=Zy={}));var ew;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ew||(w.CompletionResolveRequest=ew={}));var tw;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(tw||(w.HoverRequest=tw={}));var nw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(nw||(w.SignatureHelpTriggerKind=nw={}));var rw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(rw||(w.SignatureHelpRequest=rw={}));var iw;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.DefinitionRequest=iw={}));var ow;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.ReferencesRequest=ow={}));var sw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(sw||(w.DocumentHighlightRequest=sw={}));var aw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.DocumentSymbolRequest=aw={}));var cw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.CodeActionRequest=cw={}));var uw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.CodeActionResolveRequest=uw={}));var lw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.WorkspaceSymbolRequest=lw={}));var dw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.WorkspaceSymbolResolveRequest=dw={}));var fw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.CodeLensRequest=fw={}));var hw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeLensResolveRequest=hw={}));var gw;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(gw||(w.CodeLensRefreshRequest=gw={}));var pw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(pw||(w.DocumentLinkRequest=pw={}));var mw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.DocumentLinkResolveRequest=mw={}));var bw;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.DocumentFormattingRequest=bw={}));var _w;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(_w||(w.DocumentRangeFormattingRequest=_w={}));var vw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentRangesFormattingRequest=vw={}));var yw;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentOnTypeFormattingRequest=yw={}));var ww;(function(t){t.Identifier=1})(ww||(w.PrepareSupportDefaultBehavior=ww={}));var Sw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Sw||(w.RenameRequest=Sw={}));var xw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.PrepareRenameRequest=xw={}));var Pw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.ExecuteCommandRequest=Pw={}));var Cw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(Cw||(w.ApplyWorkspaceEditRequest=Cw={}))});var Iw=I(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.createProtocolConnection=void 0;var Ew=Ui();function cN(t,e,n,i){return Ew.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Ew.createMessageConnection)(t,e,n,i)}nu.createProtocolConnection=cN});var Aw=I(pn=>{"use strict";var uN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),ru=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&uN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;ru(Ui(),pn);ru(Uc(),pn);ru(pt(),pn);ru(Fw(),pn);var lN=Iw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return lN.createProtocolConnection}});var Mw;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Mw||(pn.LSPErrorCodes=Mw={}))});var kt=I(yr=>{"use strict";var dN=yr&&yr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Nw=yr&&yr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&dN(e,t,n)};Object.defineProperty(yr,"__esModule",{value:!0});yr.createProtocolConnection=void 0;var fN=gh();Nw(gh(),yr);Nw(Aw(),yr);function hN(t,e,n,i){return(0,fN.createMessageConnection)(t,e,n,i)}yr.createProtocolConnection=hN});var Eh=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var Ns=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},qs=class t extends Ns{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};qs._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];qs._timeHighBits=["8","9","a","b"];$n.empty=new Ns("00000000-0000-0000-0000-000000000000");function qw(){return new qs}$n.v4=qw;var gN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ow(t){return gN.test(t)}$n.isUUID=Ow;function pN(t){if(!Ow(t))throw new Error("invalid uuid");return new Ns(t)}$n.parse=pN;function mN(){return qw().asHex()}$n.generateUuid=mN});var Lw=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.attachPartialResult=hi.ProgressFeature=hi.attachWorkDone=void 0;var fi=kt(),bN=Eh(),Wi=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,{kind:"end"})}};Wi.Instances=new Map;var iu=class extends Wi{constructor(e,n){super(e,n),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Os=class{constructor(){}begin(){}report(){}done(){}},ou=class extends Os{constructor(){super(),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function _N(t,e){if(e===void 0||e.workDoneToken===void 0)return new Os;let n=e.workDoneToken;return delete e.workDoneToken,new Wi(t,n)}hi.attachWorkDone=_N;var vN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(fi.WorkDoneProgressCancelNotification.type,n=>{let i=Wi.Instances.get(n.token);(i instanceof iu||i instanceof ou)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new Os:new Wi(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,bN.generateUuid)();return this.connection.sendRequest(fi.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new iu(this.connection,e))}else return Promise.resolve(new ou)}};hi.ProgressFeature=vN;var Ih;(function(t){t.type=new fi.ProgressType})(Ih||(Ih={}));var Mh=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Ih.type,this._token,e)}};function yN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Mh(t,n)}hi.attachPartialResult=yN});var Bw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.ConfigurationFeature=void 0;var wN=kt(),SN=bc(),xN=t=>class extends t{getConfiguration(e){return e?SN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(wN.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};su.ConfigurationFeature=xN});var Uw=I(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.WorkspaceFoldersFeature=void 0;var au=kt(),PN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new au.Emitter,this.connection.onNotification(au.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(au.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(au.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};cu.WorkspaceFoldersFeature=PN});var $w=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.CallHierarchyFeature=void 0;var Ah=kt(),CN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Ah.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Ah.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Ah.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};uu.CallHierarchyFeature=CN});var qh=I(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.SemanticTokensBuilder=gi.SemanticTokensDiff=gi.SemanticTokensFeature=void 0;var lu=kt(),kN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(lu.SemanticTokensRefreshRequest.type),on:e=>{let n=lu.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=lu.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=lu.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gi.SemanticTokensFeature=kN;var du=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new du(this._prevData,this._data).computeDiff()}:this.build()}};gi.SemanticTokensBuilder=Nh});var Ww=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.ShowDocumentFeature=void 0;var TN=kt(),RN=t=>class extends t{showDocument(e){return this.connection.sendRequest(TN.ShowDocumentRequest.type,e)}};fu.ShowDocumentFeature=RN});var jw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.FileOperationsFeature=void 0;var Mo=kt(),DN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Mo.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Mo.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Mo.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Mo.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Mo.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Mo.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};hu.FileOperationsFeature=DN});var zw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.LinkedEditingRangeFeature=void 0;var FN=kt(),EN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(FN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};gu.LinkedEditingRangeFeature=EN});var Hw=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.TypeHierarchyFeature=void 0;var Oh=kt(),IN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};pu.TypeHierarchyFeature=IN});var Gw=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.InlineValueFeature=void 0;var Vw=kt(),MN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Vw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Vw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};mu.InlineValueFeature=MN});var Kw=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.FoldingRangeFeature=void 0;var Qw=kt(),AN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Qw.FoldingRangeRefreshRequest.type),on:e=>{let n=Qw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};bu.FoldingRangeFeature=AN});var Jw=I(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.InlayHintFeature=void 0;var Lh=kt(),NN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Lh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Lh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Lh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};_u.InlayHintFeature=NN});var Xw=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.DiagnosticFeature=void 0;var Ls=kt(),qN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Ls.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Ls.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Ls.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.WorkspaceDiagnosticRequest.partialResult,n)))}}};vu.DiagnosticFeature=qN});var Uh=I(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.TextDocuments=void 0;var ji=kt(),Bh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new ji.Emitter,this._onDidOpen=new ji.Emitter,this._onDidClose=new ji.Emitter,this._onDidSave=new ji.Emitter,this._onWillSave=new ji.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=ji.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),ji.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};yu.TextDocuments=Bh});var Wh=I(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.NotebookDocuments=Ao.NotebookSyncFeature=void 0;var Wn=kt(),Yw=Uh(),ON=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Ao.NotebookSyncFeature=ON;var wu=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};wu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $h=class{constructor(e){e instanceof Yw.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new Yw.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new wu,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],v=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),v.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of v)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Ao.NotebookDocuments=$h});var Zw=I(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.MonikerFeature=void 0;var LN=kt(),BN=t=>class extends t{get moniker(){return{on:e=>{let n=LN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Su.MonikerFeature=BN});var Qh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=bc(),zh=Eh(),we=Lw(),UN=Bw(),$N=Uw(),WN=$w(),jN=qh(),zN=Ww(),HN=jw(),VN=zw(),GN=Hw(),QN=Gw(),KN=Kw(),JN=Jw(),XN=Xw(),YN=Wh(),ZN=Zw();function jh(t){if(t!==null)return t}var Hh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Hh;var xu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Vh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}},eS=(0,zN.ShowDocumentFeature)((0,we.ProgressFeature)(Vh)),tS;(function(t){function e(){return new Pu}t.create=e})(tS||($e.BulkRegistration=tS={}));var Pu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=zh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},nS;(function(t){function e(){return new Bs(void 0,[])}t.create=e})(nS||($e.BulkUnregistration=nS={}));var Bs=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Cu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof Pu?this.registerMany(e):e instanceof Bs?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=zh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=zh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Bs(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},rS=(0,HN.FileOperationsFeature)((0,$N.WorkspaceFoldersFeature)((0,UN.ConfigurationFeature)(Gh))),ku=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Tu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Ru=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Ru;var iS=(0,KN.FoldingRangeFeature)((0,ZN.MonikerFeature)((0,XN.DiagnosticFeature)((0,JN.InlayHintFeature)((0,QN.InlineValueFeature)((0,GN.TypeHierarchyFeature)((0,VN.LinkedEditingRangeFeature)((0,jN.SemanticTokensFeature)((0,WN.CallHierarchyFeature)(Ru))))))))),Du=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Du;var oS=(0,YN.NotebookSyncFeature)(Du);function sS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=sS;function aS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=aS;function cS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=cS;function uS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=uS;function lS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=hS;function eq(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,sS),tracer:n(t.tracer,e.tracer,cS),telemetry:n(t.telemetry,e.telemetry,aS),client:n(t.client,e.client,uS),window:n(t.window,e.window,lS),workspace:n(t.workspace,e.workspace,dS),languages:n(t.languages,e.languages,fS),notebooks:n(t.notebooks,e.notebooks,hS)}}$e.combineFeatures=eq;function tq(t,e,n){let i=n&&n.console?new(n.console(xu)):new xu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(ku)):new ku,u=n&&n.telemetry?new(n.telemetry(Tu)):new Tu,d=n&&n.client?new(n.client(Cu)):new Cu,f=n&&n.window?new(n.window(eS)):new eS,m=n&&n.workspace?new(n.workspace(rS)):new rS,v=n&&n.languages?new(n.languages(iS)):new iS,x=n&&n.notebooks?new(n.notebooks(oS)):new oS,D=[i,c,u,d,f,m,v,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return v},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=tq});var gS=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var nq=require("url"),tr=require("path"),Kh=require("fs"),Zh=require("child_process");function rq(t){let e=nq.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=rq;function Jh(){return process.platform==="win32"}function Fu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(v=>m[v]=f[v]),e&&Kh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let v=(0,Zh.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(v.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}v.on("error",D=>{d(D)}),v.on("message",D=>{D.c==="r"&&(v.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};v.send(x)}catch(v){d(v)}})}mn.resolve=Fu;function Xh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Jh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,Zh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Jh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Xh;function iq(t){let e="yarn",n={encoding:"utf8"};Jh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,Zh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=iq;var Yh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Kh.existsSync(__filename.toUpperCase())||!Kh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Yh||(mn.FileSystem=Yh={}));function oq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Fu(e,n,n,i).then(s=>Yh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Fu(e,Xh(i),t,i))):Fu(e,Xh(i),t,i)}mn.resolveModulePath=oq});var eg=I((Iz,pS)=>{"use strict";pS.exports=kt()});var mS=I(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.InlineCompletionFeature=void 0;var sq=kt(),aq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(sq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Eu.InlineCompletionFeature=aq});var vS=I(Kt=>{"use strict";var cq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),_S=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var uq=qh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return uq.SemanticTokensBuilder}});var lq=mS();_S(kt(),Kt);var dq=Uh();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return dq.TextDocuments}});var fq=Wh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return fq.NotebookDocuments}});_S(Qh(),Kt);var bS;(function(t){t.all={__brand:"features",languages:lq.InlineCompletionFeature}})(bS||(Kt.ProposedFeatures=bS={}))});var ng=I(zn=>{"use strict";var hq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),xS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&hq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var yS=require("node:util"),tg=bc(),gq=Qh(),Us=gS(),zi=eg();xS(eg(),zn);xS(vS(),zn);var wS;(function(t){t.uriToFilePath=Us.uriToFilePath,t.resolveGlobalNodePath=Us.resolveGlobalNodePath,t.resolveGlobalYarnPath=Us.resolveGlobalYarnPath,t.resolve=Us.resolve,t.resolveModulePath=Us.resolveModulePath})(wS||(zn.Files=wS={}));var SS;function Iu(){if(SS!==void 0)try{SS.end()}catch{}}var No=!1,PS;function pq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(PS=setInterval(()=>{try{process.kill(i,0)}catch{Iu(),process.exit(No?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;tg.number(e)&&PS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(No?0:1)}},3e3)},get shutdownReceived(){return No},set shutdownReceived(t){No=t},exit:t=>{Iu(),process.exit(t)}};function bq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),zi.ConnectionStrategy.is(t)||zi.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),_q(c,u,d,s)}zn.createConnection=bq;function _q(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,v=process.argv.slice(2);for(let x=0;x{Iu(),process.exit(No?0:1)}),f.on("close",()=>{Iu(),process.exit(No?0:1)})}let d=f=>{let m=(0,zi.createProtocolConnection)(t,e,f,n);return s&&vq(f),m};return(0,gq.createConnection)(d,mq,i)}function vq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,yS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,yS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} +${c}`)},console.warn=function(...s){t.warn(e(s))}}});var kS=I((Oz,CS)=>{"use strict";CS.exports=ng()});var IS=I((Yz,ES)=>{"use strict";function Cq(){this.__data__=[],this.size=0}ES.exports=Cq});var sg=I((Zz,MS)=>{"use strict";function kq(t,e){return t===e||t!==t&&e!==e}MS.exports=kq});var Ws=I((eH,AS)=>{"use strict";var Tq=sg();function Rq(t,e){for(var n=t.length;n--;)if(Tq(t[n][0],e))return n;return-1}AS.exports=Rq});var qS=I((tH,NS)=>{"use strict";var Dq=Ws(),Fq=Array.prototype,Eq=Fq.splice;function Iq(t){var e=this.__data__,n=Dq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Eq.call(e,n,1),--this.size,!0}NS.exports=Iq});var LS=I((nH,OS)=>{"use strict";var Mq=Ws();function Aq(t){var e=this.__data__,n=Mq(e,t);return n<0?void 0:e[n][1]}OS.exports=Aq});var US=I((rH,BS)=>{"use strict";var Nq=Ws();function qq(t){return Nq(this.__data__,t)>-1}BS.exports=qq});var WS=I((iH,$S)=>{"use strict";var Oq=Ws();function Lq(t,e){var n=this.__data__,i=Oq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}$S.exports=Lq});var js=I((oH,jS)=>{"use strict";var Bq=IS(),Uq=qS(),$q=LS(),Wq=US(),jq=WS();function qo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var zq=js();function Hq(){this.__data__=new zq,this.size=0}zS.exports=Hq});var GS=I((aH,VS)=>{"use strict";function Vq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}VS.exports=Vq});var KS=I((cH,QS)=>{"use strict";function Gq(t){return this.__data__.get(t)}QS.exports=Gq});var XS=I((uH,JS)=>{"use strict";function Qq(t){return this.__data__.has(t)}JS.exports=Qq});var ag=I((lH,YS)=>{"use strict";var Kq=typeof global=="object"&&global&&global.Object===Object&&global;YS.exports=Kq});var nr=I((dH,ZS)=>{"use strict";var Jq=ag(),Xq=typeof self=="object"&&self&&self.Object===Object&&self,Yq=Jq||Xq||Function("return this")();ZS.exports=Yq});var Ou=I((fH,ex)=>{"use strict";var Zq=nr(),e1=Zq.Symbol;ex.exports=e1});var ix=I((hH,rx)=>{"use strict";var tx=Ou(),nx=Object.prototype,t1=nx.hasOwnProperty,n1=nx.toString,zs=tx?tx.toStringTag:void 0;function r1(t){var e=t1.call(t,zs),n=t[zs];try{t[zs]=void 0;var i=!0}catch{}var s=n1.call(t);return i&&(e?t[zs]=n:delete t[zs]),s}rx.exports=r1});var sx=I((gH,ox)=>{"use strict";var i1=Object.prototype,o1=i1.toString;function s1(t){return o1.call(t)}ox.exports=s1});var Hs=I((pH,ux)=>{"use strict";var ax=Ou(),a1=ix(),c1=sx(),u1="[object Null]",l1="[object Undefined]",cx=ax?ax.toStringTag:void 0;function d1(t){return t==null?t===void 0?l1:u1:cx&&cx in Object(t)?a1(t):c1(t)}ux.exports=d1});var Oo=I((mH,lx)=>{"use strict";function f1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}lx.exports=f1});var cg=I((bH,dx)=>{"use strict";var h1=Hs(),g1=Oo(),p1="[object AsyncFunction]",m1="[object Function]",b1="[object GeneratorFunction]",_1="[object Proxy]";function v1(t){if(!g1(t))return!1;var e=h1(t);return e==m1||e==b1||e==p1||e==_1}dx.exports=v1});var hx=I((_H,fx)=>{"use strict";var y1=nr(),w1=y1["__core-js_shared__"];fx.exports=w1});var mx=I((vH,px)=>{"use strict";var ug=hx(),gx=function(){var t=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function S1(t){return!!gx&&gx in t}px.exports=S1});var lg=I((yH,bx)=>{"use strict";var x1=Function.prototype,P1=x1.toString;function C1(t){if(t!=null){try{return P1.call(t)}catch{}try{return t+""}catch{}}return""}bx.exports=C1});var vx=I((wH,_x)=>{"use strict";var k1=cg(),T1=mx(),R1=Oo(),D1=lg(),F1=/[\\^$.*+?()[\]{}|]/g,E1=/^\[object .+?Constructor\]$/,I1=Function.prototype,M1=Object.prototype,A1=I1.toString,N1=M1.hasOwnProperty,q1=RegExp("^"+A1.call(N1).replace(F1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O1(t){if(!R1(t)||T1(t))return!1;var e=k1(t)?q1:E1;return e.test(D1(t))}_x.exports=O1});var wx=I((SH,yx)=>{"use strict";function L1(t,e){return t?.[e]}yx.exports=L1});var mi=I((xH,Sx)=>{"use strict";var B1=vx(),U1=wx();function $1(t,e){var n=U1(t,e);return B1(n)?n:void 0}Sx.exports=$1});var Lu=I((PH,xx)=>{"use strict";var W1=mi(),j1=nr(),z1=W1(j1,"Map");xx.exports=z1});var Vs=I((CH,Px)=>{"use strict";var H1=mi(),V1=H1(Object,"create");Px.exports=V1});var Tx=I((kH,kx)=>{"use strict";var Cx=Vs();function G1(){this.__data__=Cx?Cx(null):{},this.size=0}kx.exports=G1});var Dx=I((TH,Rx)=>{"use strict";function Q1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Rx.exports=Q1});var Ex=I((RH,Fx)=>{"use strict";var K1=Vs(),J1="__lodash_hash_undefined__",X1=Object.prototype,Y1=X1.hasOwnProperty;function Z1(t){var e=this.__data__;if(K1){var n=e[t];return n===J1?void 0:n}return Y1.call(e,t)?e[t]:void 0}Fx.exports=Z1});var Mx=I((DH,Ix)=>{"use strict";var eO=Vs(),tO=Object.prototype,nO=tO.hasOwnProperty;function rO(t){var e=this.__data__;return eO?e[t]!==void 0:nO.call(e,t)}Ix.exports=rO});var Nx=I((FH,Ax)=>{"use strict";var iO=Vs(),oO="__lodash_hash_undefined__";function sO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=iO&&e===void 0?oO:e,this}Ax.exports=sO});var Ox=I((EH,qx)=>{"use strict";var aO=Tx(),cO=Dx(),uO=Ex(),lO=Mx(),dO=Nx();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Lx=Ox(),fO=js(),hO=Lu();function gO(){this.size=0,this.__data__={hash:new Lx,map:new(hO||fO),string:new Lx}}Bx.exports=gO});var Wx=I((MH,$x)=>{"use strict";function pO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}$x.exports=pO});var Gs=I((AH,jx)=>{"use strict";var mO=Wx();function bO(t,e){var n=t.__data__;return mO(e)?n[typeof e=="string"?"string":"hash"]:n.map}jx.exports=bO});var Hx=I((NH,zx)=>{"use strict";var _O=Gs();function vO(t){var e=_O(this,t).delete(t);return this.size-=e?1:0,e}zx.exports=vO});var Gx=I((qH,Vx)=>{"use strict";var yO=Gs();function wO(t){return yO(this,t).get(t)}Vx.exports=wO});var Kx=I((OH,Qx)=>{"use strict";var SO=Gs();function xO(t){return SO(this,t).has(t)}Qx.exports=xO});var Xx=I((LH,Jx)=>{"use strict";var PO=Gs();function CO(t,e){var n=PO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}Jx.exports=CO});var Zx=I((BH,Yx)=>{"use strict";var kO=Ux(),TO=Hx(),RO=Gx(),DO=Kx(),FO=Xx();function Bo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var EO=js(),IO=Lu(),MO=Zx(),AO=200;function NO(t,e){var n=this.__data__;if(n instanceof EO){var i=n.__data__;if(!IO||i.length{"use strict";var qO=js(),OO=HS(),LO=GS(),BO=KS(),UO=XS(),$O=tP();function Uo(t){var e=this.__data__=new qO(t);this.size=e.size}Uo.prototype.clear=OO;Uo.prototype.delete=LO;Uo.prototype.get=BO;Uo.prototype.has=UO;Uo.prototype.set=$O;nP.exports=Uo});var oP=I((WH,iP)=>{"use strict";function WO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var jO=mi(),zO=function(){try{var t=jO(Object,"defineProperty");return t({},"",{}),t}catch{}}();sP.exports=zO});var dg=I((zH,uP)=>{"use strict";var cP=aP();function HO(t,e,n){e=="__proto__"&&cP?cP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}uP.exports=HO});var fg=I((HH,lP)=>{"use strict";var VO=dg(),GO=sg(),QO=Object.prototype,KO=QO.hasOwnProperty;function JO(t,e,n){var i=t[e];(!(KO.call(t,e)&&GO(i,n))||n===void 0&&!(e in t))&&VO(t,e,n)}lP.exports=JO});var Qs=I((VH,dP)=>{"use strict";var XO=fg(),YO=dg();function ZO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function eL(t,e){for(var n=-1,i=Array(t);++n{"use strict";function tL(t){return t!=null&&typeof t=="object"}gP.exports=tL});var mP=I((KH,pP)=>{"use strict";var nL=Hs(),rL=$o(),iL="[object Arguments]";function oL(t){return rL(t)&&nL(t)==iL}pP.exports=oL});var yP=I((JH,vP)=>{"use strict";var bP=mP(),sL=$o(),_P=Object.prototype,aL=_P.hasOwnProperty,cL=_P.propertyIsEnumerable,uL=bP(function(){return arguments}())?bP:function(t){return sL(t)&&aL.call(t,"callee")&&!cL.call(t,"callee")};vP.exports=uL});var Bu=I((XH,wP)=>{"use strict";var lL=Array.isArray;wP.exports=lL});var xP=I((YH,SP)=>{"use strict";function dL(){return!1}SP.exports=dL});var hg=I((Ks,Wo)=>{"use strict";var fL=nr(),hL=xP(),kP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,PP=kP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,gL=PP&&PP.exports===kP,CP=gL?fL.Buffer:void 0,pL=CP?CP.isBuffer:void 0,mL=pL||hL;Wo.exports=mL});var RP=I((ZH,TP)=>{"use strict";var bL=9007199254740991,_L=/^(?:0|[1-9]\d*)$/;function vL(t,e){var n=typeof t;return e=e??bL,!!e&&(n=="number"||n!="symbol"&&_L.test(t))&&t>-1&&t%1==0&&t{"use strict";var yL=9007199254740991;function wL(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=yL}DP.exports=wL});var EP=I((tV,FP)=>{"use strict";var SL=Hs(),xL=gg(),PL=$o(),CL="[object Arguments]",kL="[object Array]",TL="[object Boolean]",RL="[object Date]",DL="[object Error]",FL="[object Function]",EL="[object Map]",IL="[object Number]",ML="[object Object]",AL="[object RegExp]",NL="[object Set]",qL="[object String]",OL="[object WeakMap]",LL="[object ArrayBuffer]",BL="[object DataView]",UL="[object Float32Array]",$L="[object Float64Array]",WL="[object Int8Array]",jL="[object Int16Array]",zL="[object Int32Array]",HL="[object Uint8Array]",VL="[object Uint8ClampedArray]",GL="[object Uint16Array]",QL="[object Uint32Array]",lt={};lt[UL]=lt[$L]=lt[WL]=lt[jL]=lt[zL]=lt[HL]=lt[VL]=lt[GL]=lt[QL]=!0;lt[CL]=lt[kL]=lt[LL]=lt[TL]=lt[BL]=lt[RL]=lt[DL]=lt[FL]=lt[EL]=lt[IL]=lt[ML]=lt[AL]=lt[NL]=lt[qL]=lt[OL]=!1;function KL(t){return PL(t)&&xL(t.length)&&!!lt[SL(t)]}FP.exports=KL});var Uu=I((nV,IP)=>{"use strict";function JL(t){return function(e){return t(e)}}IP.exports=JL});var $u=I((Js,jo)=>{"use strict";var XL=ag(),MP=typeof Js=="object"&&Js&&!Js.nodeType&&Js,Xs=MP&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,YL=Xs&&Xs.exports===MP,pg=YL&&XL.process,ZL=function(){try{var t=Xs&&Xs.require&&Xs.require("util").types;return t||pg&&pg.binding&&pg.binding("util")}catch{}}();jo.exports=ZL});var OP=I((rV,qP)=>{"use strict";var eB=EP(),tB=Uu(),AP=$u(),NP=AP&&AP.isTypedArray,nB=NP?tB(NP):eB;qP.exports=nB});var mg=I((iV,LP)=>{"use strict";var rB=hP(),iB=yP(),oB=Bu(),sB=hg(),aB=RP(),cB=OP(),uB=Object.prototype,lB=uB.hasOwnProperty;function dB(t,e){var n=oB(t),i=!n&&iB(t),s=!n&&!i&&sB(t),c=!n&&!i&&!s&&cB(t),u=n||i||s||c,d=u?rB(t.length,String):[],f=d.length;for(var m in t)(e||lB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||aB(m,f)))&&d.push(m);return d}LP.exports=dB});var Wu=I((oV,BP)=>{"use strict";var fB=Object.prototype;function hB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||fB;return t===n}BP.exports=hB});var bg=I((sV,UP)=>{"use strict";function gB(t,e){return function(n){return t(e(n))}}UP.exports=gB});var WP=I((aV,$P)=>{"use strict";var pB=bg(),mB=pB(Object.keys,Object);$P.exports=mB});var zP=I((cV,jP)=>{"use strict";var bB=Wu(),_B=WP(),vB=Object.prototype,yB=vB.hasOwnProperty;function wB(t){if(!bB(t))return _B(t);var e=[];for(var n in Object(t))yB.call(t,n)&&n!="constructor"&&e.push(n);return e}jP.exports=wB});var _g=I((uV,HP)=>{"use strict";var SB=cg(),xB=gg();function PB(t){return t!=null&&xB(t.length)&&!SB(t)}HP.exports=PB});var ju=I((lV,VP)=>{"use strict";var CB=mg(),kB=zP(),TB=_g();function RB(t){return TB(t)?CB(t):kB(t)}VP.exports=RB});var QP=I((dV,GP)=>{"use strict";var DB=Qs(),FB=ju();function EB(t,e){return t&&DB(e,FB(e),t)}GP.exports=EB});var JP=I((fV,KP)=>{"use strict";function IB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}KP.exports=IB});var YP=I((hV,XP)=>{"use strict";var MB=Oo(),AB=Wu(),NB=JP(),qB=Object.prototype,OB=qB.hasOwnProperty;function LB(t){if(!MB(t))return NB(t);var e=AB(t),n=[];for(var i in t)i=="constructor"&&(e||!OB.call(t,i))||n.push(i);return n}XP.exports=LB});var zu=I((gV,ZP)=>{"use strict";var BB=mg(),UB=YP(),$B=_g();function WB(t){return $B(t)?BB(t,!0):UB(t)}ZP.exports=WB});var tC=I((pV,eC)=>{"use strict";var jB=Qs(),zB=zu();function HB(t,e){return t&&jB(e,zB(e),t)}eC.exports=HB});var sC=I((Ys,zo)=>{"use strict";var VB=nr(),oC=typeof Ys=="object"&&Ys&&!Ys.nodeType&&Ys,nC=oC&&typeof zo=="object"&&zo&&!zo.nodeType&&zo,GB=nC&&nC.exports===oC,rC=GB?VB.Buffer:void 0,iC=rC?rC.allocUnsafe:void 0;function QB(t,e){if(e)return t.slice();var n=t.length,i=iC?iC(n):new t.constructor(n);return t.copy(i),i}zo.exports=QB});var cC=I((mV,aC)=>{"use strict";function KB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function JB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function XB(){return[]}dC.exports=XB});var Hu=I((vV,hC)=>{"use strict";var YB=lC(),ZB=vg(),eU=Object.prototype,tU=eU.propertyIsEnumerable,fC=Object.getOwnPropertySymbols,nU=fC?function(t){return t==null?[]:(t=Object(t),YB(fC(t),function(e){return tU.call(t,e)}))}:ZB;hC.exports=nU});var pC=I((yV,gC)=>{"use strict";var rU=Qs(),iU=Hu();function oU(t,e){return rU(t,iU(t),e)}gC.exports=oU});var yg=I((wV,mC)=>{"use strict";function sU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var aU=bg(),cU=aU(Object.getPrototypeOf,Object);bC.exports=cU});var Sg=I((xV,_C)=>{"use strict";var uU=yg(),lU=wg(),dU=Hu(),fU=vg(),hU=Object.getOwnPropertySymbols,gU=hU?function(t){for(var e=[];t;)uU(e,dU(t)),t=lU(t);return e}:fU;_C.exports=gU});var yC=I((PV,vC)=>{"use strict";var pU=Qs(),mU=Sg();function bU(t,e){return pU(t,mU(t),e)}vC.exports=bU});var xg=I((CV,wC)=>{"use strict";var _U=yg(),vU=Bu();function yU(t,e,n){var i=e(t);return vU(t)?i:_U(i,n(t))}wC.exports=yU});var xC=I((kV,SC)=>{"use strict";var wU=xg(),SU=Hu(),xU=ju();function PU(t){return wU(t,xU,SU)}SC.exports=PU});var CC=I((TV,PC)=>{"use strict";var CU=xg(),kU=Sg(),TU=zu();function RU(t){return CU(t,TU,kU)}PC.exports=RU});var TC=I((RV,kC)=>{"use strict";var DU=mi(),FU=nr(),EU=DU(FU,"DataView");kC.exports=EU});var DC=I((DV,RC)=>{"use strict";var IU=mi(),MU=nr(),AU=IU(MU,"Promise");RC.exports=AU});var EC=I((FV,FC)=>{"use strict";var NU=mi(),qU=nr(),OU=NU(qU,"Set");FC.exports=OU});var MC=I((EV,IC)=>{"use strict";var LU=mi(),BU=nr(),UU=LU(BU,"WeakMap");IC.exports=UU});var Vu=I((IV,UC)=>{"use strict";var Pg=TC(),Cg=Lu(),kg=DC(),Tg=EC(),Rg=MC(),BC=Hs(),Ho=lg(),AC="[object Map]",$U="[object Object]",NC="[object Promise]",qC="[object Set]",OC="[object WeakMap]",LC="[object DataView]",WU=Ho(Pg),jU=Ho(Cg),zU=Ho(kg),HU=Ho(Tg),VU=Ho(Rg),Hi=BC;(Pg&&Hi(new Pg(new ArrayBuffer(1)))!=LC||Cg&&Hi(new Cg)!=AC||kg&&Hi(kg.resolve())!=NC||Tg&&Hi(new Tg)!=qC||Rg&&Hi(new Rg)!=OC)&&(Hi=function(t){var e=BC(t),n=e==$U?t.constructor:void 0,i=n?Ho(n):"";if(i)switch(i){case WU:return LC;case jU:return AC;case zU:return NC;case HU:return qC;case VU:return OC}return e});UC.exports=Hi});var WC=I((MV,$C)=>{"use strict";var GU=Object.prototype,QU=GU.hasOwnProperty;function KU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&QU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}$C.exports=KU});var zC=I((AV,jC)=>{"use strict";var JU=nr(),XU=JU.Uint8Array;jC.exports=XU});var Gu=I((NV,VC)=>{"use strict";var HC=zC();function YU(t){var e=new t.constructor(t.byteLength);return new HC(e).set(new HC(t)),e}VC.exports=YU});var QC=I((qV,GC)=>{"use strict";var ZU=Gu();function e$(t,e){var n=e?ZU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}GC.exports=e$});var JC=I((OV,KC)=>{"use strict";var t$=/\w*$/;function n$(t){var e=new t.constructor(t.source,t$.exec(t));return e.lastIndex=t.lastIndex,e}KC.exports=n$});var tk=I((LV,ek)=>{"use strict";var XC=Ou(),YC=XC?XC.prototype:void 0,ZC=YC?YC.valueOf:void 0;function r$(t){return ZC?Object(ZC.call(t)):{}}ek.exports=r$});var rk=I((BV,nk)=>{"use strict";var i$=Gu();function o$(t,e){var n=e?i$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}nk.exports=o$});var ok=I((UV,ik)=>{"use strict";var s$=Gu(),a$=QC(),c$=JC(),u$=tk(),l$=rk(),d$="[object Boolean]",f$="[object Date]",h$="[object Map]",g$="[object Number]",p$="[object RegExp]",m$="[object Set]",b$="[object String]",_$="[object Symbol]",v$="[object ArrayBuffer]",y$="[object DataView]",w$="[object Float32Array]",S$="[object Float64Array]",x$="[object Int8Array]",P$="[object Int16Array]",C$="[object Int32Array]",k$="[object Uint8Array]",T$="[object Uint8ClampedArray]",R$="[object Uint16Array]",D$="[object Uint32Array]";function F$(t,e,n){var i=t.constructor;switch(e){case v$:return s$(t);case d$:case f$:return new i(+t);case y$:return a$(t,n);case w$:case S$:case x$:case P$:case C$:case k$:case T$:case R$:case D$:return l$(t,n);case h$:return new i;case g$:case b$:return new i(t);case p$:return c$(t);case m$:return new i;case _$:return u$(t)}}ik.exports=F$});var ck=I(($V,ak)=>{"use strict";var E$=Oo(),sk=Object.create,I$=function(){function t(){}return function(e){if(!E$(e))return{};if(sk)return sk(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();ak.exports=I$});var lk=I((WV,uk)=>{"use strict";var M$=ck(),A$=wg(),N$=Wu();function q$(t){return typeof t.constructor=="function"&&!N$(t)?M$(A$(t)):{}}uk.exports=q$});var fk=I((jV,dk)=>{"use strict";var O$=Vu(),L$=$o(),B$="[object Map]";function U$(t){return L$(t)&&O$(t)==B$}dk.exports=U$});var mk=I((zV,pk)=>{"use strict";var $$=fk(),W$=Uu(),hk=$u(),gk=hk&&hk.isMap,j$=gk?W$(gk):$$;pk.exports=j$});var _k=I((HV,bk)=>{"use strict";var z$=Vu(),H$=$o(),V$="[object Set]";function G$(t){return H$(t)&&z$(t)==V$}bk.exports=G$});var Sk=I((VV,wk)=>{"use strict";var Q$=_k(),K$=Uu(),vk=$u(),yk=vk&&vk.isSet,J$=yk?K$(yk):Q$;wk.exports=J$});var Tk=I((GV,kk)=>{"use strict";var X$=rP(),Y$=oP(),Z$=fg(),eW=QP(),tW=tC(),nW=sC(),rW=cC(),iW=pC(),oW=yC(),sW=xC(),aW=CC(),cW=Vu(),uW=WC(),lW=ok(),dW=lk(),fW=Bu(),hW=hg(),gW=mk(),pW=Oo(),mW=Sk(),bW=ju(),_W=zu(),vW=1,yW=2,wW=4,xk="[object Arguments]",SW="[object Array]",xW="[object Boolean]",PW="[object Date]",CW="[object Error]",Pk="[object Function]",kW="[object GeneratorFunction]",TW="[object Map]",RW="[object Number]",Ck="[object Object]",DW="[object RegExp]",FW="[object Set]",EW="[object String]",IW="[object Symbol]",MW="[object WeakMap]",AW="[object ArrayBuffer]",NW="[object DataView]",qW="[object Float32Array]",OW="[object Float64Array]",LW="[object Int8Array]",BW="[object Int16Array]",UW="[object Int32Array]",$W="[object Uint8Array]",WW="[object Uint8ClampedArray]",jW="[object Uint16Array]",zW="[object Uint32Array]",it={};it[xk]=it[SW]=it[AW]=it[NW]=it[xW]=it[PW]=it[qW]=it[OW]=it[LW]=it[BW]=it[UW]=it[TW]=it[RW]=it[Ck]=it[DW]=it[FW]=it[EW]=it[IW]=it[$W]=it[WW]=it[jW]=it[zW]=!0;it[CW]=it[Pk]=it[MW]=!1;function Qu(t,e,n,i,s,c){var u,d=e&vW,f=e&yW,m=e&wW;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!pW(t))return t;var v=fW(t);if(v){if(u=uW(t),!d)return rW(t,u)}else{var x=cW(t),D=x==Pk||x==kW;if(hW(t))return nW(t,d);if(x==Ck||x==xk||D&&!s){if(u=f||D?{}:dW(t),!d)return f?oW(t,tW(u,t)):iW(t,eW(u,t))}else{if(!it[x])return s?t:{};u=lW(t,x,d)}}c||(c=new X$);var N=c.get(t);if(N)return N;c.set(t,u),mW(t)?t.forEach(function(B){u.add(Qu(B,e,n,B,t,c))}):gW(t)&&t.forEach(function(B,K){u.set(K,Qu(B,e,n,K,t,c))});var A=m?f?aW:sW:f?_W:bW,L=v?void 0:A(t);return Y$(L||t,function(B,K){L&&(K=B,B=t[K]),Z$(u,K,Qu(B,e,n,K,t,c))}),u}kk.exports=Qu});var Dk=I((QV,Rk)=>{"use strict";var HW=Tk(),VW=1,GW=4;function QW(t){return HW(t,VW|GW)}Rk.exports=QW});var Ek=I((Fk,Ku)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Ku=="object"&&Ku.exports?Ku.exports=e():t.log=e()})(Fk,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+Se)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(Se,X){return P=Je(Se),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(Se){F=Je(Se),ve()||B.setLevel(Se,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(Se){B.setLevel(B.levels.TRACE,Se)},B.disableAll=function(Se){B.setLevel(B.levels.SILENT,Se)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var Se in s)s[Se].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Go=I((Vo,na)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,v=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",Se=800,X=16,z=1,se=2,re=3,Re=1/0,ge=9007199254740991,me=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,wr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",lr="[object Array]",Pi="[object AsyncFunction]",dr="[object Boolean]",fr="[object Date]",Ki="[object DOMException]",Sr="[object Error]",xr="[object Function]",Pr="[object GeneratorFunction]",mt="[object Map]",hr="[object Number]",Ji="[object Null]",Bt="[object Object]",Ci="[object Promise]",Hr="[object Proxy]",gr="[object RegExp]",xt="[object Set]",sn="[object String]",Cr="[object Symbol]",Xi="[object Undefined]",jt="[object WeakMap]",ki="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",tt=/\b__p \+= '';/g,De=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(at.source),Yi=/<%-([\s\S]+?)%>/g,xa=/<%([\s\S]+?)%>/g,ls=/<%=([\s\S]+?)%>/g,Pa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ca=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ft=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Vr=/^0o[0-7]+$/i,Zi=/^(?:0|[1-9]\d*)$/,ka=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ta=/($^)/,jT=/['\n\r\u2028\u2029\\]/g,Ra="\\ud800-\\udfff",zT="\\u0300-\\u036f",HT="\\ufe20-\\ufe2f",VT="\\u20d0-\\u20ff",Dp=zT+HT+VT,Fp="\\u2700-\\u27bf",Ep="a-z\\xdf-\\xf6\\xf8-\\xff",GT="\\xac\\xb1\\xd7\\xf7",QT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",KT="\\u2000-\\u206f",JT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ip="A-Z\\xc0-\\xd6\\xd8-\\xde",Mp="\\ufe0e\\ufe0f",Ap=GT+QT+KT+JT,Vl="['\u2019]",XT="["+Ra+"]",Np="["+Ap+"]",Da="["+Dp+"]",qp="\\d+",YT="["+Fp+"]",Op="["+Ep+"]",Lp="[^"+Ra+Ap+qp+Fp+Ep+Ip+"]",Gl="\\ud83c[\\udffb-\\udfff]",ZT="(?:"+Da+"|"+Gl+")",Bp="[^"+Ra+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",eo="["+Ip+"]",Up="\\u200d",$p="(?:"+Op+"|"+Lp+")",eR="(?:"+eo+"|"+Lp+")",Wp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",jp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",zp=ZT+"?",Hp="["+Mp+"]?",tR="(?:"+Up+"(?:"+[Bp,Ql,Kl].join("|")+")"+Hp+zp+")*",nR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Vp=Hp+zp+tR,iR="(?:"+[YT,Ql,Kl].join("|")+")"+Vp,oR="(?:"+[Bp+Da+"?",Da,Ql,Kl,XT].join("|")+")",sR=RegExp(Vl,"g"),aR=RegExp(Da,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+oR+Vp,"g"),cR=RegExp([eo+"?"+Op+"+"+Wp+"(?="+[Np,eo,"$"].join("|")+")",eR+"+"+jp+"(?="+[Np,eo+$p,"$"].join("|")+")",eo+"?"+$p+"+"+Wp,eo+"+"+jp,rR,nR,qp,iR].join("|"),"g"),uR=RegExp("["+Up+Ra+Dp+Mp+"]"),lR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,dR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],fR=-1,ct={};ct[kr]=ct[vn]=ct[C]=ct[H]=ct[Z]=ct[ie]=ct[Ue]=ct[Le]=ct[Ge]=!0,ct[Vn]=ct[lr]=ct[Gn]=ct[dr]=ct[_n]=ct[fr]=ct[Sr]=ct[xr]=ct[mt]=ct[hr]=ct[Bt]=ct[gr]=ct[xt]=ct[sn]=ct[jt]=!1;var nt={};nt[Vn]=nt[lr]=nt[Gn]=nt[_n]=nt[dr]=nt[fr]=nt[kr]=nt[vn]=nt[C]=nt[H]=nt[Z]=nt[mt]=nt[hr]=nt[Bt]=nt[gr]=nt[xt]=nt[sn]=nt[Cr]=nt[ie]=nt[Ue]=nt[Le]=nt[Ge]=!0,nt[Sr]=nt[xr]=nt[jt]=!1;var hR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},gR={"&":"&","<":"<",">":">",'"':""","'":"'"},pR={"&":"&","<":"<",">":">",""":'"',"'":"'"},mR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},bR=parseFloat,_R=parseInt,Gp=typeof global=="object"&&global&&global.Object===Object&&global,vR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Gp||vR||Function("return this")(),Xl=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,Ti=Xl&&typeof na=="object"&&na&&!na.nodeType&&na,Qp=Ti&&Ti.exports===Xl,Yl=Qp&&Gp.process,En=function(){try{var E=Ti&&Ti.require&&Ti.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Kp=En&&En.isArrayBuffer,Jp=En&&En.isDate,Xp=En&&En.isMap,Yp=En&&En.isRegExp,Zp=En&&En.isSet,em=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function yR(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function cm(E,W){for(var $=E.length;$--&&to(W,E[$],0)>-1;);return $}function DR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var FR=rd(hR),ER=rd(gR);function IR(E){return"\\"+mR[E]}function MR(E,W){return E==null?t:E[W]}function no(E){return uR.test(E)}function AR(E){return lR.test(E)}function NR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function um(E,W){return function($){return E(W($))}}function Kr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function SD(r,o){var a=this.__data__,l=Ga(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}Tr.prototype.clear=_D,Tr.prototype.delete=vD,Tr.prototype.get=yD,Tr.prototype.has=wD,Tr.prototype.set=SD;function Rr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&v,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=xe(r);if(Q){if(S=k0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==xr||J==Pr;if(ni(r))return Hm(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:lb(r),!T)return M?p0(r,LD(S,r)):g0(r,wm(S,r))}else{if(!nt[J])return h?r:{};S=T0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),Bb(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):Ob(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,ke=Q?t:de(r);return In(ke||r,function(fe,Me){ke&&(Me=fe,fe=r[Me]),bs(S,Me,Nn(fe,o,a,Me,r,_))}),S}function BD(r){var o=Ot(r);return function(a){return Sm(a,r,o)}}function Sm(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function xm(r,o,a){if(typeof r!="function")throw new Mn(s);return Ps(function(){r.apply(t,a)},o)}function _s(r,o,a,l){var h=-1,_=Fa,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=ht(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ds,S=!1,o=new Fi(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:Ce(l),l<0&&(l+=h),l=a>l?0:$b(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Qr(h,T):l||(h[h.length]=T)}return h}var gd=Xm(),km=Xm(!0);function pr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&km(r,o,Ot)}function Ka(r,o){return Gr(o,function(a){return Mr(r[a])})}function Ii(r,o){o=ei(o,r);for(var a=0,l=o.length;r!=null&&ao}function WD(r,o){return r!=null&&Ke.call(r,o)}function jD(r,o){return r!=null&&o in Ye(r)}function zD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Fi(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&Ua.call(T,M,1),Ua.call(r,M,1);return r}function Om(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Ir(h)?Ua.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+ja(bm()*(o-r+1))}function r0(r,o,a,l){for(var h=-1,_=At(Wa((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=ja(o/2),o&&(r+=r);while(o);return a}function Fe(r,o){return Ud(hb(r,o,dn),r+"")}function i0(r){return ym(ho(r))}function o0(r,o){var a=ho(r);return sc(a,Ei(o,0,a.length))}function ws(r,o,a,l){if(!bt(r))return r;o=ei(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=br(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Ir(o[h+1])?[]:{})}bs(T,M,V),T=T[M]}return r}var Lm=za?function(r,o){return za.set(r,o),r}:dn,s0=$a?function(r,o){return $a(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function a0(r){return sc(ho(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:v0(r);if(V)return Ia(V);S=!1,h=ds,M=new Fi}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=ei(o,r),r=gb(r,o),r==null||delete r[br(On(o))]}function $m(r,o,a,l){return ws(r,o,a(Ii(r,o)),l)}function Ya(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var zm=JR||function(r){return qt.clearTimeout(r)};function Hm(r,o){if(o)return r.slice();var a=r.length,l=fm?fm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new La(o).set(new La(r)),o}function l0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function d0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function f0(r){return ms?Ye(ms.call(r)):{}}function Vm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Gm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Qm(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function eb(r){return Er(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&ic(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Fi:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(y,`{ /* [wrapped with `+o+`] */ -`)}function D0(r){return xe(r)||Ai(r)||!!(pm&&r&&r[pm])}function Ir(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Yi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=Se)return arguments[0]}else o=0;return r.apply(t,arguments)}}function sc(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,Cb(r,a)});function kb(r){var o=b(r);return o.__chain__=!0,o}function UF(r,o){return o(r),r}function ac(r,o){return o(r)}var $F=Er(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Ir(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:ac,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function WF(){return kb(this)}function jF(){return new An(this.value(),this.__chain__)}function zF(){this.__values__===t&&(this.__values__=Ub(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function HF(){return this}function VF(r){for(var o,a=this;a instanceof Va;){var l=vb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function GF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:ac,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function QF(){return Wm(this.__wrapped__,this.__actions__)}var KF=Za(function(r,o,a){Ke.call(r,a)?++r[a]:Dr(r,a,1)});function JF(r,o,a){var l=xe(r)?tm:UD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function XF(r,o){var a=xe(r)?Gr:Cm;return a(r,le(o,3))}var YF=Zm(yb),ZF=Zm(wb);function eE(r,o){return Ut(cc(r,o),1)}function tE(r,o){return Ut(cc(r,o),Te)}function nE(r,o,a){return a=a===t?1:Ce(a),Ut(cc(r,o),a)}function Tb(r,o){var a=xe(r)?In:Yr;return a(r,le(o,3))}function Rb(r,o){var a=xe(r)?wR:Pm;return a(r,le(o,3))}var rE=Za(function(r,o,a){Ke.call(r,a)?r[a].push(o):Dr(r,a,[o])});function iE(r,o,a,l){r=un(r)?r:fo(r),a=a&&!l?Ce(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),hc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&eo(r,o,a)>-1}var oE=De(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Yr(r,function(S){_[++l]=h?wn(o,S,a):vs(S,o,a)}),_}),sE=Za(function(r,o,a){Dr(r,a,o)});function cc(r,o){var a=xe(r)?ht:Em;return a(r,le(o,3))}function aE(r,o,a,l){return r==null?[]:(xe(o)||(o=o==null?[]:[o]),a=l?t:a,xe(a)||(a=a==null?[]:[a]),Nm(r,o,a))}var cE=Za(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function uE(r,o,a){var l=xe(r)?ed:om,h=arguments.length<3;return l(r,le(o,4),a,h,Yr)}function lE(r,o,a){var l=xe(r)?SR:om,h=arguments.length<3;return l(r,le(o,4),a,h,Pm)}function dE(r,o){var a=xe(r)?Gr:Cm;return a(r,dc(le(o,3)))}function fE(r){var o=xe(r)?ym:i0;return o(r)}function hE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=Ce(o);var l=xe(r)?ND:o0;return l(r,o)}function gE(r){var o=xe(r)?qD:a0;return o(r)}function pE(r){if(r==null)return 0;if(un(r))return hc(r)?no(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function mE(r,o,a){var l=xe(r)?td:c0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var bE=De(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),Nm(r,Ut(o,1),[])}),uc=XR||function(){return qt.Date.now()};function _E(r,o){if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){if(--r<1)return o.apply(this,arguments)}}function Db(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Fr(r,te,t,t,t,t,o)}function Fb(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=De(function(r,o,a){var l=A;if(a.length){var h=Kr(a,uo(jd));l|=P}return Fr(r,l,o,a,h)}),Eb=De(function(r,o,a){var l=A|L;if(a.length){var h=Kr(a,uo(Eb));l|=P}return Fr(o,l,r,a,h)});function Ib(r,o,a){o=a?t:o;var l=Fr(r,K,t,t,t,t,t,o);return l.placeholder=Ib.placeholder,l}function Mb(r,o,a){o=a?t:o;var l=Fr(r,F,t,t,t,t,t,o);return l.placeholder=Mb.placeholder,l}function Ab(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Nr=h;return l=h=t,V=Ct,S=r.apply(Nr,Yn),S}function de(Ct){return V=Ct,T=Ps(Me,o),Q?ae(Ct):S}function ke(Ct){var Yn=Ct-M,Nr=Ct-V,Zb=o-Yn;return J?zt(Zb,_-Nr):Zb}function fe(Ct){var Yn=Ct-M,Nr=Ct-V;return M===t||Yn>=o||Yn<0||J&&Nr>=_}function Me(){var Ct=uc();if(fe(Ct))return qe(Ct);T=Ps(Me,ke(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&zm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(uc())}function kn(){var Ct=uc(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return zm(T),T=Ps(Me,o),ae(M)}return T===t&&(T=Ps(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var vE=De(function(r,o){return xm(r,1,o)}),yE=De(function(r,o,a){return xm(r,Ln(o)||0,a)});function wE(r){return Fr(r,Be)}function lc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(lc.Cache||Rr),a}lc.Cache=Rr;function dc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function SE(r){return Fb(2,r)}var xE=u0(function(r,o){o=o.length==1&&xe(o[0])?ht(o[0],Sn(le())):ht(Ut(o,1),Sn(le()));var a=o.length;return De(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=De(function(r,o){var a=Kr(o,uo(zd));return Fr(r,P,t,o,a)}),Nb=De(function(r,o){var a=Kr(o,uo(Nb));return Fr(r,U,t,o,a)}),PE=Er(function(r,o){return Fr(r,ve,t,t,t,o)});function CE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:Ce(o),De(r,o)}function kE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(Ce(o),0),De(function(a){var l=a[o],h=ti(a,0,o);return l&&Qr(h,l),wn(r,this,h)})}function TE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Ab(r,o,{leading:l,maxWait:o,trailing:h})}function RE(r){return Db(r,1)}function DE(r,o){return zd(Rd(o),r)}function FE(){if(!arguments.length)return[];var r=arguments[0];return xe(r)?r:[r]}function EE(r){return Nn(r,x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function ME(r){return Nn(r,m|x)}function AE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function NE(r,o){return o==null||Sm(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var qE=rc(md),OE=rc(function(r,o){return r>=o}),Ai=Rm(function(){return arguments}())?Rm:function(r){return vt(r)&&Ke.call(r,"callee")&&!gm.call(r,"callee")},xe=$.isArray,LE=Kp?Sn(Kp):VD;function un(r){return r!=null&&fc(r.length)&&!Mr(r)}function Pt(r){return vt(r)&&un(r)}function BE(r){return r===!0||r===!1||vt(r)&&Zt(r)==dr}var ni=ZR||tf,UE=Jp?Sn(Jp):GD;function $E(r){return vt(r)&&r.nodeType===1&&!Cs(r)}function WE(r){if(r==null)return!0;if(un(r)&&(xe(r)||typeof r=="string"||typeof r.splice=="function"||ni(r)||lo(r)||Ai(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(xs(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function jE(r,o){return ys(r,o)}function zE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?ys(r,o,t,a):!!l}function Hd(r){if(!vt(r))return!1;var o=Zt(r);return o==Sr||o==Qi||typeof r.message=="string"&&typeof r.name=="string"&&!Cs(r)}function HE(r){return typeof r=="number"&&mm(r)}function Mr(r){if(!bt(r))return!1;var o=Zt(r);return o==xr||o==Pr||o==xi||o==Hr}function qb(r){return typeof r=="number"&&r==Ce(r)}function fc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function vt(r){return r!=null&&typeof r=="object"}var Ob=Xp?Sn(Xp):KD;function VE(r,o){return r===o||_d(r,o,Nd(o))}function GE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function QE(r){return Lb(r)&&r!=+r}function KE(r){if(I0(r))throw new ye(i);return Dm(r)}function JE(r){return r===null}function XE(r){return r==null}function Lb(r){return typeof r=="number"||vt(r)&&Zt(r)==hr}function Cs(r){if(!vt(r)||Zt(r)!=Bt)return!1;var o=Ba(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Na.call(a)==GR}var Vd=Yp?Sn(Yp):JD;function YE(r){return qb(r)&&r>=-ge&&r<=ge}var Bb=Zp?Sn(Zp):XD;function hc(r){return typeof r=="string"||!xe(r)&&vt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||vt(r)&&Zt(r)==Cr}var lo=em?Sn(em):YD;function ZE(r){return r===t}function eI(r){return vt(r)&&Ht(r)==jt}function tI(r){return vt(r)&&Zt(r)==Ci}var nI=rc(yd),rI=rc(function(r,o){return r<=o});function Ub(r){if(!r)return[];if(un(r))return hc(r)?Kn(r):cn(r);if(fs&&r[fs])return NR(r[fs]());var o=Ht(r),a=o==mt?ad:o==xt?Ia:fo;return a(r)}function Ar(r){if(!r)return r===0?r:0;if(r=Ln(r),r===Te||r===-Te){var o=r<0?-1:1;return o*me}return r===r?r:0}function Ce(r){var o=Ar(r),a=o%1;return o===o?a?o-a:o:0}function $b(r){return r?Fi(Ce(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=sm(r);var a=Qn.test(r);return a||Vr.test(r)?_R(r.slice(2),a?2:8):yn.test(r)?St:+r}function Wb(r){return mr(r,ln(r))}function iI(r){return r?Fi(Ce(r),-ge,ge):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var oI=ao(function(r,o){if(xs(o)||un(o)){mr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&bs(r,a,o[a])}),jb=ao(function(r,o){mr(o,ln(o),r)}),gc=ao(function(r,o,a,l){mr(o,ln(o),r,l)}),sI=ao(function(r,o,a,l){mr(o,Ot(o),r,l)}),aI=Er(hd);function cI(r,o){var a=so(r);return o==null?a:wm(a,o)}var uI=De(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),mr(r,Md(r),a),l&&(a=Nn(a,m|v|x,y0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function TI(r,o){return Hb(r,dc(le(o)))}var RI=Er(function(r,o){return r==null?{}:t0(r,o)});function Hb(r,o){if(r==null)return{};var a=ht(Md(r),function(l){return[l]});return o=le(o),qm(r,a,function(l,h){return o(l,h[0])})}function DI(r,o,a){o=ei(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=bm();return zt(r+h*(o-r+bR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var UI=co(function(r,o,a){return o=o.toLowerCase(),r+(a?Qb(o):o)});function Qb(r){return Kd(Ve(r).toLowerCase())}function Kb(r){return r=Ve(r),r&&r.replace(ka,FR).replace(aR,"")}function $I(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Fi(Ce(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function WI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(at,ER):r}function jI(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var zI=co(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),HI=co(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),VI=Ym("toLowerCase");function GI(r,o,a){r=Ve(r),o=Ce(o);var l=o?no(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return nc(ja(h),a)+r+nc(Wa(h),a)}function QI(r,o,a){r=Ve(r),o=Ce(o);var l=o?no(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&to(r))?ti(Kn(r),0,a):r.split(o,a)):[]}var tM=co(function(r,o,a){return r+(a?" ":"")+Kd(o)});function nM(r,o,a){return r=Ve(r),a=a==null?0:Fi(Ce(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function rM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=gc({},o,l,ob);var h=gc({},o.imports,l.imports,ob),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ta,J="__p += '",ne=cd((o.escape||Ta).source+"|"+Q.source+"|"+(Q===ls?Xe:Ta).source+"|"+(o.evaluate||Ta).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++fR+"]")+` +`)}function D0(r){return xe(r)||Ni(r)||!!(pm&&r&&r[pm])}function Ir(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Zi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=Se)return arguments[0]}else o=0;return r.apply(t,arguments)}}function sc(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,Cb(r,a)});function kb(r){var o=b(r);return o.__chain__=!0,o}function UF(r,o){return o(r),r}function ac(r,o){return o(r)}var $F=Er(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Ir(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:ac,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function WF(){return kb(this)}function jF(){return new An(this.value(),this.__chain__)}function zF(){this.__values__===t&&(this.__values__=Ub(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function HF(){return this}function VF(r){for(var o,a=this;a instanceof Va;){var l=vb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function GF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:ac,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function QF(){return Wm(this.__wrapped__,this.__actions__)}var KF=Za(function(r,o,a){Ke.call(r,a)?++r[a]:Dr(r,a,1)});function JF(r,o,a){var l=xe(r)?tm:UD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function XF(r,o){var a=xe(r)?Gr:Cm;return a(r,le(o,3))}var YF=Zm(yb),ZF=Zm(wb);function eE(r,o){return Ut(cc(r,o),1)}function tE(r,o){return Ut(cc(r,o),Re)}function nE(r,o,a){return a=a===t?1:Ce(a),Ut(cc(r,o),a)}function Tb(r,o){var a=xe(r)?In:Yr;return a(r,le(o,3))}function Rb(r,o){var a=xe(r)?wR:Pm;return a(r,le(o,3))}var rE=Za(function(r,o,a){Ke.call(r,a)?r[a].push(o):Dr(r,a,[o])});function iE(r,o,a,l){r=un(r)?r:ho(r),a=a&&!l?Ce(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),hc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&to(r,o,a)>-1}var oE=Fe(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Yr(r,function(S){_[++l]=h?wn(o,S,a):vs(S,o,a)}),_}),sE=Za(function(r,o,a){Dr(r,a,o)});function cc(r,o){var a=xe(r)?ht:Em;return a(r,le(o,3))}function aE(r,o,a,l){return r==null?[]:(xe(o)||(o=o==null?[]:[o]),a=l?t:a,xe(a)||(a=a==null?[]:[a]),Nm(r,o,a))}var cE=Za(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function uE(r,o,a){var l=xe(r)?ed:om,h=arguments.length<3;return l(r,le(o,4),a,h,Yr)}function lE(r,o,a){var l=xe(r)?SR:om,h=arguments.length<3;return l(r,le(o,4),a,h,Pm)}function dE(r,o){var a=xe(r)?Gr:Cm;return a(r,dc(le(o,3)))}function fE(r){var o=xe(r)?ym:i0;return o(r)}function hE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=Ce(o);var l=xe(r)?ND:o0;return l(r,o)}function gE(r){var o=xe(r)?qD:a0;return o(r)}function pE(r){if(r==null)return 0;if(un(r))return hc(r)?ro(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function mE(r,o,a){var l=xe(r)?td:c0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var bE=Fe(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),Nm(r,Ut(o,1),[])}),uc=XR||function(){return qt.Date.now()};function _E(r,o){if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){if(--r<1)return o.apply(this,arguments)}}function Db(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Fr(r,te,t,t,t,t,o)}function Fb(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=Fe(function(r,o,a){var l=A;if(a.length){var h=Kr(a,lo(jd));l|=P}return Fr(r,l,o,a,h)}),Eb=Fe(function(r,o,a){var l=A|L;if(a.length){var h=Kr(a,lo(Eb));l|=P}return Fr(o,l,r,a,h)});function Ib(r,o,a){o=a?t:o;var l=Fr(r,K,t,t,t,t,t,o);return l.placeholder=Ib.placeholder,l}function Mb(r,o,a){o=a?t:o;var l=Fr(r,F,t,t,t,t,t,o);return l.placeholder=Mb.placeholder,l}function Ab(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Nr=h;return l=h=t,V=Ct,S=r.apply(Nr,Yn),S}function de(Ct){return V=Ct,T=Ps(Me,o),Q?ae(Ct):S}function ke(Ct){var Yn=Ct-M,Nr=Ct-V,Zb=o-Yn;return J?zt(Zb,_-Nr):Zb}function fe(Ct){var Yn=Ct-M,Nr=Ct-V;return M===t||Yn>=o||Yn<0||J&&Nr>=_}function Me(){var Ct=uc();if(fe(Ct))return qe(Ct);T=Ps(Me,ke(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&zm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(uc())}function kn(){var Ct=uc(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return zm(T),T=Ps(Me,o),ae(M)}return T===t&&(T=Ps(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var vE=Fe(function(r,o){return xm(r,1,o)}),yE=Fe(function(r,o,a){return xm(r,Ln(o)||0,a)});function wE(r){return Fr(r,Be)}function lc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(lc.Cache||Rr),a}lc.Cache=Rr;function dc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function SE(r){return Fb(2,r)}var xE=u0(function(r,o){o=o.length==1&&xe(o[0])?ht(o[0],Sn(le())):ht(Ut(o,1),Sn(le()));var a=o.length;return Fe(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=Fe(function(r,o){var a=Kr(o,lo(zd));return Fr(r,P,t,o,a)}),Nb=Fe(function(r,o){var a=Kr(o,lo(Nb));return Fr(r,U,t,o,a)}),PE=Er(function(r,o){return Fr(r,ve,t,t,t,o)});function CE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:Ce(o),Fe(r,o)}function kE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(Ce(o),0),Fe(function(a){var l=a[o],h=ti(a,0,o);return l&&Qr(h,l),wn(r,this,h)})}function TE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Ab(r,o,{leading:l,maxWait:o,trailing:h})}function RE(r){return Db(r,1)}function DE(r,o){return zd(Rd(o),r)}function FE(){if(!arguments.length)return[];var r=arguments[0];return xe(r)?r:[r]}function EE(r){return Nn(r,x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function ME(r){return Nn(r,m|x)}function AE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function NE(r,o){return o==null||Sm(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var qE=rc(md),OE=rc(function(r,o){return r>=o}),Ni=Rm(function(){return arguments}())?Rm:function(r){return vt(r)&&Ke.call(r,"callee")&&!gm.call(r,"callee")},xe=$.isArray,LE=Kp?Sn(Kp):VD;function un(r){return r!=null&&fc(r.length)&&!Mr(r)}function Pt(r){return vt(r)&&un(r)}function BE(r){return r===!0||r===!1||vt(r)&&Zt(r)==dr}var ni=ZR||tf,UE=Jp?Sn(Jp):GD;function $E(r){return vt(r)&&r.nodeType===1&&!Cs(r)}function WE(r){if(r==null)return!0;if(un(r)&&(xe(r)||typeof r=="string"||typeof r.splice=="function"||ni(r)||fo(r)||Ni(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(xs(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function jE(r,o){return ys(r,o)}function zE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?ys(r,o,t,a):!!l}function Hd(r){if(!vt(r))return!1;var o=Zt(r);return o==Sr||o==Ki||typeof r.message=="string"&&typeof r.name=="string"&&!Cs(r)}function HE(r){return typeof r=="number"&&mm(r)}function Mr(r){if(!bt(r))return!1;var o=Zt(r);return o==xr||o==Pr||o==Pi||o==Hr}function qb(r){return typeof r=="number"&&r==Ce(r)}function fc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function vt(r){return r!=null&&typeof r=="object"}var Ob=Xp?Sn(Xp):KD;function VE(r,o){return r===o||_d(r,o,Nd(o))}function GE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function QE(r){return Lb(r)&&r!=+r}function KE(r){if(I0(r))throw new ye(i);return Dm(r)}function JE(r){return r===null}function XE(r){return r==null}function Lb(r){return typeof r=="number"||vt(r)&&Zt(r)==hr}function Cs(r){if(!vt(r)||Zt(r)!=Bt)return!1;var o=Ba(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Na.call(a)==GR}var Vd=Yp?Sn(Yp):JD;function YE(r){return qb(r)&&r>=-ge&&r<=ge}var Bb=Zp?Sn(Zp):XD;function hc(r){return typeof r=="string"||!xe(r)&&vt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||vt(r)&&Zt(r)==Cr}var fo=em?Sn(em):YD;function ZE(r){return r===t}function eI(r){return vt(r)&&Ht(r)==jt}function tI(r){return vt(r)&&Zt(r)==ki}var nI=rc(yd),rI=rc(function(r,o){return r<=o});function Ub(r){if(!r)return[];if(un(r))return hc(r)?Kn(r):cn(r);if(fs&&r[fs])return NR(r[fs]());var o=Ht(r),a=o==mt?ad:o==xt?Ia:ho;return a(r)}function Ar(r){if(!r)return r===0?r:0;if(r=Ln(r),r===Re||r===-Re){var o=r<0?-1:1;return o*me}return r===r?r:0}function Ce(r){var o=Ar(r),a=o%1;return o===o?a?o-a:o:0}function $b(r){return r?Ei(Ce(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=sm(r);var a=Qn.test(r);return a||Vr.test(r)?_R(r.slice(2),a?2:8):yn.test(r)?St:+r}function Wb(r){return mr(r,ln(r))}function iI(r){return r?Ei(Ce(r),-ge,ge):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var oI=co(function(r,o){if(xs(o)||un(o)){mr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&bs(r,a,o[a])}),jb=co(function(r,o){mr(o,ln(o),r)}),gc=co(function(r,o,a,l){mr(o,ln(o),r,l)}),sI=co(function(r,o,a,l){mr(o,Ot(o),r,l)}),aI=Er(hd);function cI(r,o){var a=ao(r);return o==null?a:wm(a,o)}var uI=Fe(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),mr(r,Md(r),a),l&&(a=Nn(a,m|v|x,y0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function TI(r,o){return Hb(r,dc(le(o)))}var RI=Er(function(r,o){return r==null?{}:t0(r,o)});function Hb(r,o){if(r==null)return{};var a=ht(Md(r),function(l){return[l]});return o=le(o),qm(r,a,function(l,h){return o(l,h[0])})}function DI(r,o,a){o=ei(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=bm();return zt(r+h*(o-r+bR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var UI=uo(function(r,o,a){return o=o.toLowerCase(),r+(a?Qb(o):o)});function Qb(r){return Kd(Ve(r).toLowerCase())}function Kb(r){return r=Ve(r),r&&r.replace(ka,FR).replace(aR,"")}function $I(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Ei(Ce(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function WI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(at,ER):r}function jI(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var zI=uo(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),HI=uo(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),VI=Ym("toLowerCase");function GI(r,o,a){r=Ve(r),o=Ce(o);var l=o?ro(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return nc(ja(h),a)+r+nc(Wa(h),a)}function QI(r,o,a){r=Ve(r),o=Ce(o);var l=o?ro(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&no(r))?ti(Kn(r),0,a):r.split(o,a)):[]}var tM=uo(function(r,o,a){return r+(a?" ":"")+Kd(o)});function nM(r,o,a){return r=Ve(r),a=a==null?0:Ei(Ce(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function rM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=gc({},o,l,ob);var h=gc({},o.imports,l.imports,ob),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ta,J="__p += '",ne=cd((o.escape||Ta).source+"|"+Q.source+"|"+(Q===ls?Xe:Ta).source+"|"+(o.evaluate||Ta).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++fR+"]")+` `;r.replace(ne,function(fe,Me,qe,Cn,tn,kn){return qe||(qe=Cn),J+=r.slice(V,kn).replace(jT,IR),Me&&(T=!0,J+=`' + __e(`+Me+`) + '`),tn&&(M=!0,J+=`'; @@ -52,31 +52,31 @@ __p += '`),qe&&(J+=`' + `;var de=Ke.call(o,"variable")&&o.variable;if(!de)J=`with (obj) { `+J+` } -`;else if(be.test(de))throw new ye(c);J=(M?J.replace(tt,""):J).replace(Re,"$1").replace(Qe,"$1;"),J="function("+(de||"obj")+`) { +`;else if(be.test(de))throw new ye(c);J=(M?J.replace(tt,""):J).replace(De,"$1").replace(Qe,"$1;"),J="function("+(de||"obj")+`) { `+(de?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(T?", __e = _.escape":"")+(M?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+J+`return __p -}`;var ke=Xb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(ke.source=J,Hd(ke))throw ke;return ke}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return sm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=am(l,h),S=cm(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,lm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=am(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Ce(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(to(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-no(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=co(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Ym("toUpperCase");function Jb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Xb=De(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],De(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Ce(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||xe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,ke=M&&!ae;if(!_&&Q){S=ke?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&ke?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(xe(_)?_:[],h)}return this[a](function(S){return o.apply(xe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(oo,l)||(oo[l]=[]),oo[l].push({name:o,func:a})}}),oo[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):ki?((ki.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Vk=I((m3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((bG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Vg="\\",bj=/^\s+$/,_j=/(?:[^\\]|^)\\$/,vj=/^\\!/,yj=/^\\#/,wj=/\r?\n/g,Sj=/^\.*\/|^\.+$/,Gg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,xj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),Pj=/([0-z])-([0-z])/g,lT=()=>!1,Cj=t=>t.replace(Pj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),kj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Tj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Vg],[/\\\\/g,()=>Vg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Vg?`\\[${n}${kj(i)}${s}`:s==="]"&&i.length%2===0?`[${Cj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Rj=(t,e)=>{let n=aT[t];return n||(n=Tj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Jg=t=>typeof t=="string",Dj=t=>t&&Jg(t)&&!bj.test(t)&&!_j.test(t)&&t.indexOf("#")!==0,Fj=t=>t.split(wj),Qg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Ej=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vj,"!").replace(yj,"#");let s=Rj(t,e);return new Qg(n,t,i,s)},Ij=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Jg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>Sj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Kg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){xj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Dj(e)){let n=Ej(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Jg(e)?Fj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ij),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Gg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Gg)+Gg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Kg(t),Mj=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Mj;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var i2={};nA(i2,{API_ENDPOINT:()=>e2});module.exports=rA(i2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=r_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=t_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&n_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},Ni;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(Ni||(Ni={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=r_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ee=gt(kS());var TS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&TS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function RS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var DS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,DS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var FS=require("crypto"),og={randomUUID:FS.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return RS(i)}var $s=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},No=class extends Error{constructor(e="Skipping inline completion."){super(e)}},wt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Fe(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Hk=gt(Dk());var Ju=gt(require("fs")),ea=gt(Ek()),Mk=gt(require("os")),ta=gt(require("path")),KW=process.env.TEST_TMPDIR?ta.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ta.default.join(Mk.default.homedir(),".local","state"),Ik=ta.default.join(KW,"augment","augment-server.log"),Zs;function JW(){if(Zs)return Zs;let t=ta.default.dirname(Ik);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"info").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?ea.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "info"`,ea.default.setLevel("info")),ea.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Ik,`${c} [${i.toUpperCase()}] ${s} +}`;var ke=Xb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(ke.source=J,Hd(ke))throw ke;return ke}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return sm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=am(l,h),S=cm(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,lm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=am(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Ce(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(no(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-ro(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=uo(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Ym("toUpperCase");function Jb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Xb=Fe(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Fe(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Ce(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||xe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,ke=M&&!ae;if(!_&&Q){S=ke?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&ke?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(xe(_)?_:[],h)}return this[a](function(S){return o.apply(xe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(so,l)||(so[l]=[]),so[l].push({name:o,func:a})}}),so[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):Ti?((Ti.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Vk=I((m3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((bG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Vg="\\",bj=/^\s+$/,_j=/(?:[^\\]|^)\\$/,vj=/^\\!/,yj=/^\\#/,wj=/\r?\n/g,Sj=/^\.*\/|^\.+$/,Gg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,xj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),Pj=/([0-z])-([0-z])/g,lT=()=>!1,Cj=t=>t.replace(Pj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),kj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Tj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Vg],[/\\\\/g,()=>Vg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Vg?`\\[${n}${kj(i)}${s}`:s==="]"&&i.length%2===0?`[${Cj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Rj=(t,e)=>{let n=aT[t];return n||(n=Tj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Jg=t=>typeof t=="string",Dj=t=>t&&Jg(t)&&!bj.test(t)&&!_j.test(t)&&t.indexOf("#")!==0,Fj=t=>t.split(wj),Qg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Ej=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vj,"!").replace(yj,"#");let s=Rj(t,e);return new Qg(n,t,i,s)},Ij=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Jg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>Sj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Kg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){xj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Dj(e)){let n=Ej(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Jg(e)?Fj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ij),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Gg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Gg)+Gg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Kg(t),Mj=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Mj;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var i2={};nA(i2,{API_ENDPOINT:()=>e2});module.exports=rA(i2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=r_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=t_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&n_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},qi;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(qi||(qi={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=r_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ee=gt(kS());var TS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&TS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function RS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var DS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,DS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var FS=require("crypto"),og={randomUUID:FS.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return RS(i)}var $s=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},pi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},wt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Te(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Hk=gt(Dk());var Ju=gt(require("fs")),ea=gt(Ek()),Mk=gt(require("os")),ta=gt(require("path")),KW=process.env.TEST_TMPDIR?ta.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ta.default.join(Mk.default.homedir(),".local","state"),Ik=ta.default.join(KW,"augment","augment-server.log"),Zs;function JW(){if(Zs)return Zs;let t=ta.default.dirname(Ik);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"info").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?ea.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "info"`,ea.default.setLevel("info")),ea.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Ik,`${c} [${i.toUpperCase()}] ${s} `)}},Zs=ea.default.getLogger("server"),n&&Zs.warn(n),Zs}function _e(t){let e=JW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var ra=gt(Go()),Qo=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,ra.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: ${this.diff(this.value,e).map(n=>` - ${n}`).join(` -`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ra.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ra.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var $k=require("events"),Dn=gt(require("fs")),Wk=gt(ng());var Ak;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>Se}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,Te,ge,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=Te||m,this.fragment=ge||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:Te,query:ge,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),Te===void 0?Te=this.path:Te===null&&(Te=m),ge===void 0?ge=this.query:ge===null&&(ge=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&Te===this.path&&ge===this.query&&me===this.fragment?this:new A(se,re,Te,ge,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,Te=-1;for(let ge=0;ge=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)Te!==-1&&(re+=encodeURIComponent(X.substring(Te,ge)),Te=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[me];St!==void 0?(Te!==-1&&(re+=encodeURIComponent(X.substring(Te,ge)),Te=-1),re+=St):Te===-1&&(Te=ge)}}return Te!==-1&&(re+=encodeURIComponent(X.substring(Te))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:Te,authority:ge,path:me,query:St,fragment:We}=X;if(Te&&(re+=Te,re+=":"),(ge||Te==="file")&&(re+=v,re+=v),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var Se;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,Te=!1;re[0]!==Dt&&(re=Dt+re,Te=!0);let ge=Je.resolve(re,...se);return Te&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(Se||(Se={}))})(),Ak=i})();var{URI:Ze,Utils:Tt}=Ak;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=Ni.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Hi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Nk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function qk(t){let e=await nn.lstat(t);return Nk(e)}function Ok(t){try{return Vi(t).type==="File"}catch{return!1}}async function Lk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Vi(t){let e=Hi.lstatSync(t);return Nk(e)}function ia(t){let e=[],n=Hi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function oa(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Bk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Uk(t){return Hi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=Wk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},bi=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},_i=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new $k.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,jk=[];function zk(t){jk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new _i(t))},get workspaceFolders(){return jk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Uk(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},sa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Hk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Vk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function aa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function vi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){aa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ca(t,e=""){let n=[];if(typeof t!="object"||t===null)return Gk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${ca(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ca(s,e+" "))):n.push(`${e}${i}: ${Gk(s)}`);return n.join(` -`)}function Gk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ua(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>wt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return $s()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Gi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Fe(U,!0)}`),wt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?wt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),wt.fromResponse(B).status===10&&this._logger.debug(`object size is ${ca(s)} `),wt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Fe(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Gi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Fe(P,!0)}`),P.stack&&this._logger.error(P.stack),wt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?wt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),wt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?ca(s):0} `),wt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` +`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ra.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ra.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var $k=require("events"),Dn=gt(require("fs")),Wk=gt(ng());var Ak;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>Se}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,Re,ge,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=Re||m,this.fragment=ge||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:Re,query:ge,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),Re===void 0?Re=this.path:Re===null&&(Re=m),ge===void 0?ge=this.query:ge===null&&(ge=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&Re===this.path&&ge===this.query&&me===this.fragment?this:new A(se,re,Re,ge,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,Re=-1;for(let ge=0;ge=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[me];St!==void 0?(Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re+=St):Re===-1&&(Re=ge)}}return Re!==-1&&(re+=encodeURIComponent(X.substring(Re))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:Re,authority:ge,path:me,query:St,fragment:We}=X;if(Re&&(re+=Re,re+=":"),(ge||Re==="file")&&(re+=v,re+=v),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var Se;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,Re=!1;re[0]!==Dt&&(re=Dt+re,Re=!0);let ge=Je.resolve(re,...se);return Re&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(Se||(Se={}))})(),Ak=i})();var{URI:Ze,Utils:Tt}=Ak;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=qi.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Vi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Nk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function qk(t){let e=await nn.lstat(t);return Nk(e)}function Ok(t){try{return Gi(t).type==="File"}catch{return!1}}async function Lk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Gi(t){let e=Vi.lstatSync(t);return Nk(e)}function ia(t){let e=[],n=Vi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function oa(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Bk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Uk(t){return Vi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=Wk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},_i=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},vi=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new $k.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,jk=[];function zk(t){jk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new vi(t))},get workspaceFolders(){return jk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Uk(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},sa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Hk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Vk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function aa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function yi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){aa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ca(t,e=""){let n=[];if(typeof t!="object"||t===null)return Gk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${ca(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ca(s,e+" "))):n.push(`${e}${i}: ${Gk(s)}`);return n.join(` +`)}function Gk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ua(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>wt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return $s()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Qi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Te(U,!0)}`),wt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?wt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),wt.fromResponse(B).status===10&&this._logger.debug(`object size is ${ca(s)} `),wt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Te(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Qi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Te(P,!0)}`),P.stack&&this._logger.error(P.stack),wt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?wt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),wt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?ca(s):0} `),wt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` `);){let Je=te.indexOf(` -`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let Se=JSON.parse(Dt);yield c(Se)}catch(Se){K.error(`JSON parse failed for ${Dt}: ${Fe(Se)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!wt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:vi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:vi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:vi("BackChatResultNode","id",d.id),type:vi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?vi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:vi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:vi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);aa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);aa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version)}let c=[];if(e.languages===void 0)c=Og;else{aa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Gi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Kk=gt(Go());var la="augment.sessions",Qk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===la&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(la,JSON.stringify({accessToken:n,tenantURL:i,scopes:Qk}))}async getSession(){let n=await this._context.secrets.get(la);if(n){let i=JSON.parse(n);if((0,Kk.isEqual)(i.scopes,Qk))return i}return null}async removeSession(){await this._context.secrets.get(la)&&await this._context.secrets.delete(la)}};var Yo=require("crypto"),jg=require("url");var lj=["email"],ol="augment.oauth-state",dj=process.env.TEST_HOSTNAME??".augmentcode.com",fj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Jk((0,Yo.randomBytes)(32)),n=Jk(hj(Buffer.from(e))),i=(0,Yo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=gj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function pj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>pj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} +`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let Se=JSON.parse(Dt);yield c(Se)}catch(Se){K.error(`JSON parse failed for ${Dt}: ${Te(Se)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!wt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:yi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:yi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:yi("BackChatResultNode","id",d.id),type:yi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?yi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:yi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:yi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);aa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);aa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version)}let c=[];if(e.languages===void 0)c=Og;else{aa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Qi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Kk=gt(Go());var la="augment.sessions",Qk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===la&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(la,JSON.stringify({accessToken:n,tenantURL:i,scopes:Qk}))}async getSession(){let n=await this._context.secrets.get(la);if(n){let i=JSON.parse(n);if((0,Kk.isEqual)(i.scopes,Qk))return i}return null}async removeSession(){await this._context.secrets.get(la)&&await this._context.secrets.delete(la)}};var Yo=require("crypto"),jg=require("url");var lj=["email"],ol="augment.oauth-state",dj=process.env.TEST_HOSTNAME??".augmentcode.com",fj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Jk((0,Yo.randomBytes)(32)),n=Jk(hj(Buffer.from(e))),i=(0,Yo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=gj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function pj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>pj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} suffixReplacementText: ${this.suffixReplacementText} skippedSuffix: ${this.skippedSuffix} start: ${this.range.startOffset} end: ${this.range.endOffset}`}};var ul=class{constructor(e,n,i){this._extension=e;this._configListener=n;this._metricsReporter=i;this.generateCompletion=Xk(this.generateCompletion.bind(this),s=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:s})})}_logger=_e("CompletionsModel");_completionSerial=0;async generateCompletion(e,n,i){let s=this._extension.workspaceManager;if(s===void 0)return;let c=s.completionServer,u=c.createRequestId(),d=s.safeResolvePathName(e.uri);if(d===void 0)return;let[f,m]=[d.rootPath,d.relPath],v=e.offsetAt(n),[x,D,N,A,L]=this._extractPrefixAndSuffix(e,v);v+=L;let B={prefixBegin:N,cursorPosition:v,suffixEnd:A},F=(await this._requestCompletion(s,c,u,e,x,D,B,d,i)).completionItems;if(F.length===0)return{completions:[],document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,occuredAt:new Date,isReused:!1};F.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],te=F[0];return te.skippedSuffix.includes(` -`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let v=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(v))throw new No(`Language ${v} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,v,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),mj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(wt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new No("Cancelled in back end");if(wt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new No("Retriable error on back end");let U=Fe(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let v=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new bi(v,x),L=new bi(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends es{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function zg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends es{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=zg(i),[f,m]=zg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Yu(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Ko(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Lk(n.fsPath)||await oa(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var eT=gt(require("crypto")),fa=2023102300,da=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},ts=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=eT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new da(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var MT=gt(Go());var Hg=class{async read(e){try{return await Bk(e)}catch{return}}stat(e){try{return Vi(e)}catch{return}}};function tT(){return new Hg}var nT=gt(require("crypto"));function rT(t){let e=nT.createHash("sha256");return e.update(t),e.digest("hex")}var tp=gt(hT());var ha=class{accepted=!0},yi=class{accepted=!1};var st=gt(require("node:path"));var ga=st.posix.sep,Aj=new RegExp("/\\/g");function gT(t){return st.isAbsolute(t)}function Nj(t){return st.sep==="\\"?t.replace(Aj,ga):t}function pT(t){return Nj(t)}function mT(t){return t.with({path:st.dirname(t.fsPath)})}function gl(t){let e=st.dirname(t);return e==="."?"":qj(e)}function qj(t){return t.endsWith(ga)?t:t+ga}function ns(t){for(;;){if(t===st.sep||t===ga||!t.endsWith(ga)&&!t.endsWith(st.sep))return t;t=t.slice(0,-1)}}function pa(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return st.relative(n,i)}function $r(t,e){let n=pa(t,e);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function et(t,e,n=!1){let i=st.join(t,e);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function ma(t,e){let n=pa(t,e);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(t,e){return ma(t,e)!==void 0}function pl(t,e){let n=pa(t,e);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?Ze.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await qk(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=st.dirname(i.fsPath);if(st.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function Oj(t){return!1}function Jt(t){return ns(t.fsPath)}function bT(t){return t.fsPath}function Wr(t){if(t.scheme==="file"||t.scheme==="untitled"||Oj(t))return Jt(t)}var wi=class extends ha{explicit=!1;format(){return"Tracked"}},Xg=class extends ha{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},Yg=class extends yi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},Zg=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if($r(i,n)!==""){let u=n;for(;;){u=mT(u);let d=$r(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=$r(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new Yg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new Xg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new wi}},ep=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await Zg.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new wi}};async function Lj(t,e){let n=Tt.joinPath(t,e);try{let i=await Ko(n.fsPath),s=(0,tp.default)({ignorecase:!1});return s.add(i),s}catch{}}var rs=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await ep.buildNew(this._ignoreSources,e,n)}},ba=class{constructor(e){this.filename=e}getName(e){return bT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Lj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,tp.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: +`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let v=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(v))throw new pi(`Language ${v} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,v,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),mj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(wt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new pi("Cancelled in back end");if(wt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new pi("Retriable error on back end");let U=Te(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let v=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new _i(v,x),L=new _i(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends es{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function zg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends es{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=zg(i),[f,m]=zg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Yu(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Ko(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Lk(n.fsPath)||await oa(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var eT=gt(require("crypto")),fa=2023102300,da=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},ts=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=eT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new da(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var MT=gt(Go());var Hg=class{async read(e){try{return await Bk(e)}catch{return}}stat(e){try{return Gi(e)}catch{return}}};function tT(){return new Hg}var nT=gt(require("crypto"));function rT(t){let e=nT.createHash("sha256");return e.update(t),e.digest("hex")}var tp=gt(hT());var ha=class{accepted=!0},wi=class{accepted=!1};var st=gt(require("node:path"));var ga=st.posix.sep,Aj=new RegExp("/\\/g");function gT(t){return st.isAbsolute(t)}function Nj(t){return st.sep==="\\"?t.replace(Aj,ga):t}function pT(t){return Nj(t)}function mT(t){return t.with({path:st.dirname(t.fsPath)})}function gl(t){let e=st.dirname(t);return e==="."?"":qj(e)}function qj(t){return t.endsWith(ga)?t:t+ga}function ns(t){for(;;){if(t===st.sep||t===ga||!t.endsWith(ga)&&!t.endsWith(st.sep))return t;t=t.slice(0,-1)}}function pa(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return st.relative(n,i)}function $r(t,e){let n=pa(t,e);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function et(t,e,n=!1){let i=st.join(t,e);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function ma(t,e){let n=pa(t,e);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(t,e){return ma(t,e)!==void 0}function pl(t,e){let n=pa(t,e);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?Ze.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await qk(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=st.dirname(i.fsPath);if(st.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function Oj(t){return!1}function Jt(t){return ns(t.fsPath)}function bT(t){return t.fsPath}function Wr(t){if(t.scheme==="file"||t.scheme==="untitled"||Oj(t))return Jt(t)}var Si=class extends ha{explicit=!1;format(){return"Tracked"}},Xg=class extends ha{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},Yg=class extends wi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},Zg=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if($r(i,n)!==""){let u=n;for(;;){u=mT(u);let d=$r(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=$r(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new Yg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new Xg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new Si}},ep=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await Zg.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new Si}};async function Lj(t,e){let n=Tt.joinPath(t,e);try{let i=await Ko(n.fsPath),s=(0,tp.default)({ignorecase:!1});return s.add(i),s}catch{}}var rs=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await ep.buildNew(this._ignoreSources,e,n)}},ba=class{constructor(e){this.filename=e}getName(e){return bT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Lj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,tp.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: `:"")+Array.from(this).map(([n,i])=>` - ${n}: ${i} ms`).join(` `)}},yl=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},np=class extends yl{increment(e=1){this._add(e)}},rp=class extends yl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},is=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new np,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new rp,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` `),i=" - timing stats:",s=Array.from(this.timings.entries()).map(([c,u])=>` - ${c}: ${u.value} ms`).join(` `);return e+` `+n+` `+i+` -`+s}};var _T=gt(require("os"));function vT(t){let e=_T.default.homedir();return pl(t,e)}var _a=gt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=$r(e,x),A=ia(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=et(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new op(c,i)}var os=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!_a.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!_a.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new is("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=$r(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ia(s.fsPath);this._readDirMs.stop();for(let[m,v]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=et(u,m,v==="Directory"),A=d.getPathInfo(N,v);this._filterMs.stop();let L=N;v==="File"?this._filesEmitted.increment():v==="Directory"?(L=ns(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,v,A],this._yieldMs.stop(),v==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},ip=class extends yi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=_a.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new ip(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new wi:i.getPathInfo(e)}},op=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new sp(i,this._fileExtensions)}_getIgnoreStack(n){if(gT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},sp=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var ap=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends ot{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new ap;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var cp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends cp{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},jr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var Bj=Object.freeze({git:{name:".git",type:"Directory"}});async function yT(t){for(let[e,n]of Object.entries(Bj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var va=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},up=class{throwError(e,n){throw new va(e,n)}},lp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},dp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},fp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},hp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new dp(i,this.process)}},gp=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof va?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof va&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function ss(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends ot{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=ss(e,n),s=ss(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=ss(e.addedBlobs,n.addedBlobs),u=ss(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=ss(e.deletedBlobs,n.deletedBlobs),u=ss(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";wt.isAPIErrorWithStatus(d,5)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function Si(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var pp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},mp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends ot{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new is("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=pT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return ua(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return et(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof da){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,Fe(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let v={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,v)}_newProbeBatch(){return new mp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),Si(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),Si(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,v]of i.items)this._pathMapVerify(v.folderId,v.relPath,m)&&(u.has(v.blobName)?this._enqueueForUpload(m,v.folderId,v.relPath,!1):d.has(v.blobName)?this._enqueueForProbeRetry(m,v):this._pathMapUpdate(v.folderId,v.relPath,m,v.blobName,v.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new pp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:v}]=n;if(!this._pathMapVerify(m,v,f))return;let x=this._getMtime(d,m,v,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,v,f);if(D===void 0)return;let N=this._calculateBlobName(v,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,v,f,Fe(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:v,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let v of f)this._pathMapInvalidate(v.folderId,v.pathName,v.seq,this._fileUploadFailure);else for(let v of f){let x={folderId:v.folderId,relPath:v.pathName,blobName:m,mtime:v.mtime,startTime:Date.now()};this._enqueueForProbeRetry(v.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Fe(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var zr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},bp=class{constructor(e=fa){this.namingVersion=e}entries=new Array};function $j(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function Wj(t){return et(t,zr.cacheFileName)}function Fl(t){let e=Wj(t);return Ok(e)}async function ST(t,e){let n=et(t,zr.cacheFileName),i=et(e,zr.cacheFileName);await oa(e),await Dg(n,i)}async function xT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=et(e,zr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Ko(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==fa)i.info(`blob naming version ${d.namingVersion} !== ${fa}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let v=$j(m);v!==void 0&&(n.set(f,{mtime:v.mtime,name:v.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=Fe(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends zr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=et(this._cacheDirName,zr.cacheFileName),this._tmpFileName=et(this._cacheDirName,zr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new bp;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await oa(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await Dg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${fa} to ${this._cacheFileName}`)}};var CT=gt(Go());var PT=require("console");var _p=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},as=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},cs=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new as(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,v=Math.min(m,e-s.length);s.length+=v,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=v;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var kT=6,TT=6,ya=kT*TT,zj=1e3,Hj=2e3,Vj=60*1e3,Gj=200,Qj=30*1e3,Kj=30*1e3,Jj=60*1e3,vp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Zo(TT),this.addChangeset(s),this.changesSinceUpload=new cs}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new cs})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},yp=class extends vp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends ot{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new jr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,Hj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,Vj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new jr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let v=m.recentChanges(!1);if(v===void 0||v.blobName===void 0)continue;d.set(f,v.blobName);let x=m.getText(),D=v.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:v.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let v=m.changeTracker.getChunks(n,f.getText().length);if(v.length!==0)for(let x of v)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new yp(n,i,d,f,d),c.set(i,u);let m=u.getText(),v=this._blobNameCalculator.calculate(i,m);if(v===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(v)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=v,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let v of c){let[x,D,N]=v;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let v=d.changesSinceUpload.length>=Gj;v||(v=d.changesSinceUpload.countChunks(this._chunkSize)>=ya),v&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let v=s.changesSinceUpload.countChunks(this._chunkSize);v>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),v>=ya&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=kT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),v=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,CT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:v,changesSinceUpload:new cs},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Qj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${Fe(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${Fe(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Jj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size{if(!(Date.now()-u>Kj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let v of m)this.notifyMissingBlob(v.folderId,v.pathName,f);else if(d.has(f))for(let v of m)this._requeueVerifyWaiter(v,f);else for(let v of m)this._commit(v,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),Si(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),Si(this._logger,i,n.nonindexedBlobNames,5))}};var wp=gt(Go());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] +`+s}};var _T=gt(require("os"));function vT(t){let e=_T.default.homedir();return pl(t,e)}var _a=gt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=$r(e,x),A=ia(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=et(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new op(c,i)}var os=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!_a.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!_a.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new is("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=$r(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ia(s.fsPath);this._readDirMs.stop();for(let[m,v]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=et(u,m,v==="Directory"),A=d.getPathInfo(N,v);this._filterMs.stop();let L=N;v==="File"?this._filesEmitted.increment():v==="Directory"?(L=ns(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,v,A],this._yieldMs.stop(),v==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},ip=class extends wi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=_a.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new ip(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new Si:i.getPathInfo(e)}},op=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new sp(i,this._fileExtensions)}_getIgnoreStack(n){if(gT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},sp=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var ap=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends ot{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new ap;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var cp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends cp{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},jr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var Bj=Object.freeze({git:{name:".git",type:"Directory"}});async function yT(t){for(let[e,n]of Object.entries(Bj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var va=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},up=class{throwError(e,n){throw new va(e,n)}},lp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},dp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},fp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},hp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new dp(i,this.process)}},gp=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof va?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof va&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function ss(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends ot{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=ss(e,n),s=ss(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=ss(e.addedBlobs,n.addedBlobs),u=ss(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=ss(e.deletedBlobs,n.deletedBlobs),u=ss(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";wt.isAPIErrorWithStatus(d,5)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function xi(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var pp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},mp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends ot{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new is("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=pT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return ua(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return et(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof da){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,Te(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let v={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,v)}_newProbeBatch(){return new mp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),xi(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),xi(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,v]of i.items)this._pathMapVerify(v.folderId,v.relPath,m)&&(u.has(v.blobName)?this._enqueueForUpload(m,v.folderId,v.relPath,!1):d.has(v.blobName)?this._enqueueForProbeRetry(m,v):this._pathMapUpdate(v.folderId,v.relPath,m,v.blobName,v.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new pp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:v}]=n;if(!this._pathMapVerify(m,v,f))return;let x=this._getMtime(d,m,v,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,v,f);if(D===void 0)return;let N=this._calculateBlobName(v,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,v,f,Te(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:v,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let v of f)this._pathMapInvalidate(v.folderId,v.pathName,v.seq,this._fileUploadFailure);else for(let v of f){let x={folderId:v.folderId,relPath:v.pathName,blobName:m,mtime:v.mtime,startTime:Date.now()};this._enqueueForProbeRetry(v.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Te(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var zr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},bp=class{constructor(e=fa){this.namingVersion=e}entries=new Array};function $j(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function Wj(t){return et(t,zr.cacheFileName)}function Fl(t){let e=Wj(t);return Ok(e)}async function ST(t,e){let n=et(t,zr.cacheFileName),i=et(e,zr.cacheFileName);await oa(e),await Dg(n,i)}async function xT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=et(e,zr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Ko(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==fa)i.info(`blob naming version ${d.namingVersion} !== ${fa}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let v=$j(m);v!==void 0&&(n.set(f,{mtime:v.mtime,name:v.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=Te(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends zr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=et(this._cacheDirName,zr.cacheFileName),this._tmpFileName=et(this._cacheDirName,zr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new bp;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await oa(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await Dg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${fa} to ${this._cacheFileName}`)}};var CT=gt(Go());var PT=require("console");var _p=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},as=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},cs=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new as(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,v=Math.min(m,e-s.length);s.length+=v,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=v;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var kT=6,TT=6,ya=kT*TT,zj=1e3,Hj=2e3,Vj=60*1e3,Gj=200,Qj=30*1e3,Kj=30*1e3,Jj=60*1e3,vp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Zo(TT),this.addChangeset(s),this.changesSinceUpload=new cs}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new cs})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},yp=class extends vp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends ot{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new jr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,Hj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,Vj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new jr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let v=m.recentChanges(!1);if(v===void 0||v.blobName===void 0)continue;d.set(f,v.blobName);let x=m.getText(),D=v.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:v.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let v=m.changeTracker.getChunks(n,f.getText().length);if(v.length!==0)for(let x of v)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new yp(n,i,d,f,d),c.set(i,u);let m=u.getText(),v=this._blobNameCalculator.calculate(i,m);if(v===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(v)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=v,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let v of c){let[x,D,N]=v;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let v=d.changesSinceUpload.length>=Gj;v||(v=d.changesSinceUpload.countChunks(this._chunkSize)>=ya),v&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let v=s.changesSinceUpload.countChunks(this._chunkSize);v>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),v>=ya&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=kT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),v=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,CT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:v,changesSinceUpload:new cs},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Qj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${Te(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${Te(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Jj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size{if(!(Date.now()-u>Kj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let v of m)this.notifyMissingBlob(v.folderId,v.pathName,f);else if(d.has(f))for(let v of m)this._requeueVerifyWaiter(v,f);else for(let v of m)this._commit(v,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),xi(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),xi(this._logger,i,n.nonindexedBlobNames,5))}};var wp=gt(Go());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] [${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.getBlobName(e,n)}handleMissingBlob(e,n,i){if(this.isV2Enabled){let s=this._openFileManagerV2.handleMissingBlob(e,n,i);return this._openFileManagerV1.notifyMissingBlob(e,n,i)||s}else return this._openFileManagerV1.notifyMissingBlob(e,n,i)}loseFocus(){this._openFileManagerV1.loseFocus()}stopTracking(e,n){this._openFileManagerV1.stopTracking(e,n),this.isV2Enabled&&this._openFileManagerV2.stopTracking(e,n)}handleClosedDocument(e){this._openFileManagerV1.stopTracking(e.folderId,e.relPath,0),this.isV2Enabled&&this._openFileManagerV2.handleClosedDocument(e)}handleChangedDocument(e){this._openFileManagerV1.applyTextDocumentChange(e.folderId,e.relPath,e.event),this.isV2Enabled&&this._openFileManagerV2.handleChangedDocument(e)}isTracked(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.isTracked(e,n),s=this._openFileManagerV1.isTracked(e,n);return i!==s&&this._logger.debug(`[WARN] isTracked returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] @@ -84,8 +84,8 @@ ${this.diff(this.value,e).map(n=>` - ${n}`).join(` [${JSON.stringify(s)}]`);let c=(0,wp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] [${JSON.stringify(c)}]`),i}else return this._openFileManagerV1.getTrackedPaths(e)}dispose(){this._openFileManagerV2?.dispose(),this._openFileManagerV1.dispose()}getRecencySummary(e){return this._openFileManagerV1.getRecencySummary(e)}translateRange(e,n,i,s){if(this.isV2Enabled){let c=this._openFileManagerV2.translateRange(e,n,i,s),u=this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s});return(c?.blobName!==u?.blobName||c?.beginOffset!==u?.beginOffset||c?.endOffset!==u?.endOffset)&&this._logger.debug(`[WARN] translateRange returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(c)}] -[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends yi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Vi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Fe(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&Si(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new wi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Fe(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Fe(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Fe(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Vi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Fe(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(wt.isAPIErrorWithStatus(c,7))return;if(c instanceof Gi)return;if(c instanceof Jo)return;let u=Fe(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),wt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Gi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Fe(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Fe(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new _i(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return pe.error(`Error getting completion: ${Fe(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Fe(n)}`)}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Fe(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Fe(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Fe(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Fe(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Fe(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Fe(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Fe(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=Ni.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new _i(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new _i(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new bi(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new bi(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=Ni.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): -${e.getText()}`)}Rt.documents.add(e);let i={document:new _i(e),contentChanges:n};Mg.fire(i)});on.listen();pe.info("Language server started");0&&(module.exports={API_ENDPOINT}); +[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(wt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),wt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(pe.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(pe.error(`Error getting completion: ${Te(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Te(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Te(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): +${e.getText()}`)}Rt.documents.add(e);let i={document:new vi(e),contentChanges:n};Mg.fire(i)});on.listen();pe.info("Language server started");0&&(module.exports={API_ENDPOINT}); /*! Bundled license information: lodash/lodash.js: From d3b4af4c47631ed2d533dafef32fa00c944d899b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 11 Feb 2025 16:56:54 +0000 Subject: [PATCH 07/41] Augment Vim v0.12.0 --- autoload/augment/chat.vim | 2 +- autoload/augment/client.vim | 7 ++++++- autoload/augment/version.vim | 2 +- dist/server.js | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/autoload/augment/chat.vim b/autoload/augment/chat.vim index 0f0f4df..46db1dd 100644 --- a/autoload/augment/chat.vim +++ b/autoload/augment/chat.vim @@ -11,7 +11,7 @@ function! s:ResetChatContents() abort endif call setbufvar(chat_buf, '&modifiable', v:true) - call deletebufline(chat_buf, 1, '$') + silent call deletebufline(chat_buf, 1, '$') call augment#chat#AppendText('# Augment Chat History' \ . "\n\n" \ . '`:Augment chat` Send a chat message in the current conversation' diff --git a/autoload/augment/client.vim b/autoload/augment/client.vim index 66fd2d4..047b91a 100644 --- a/autoload/augment/client.vim +++ b/autoload/augment/client.vim @@ -92,6 +92,11 @@ function! s:HandleCompletion(client, params, result, err) abort return endif + " If the user has exited insert mode, ignore the response + if mode() !=# 'i' + return + endif + " Show the completion let text = a:result[0].insertText let request_id = a:result[0].label @@ -198,7 +203,7 @@ function! s:HandlePluginVersion(client, params, result, err) abort let current_version = augment#version#Version() if latest_version !=# current_version let is_prerelease = a:result.isPrerelease - let warning_message = printf('Your plugin version %s is lower than the latest %s version %s. Please update your plugin to receive the latest features and bug fixes.', + let warning_message = printf('Your plugin version v%s is lower than the latest %s version v%s. Please update your plugin to receive the latest features and bug fixes.', \ current_version, \ is_prerelease ? 'prerelease' : 'stable', \ latest_version) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 311e518..3191817 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.11.0' + return '0.12.0' endfunction diff --git a/dist/server.js b/dist/server.js index 2155b2c..cf4651f 100644 --- a/dist/server.js +++ b/dist/server.js @@ -84,7 +84,7 @@ ${this.diff(this.value,e).map(n=>` - ${n}`).join(` [${JSON.stringify(s)}]`);let c=(0,wp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] [${JSON.stringify(c)}]`),i}else return this._openFileManagerV1.getTrackedPaths(e)}dispose(){this._openFileManagerV2?.dispose(),this._openFileManagerV1.dispose()}getRecencySummary(e){return this._openFileManagerV1.getRecencySummary(e)}translateRange(e,n,i,s){if(this.isV2Enabled){let c=this._openFileManagerV2.translateRange(e,n,i,s),u=this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s});return(c?.blobName!==u?.blobName||c?.beginOffset!==u?.beginOffset||c?.endOffset!==u?.endOffset)&&this._logger.debug(`[WARN] translateRange returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(c)}] -[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(wt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),wt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(pe.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(pe.error(`Error getting completion: ${Te(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Te(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Te(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): +[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(wt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),wt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(pe.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(pe.error(`Error getting completion: ${Te(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Te(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Te(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): ${e.getText()}`)}Rt.documents.add(e);let i={document:new vi(e),contentChanges:n};Mg.fire(i)});on.listen();pe.info("Language server started");0&&(module.exports={API_ENDPOINT}); /*! Bundled license information: From 63ac43534212512bd0f8f10ec9a1ec439bdf3e5c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 12 Feb 2025 16:57:13 +0000 Subject: [PATCH 08/41] Augment Vim v0.13.0 --- autoload/augment/version.vim | 2 +- dist/server.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 3191817..9c3989a 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.12.0' + return '0.13.0' endfunction diff --git a/dist/server.js b/dist/server.js index cf4651f..b760f0b 100644 --- a/dist/server.js +++ b/dist/server.js @@ -61,7 +61,7 @@ function print() { __p += __j.call(arguments, '') } }`;var ke=Xb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(ke.source=J,Hd(ke))throw ke;return ke}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return sm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=am(l,h),S=cm(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,lm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=am(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Ce(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(no(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-ro(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=uo(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Ym("toUpperCase");function Jb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Xb=Fe(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Fe(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Ce(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||xe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,ke=M&&!ae;if(!_&&Q){S=ke?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&ke?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(xe(_)?_:[],h)}return this[a](function(S){return o.apply(xe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(so,l)||(so[l]=[]),so[l].push({name:o,func:a})}}),so[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):Ti?((Ti.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Vk=I((m3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((bG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Vg="\\",bj=/^\s+$/,_j=/(?:[^\\]|^)\\$/,vj=/^\\!/,yj=/^\\#/,wj=/\r?\n/g,Sj=/^\.*\/|^\.+$/,Gg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,xj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),Pj=/([0-z])-([0-z])/g,lT=()=>!1,Cj=t=>t.replace(Pj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),kj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Tj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Vg],[/\\\\/g,()=>Vg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Vg?`\\[${n}${kj(i)}${s}`:s==="]"&&i.length%2===0?`[${Cj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Rj=(t,e)=>{let n=aT[t];return n||(n=Tj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Jg=t=>typeof t=="string",Dj=t=>t&&Jg(t)&&!bj.test(t)&&!_j.test(t)&&t.indexOf("#")!==0,Fj=t=>t.split(wj),Qg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Ej=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vj,"!").replace(yj,"#");let s=Rj(t,e);return new Qg(n,t,i,s)},Ij=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Jg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>Sj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Kg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){xj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Dj(e)){let n=Ej(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Jg(e)?Fj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ij),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Gg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Gg)+Gg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Kg(t),Mj=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Mj;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var i2={};nA(i2,{API_ENDPOINT:()=>e2});module.exports=rA(i2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=r_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=t_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&n_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},qi;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(qi||(qi={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=r_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ee=gt(kS());var TS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&TS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function RS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var DS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,DS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var FS=require("crypto"),og={randomUUID:FS.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return RS(i)}var $s=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},pi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},wt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Te(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Hk=gt(Dk());var Ju=gt(require("fs")),ea=gt(Ek()),Mk=gt(require("os")),ta=gt(require("path")),KW=process.env.TEST_TMPDIR?ta.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ta.default.join(Mk.default.homedir(),".local","state"),Ik=ta.default.join(KW,"augment","augment-server.log"),Zs;function JW(){if(Zs)return Zs;let t=ta.default.dirname(Ik);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"info").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?ea.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "info"`,ea.default.setLevel("info")),ea.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Ik,`${c} [${i.toUpperCase()}] ${s} `)}},Zs=ea.default.getLogger("server"),n&&Zs.warn(n),Zs}function _e(t){let e=JW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var ra=gt(Go()),Qo=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,ra.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: ${this.diff(this.value,e).map(n=>` - ${n}`).join(` -`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ra.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ra.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var $k=require("events"),Dn=gt(require("fs")),Wk=gt(ng());var Ak;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>Se}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,Re,ge,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=Re||m,this.fragment=ge||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:Re,query:ge,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),Re===void 0?Re=this.path:Re===null&&(Re=m),ge===void 0?ge=this.query:ge===null&&(ge=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&Re===this.path&&ge===this.query&&me===this.fragment?this:new A(se,re,Re,ge,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,Re=-1;for(let ge=0;ge=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[me];St!==void 0?(Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re+=St):Re===-1&&(Re=ge)}}return Re!==-1&&(re+=encodeURIComponent(X.substring(Re))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:Re,authority:ge,path:me,query:St,fragment:We}=X;if(Re&&(re+=Re,re+=":"),(ge||Re==="file")&&(re+=v,re+=v),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var Se;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,Re=!1;re[0]!==Dt&&(re=Dt+re,Re=!0);let ge=Je.resolve(re,...se);return Re&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(Se||(Se={}))})(),Ak=i})();var{URI:Ze,Utils:Tt}=Ak;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=qi.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Vi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Nk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function qk(t){let e=await nn.lstat(t);return Nk(e)}function Ok(t){try{return Gi(t).type==="File"}catch{return!1}}async function Lk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Gi(t){let e=Vi.lstatSync(t);return Nk(e)}function ia(t){let e=[],n=Vi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function oa(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Bk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Uk(t){return Vi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=Wk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},_i=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},vi=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new $k.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,jk=[];function zk(t){jk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new vi(t))},get workspaceFolders(){return jk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Uk(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},sa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Hk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Vk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function aa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function yi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){aa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ca(t,e=""){let n=[];if(typeof t!="object"||t===null)return Gk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${ca(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ca(s,e+" "))):n.push(`${e}${i}: ${Gk(s)}`);return n.join(` +`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ra.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ra.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var $k=require("events"),Dn=gt(require("fs")),Wk=gt(ng());var Ak;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>Se}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,Re,ge,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=Re||m,this.fragment=ge||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:Re,query:ge,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),Re===void 0?Re=this.path:Re===null&&(Re=m),ge===void 0?ge=this.query:ge===null&&(ge=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&Re===this.path&&ge===this.query&&me===this.fragment?this:new A(se,re,Re,ge,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,Re=-1;for(let ge=0;ge=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[me];St!==void 0?(Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re+=St):Re===-1&&(Re=ge)}}return Re!==-1&&(re+=encodeURIComponent(X.substring(Re))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:Re,authority:ge,path:me,query:St,fragment:We}=X;if(Re&&(re+=Re,re+=":"),(ge||Re==="file")&&(re+=v,re+=v),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var Se;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,Re=!1;re[0]!==Dt&&(re=Dt+re,Re=!0);let ge=Je.resolve(re,...se);return Re&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(Se||(Se={}))})(),Ak=i})();var{URI:Ze,Utils:Tt}=Ak;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=qi.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Vi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Nk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function qk(t){let e=await nn.lstat(t);return Nk(e)}function Ok(t){try{return Gi(t).type==="File"}catch{return!1}}async function Lk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Gi(t){let e=Vi.lstatSync(t);return Nk(e)}function ia(t){let e=[],n=Vi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function oa(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Bk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Uk(t){return Vi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=Wk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},_i=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},vi=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new $k.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,jk=[];function zk(t){jk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new vi(t))},get workspaceFolders(){return jk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Uk(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},sa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Hk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Vk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function aa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function yi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){aa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ca(t,e=""){let n=[];if(typeof t!="object"||t===null)return Gk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${ca(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ca(s,e+" "))):n.push(`${e}${i}: ${Gk(s)}`);return n.join(` `)}function Gk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ua(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>wt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return $s()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Qi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Te(U,!0)}`),wt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?wt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),wt.fromResponse(B).status===10&&this._logger.debug(`object size is ${ca(s)} `),wt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Te(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Qi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Te(P,!0)}`),P.stack&&this._logger.error(P.stack),wt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?wt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),wt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?ca(s):0} `),wt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` `);){let Je=te.indexOf(` `),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let Se=JSON.parse(Dt);yield c(Se)}catch(Se){K.error(`JSON parse failed for ${Dt}: ${Te(Se)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!wt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:yi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:yi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:yi("BackChatResultNode","id",d.id),type:yi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?yi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:yi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:yi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);aa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);aa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version)}let c=[];if(e.languages===void 0)c=Og;else{aa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Qi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Kk=gt(Go());var la="augment.sessions",Qk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===la&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(la,JSON.stringify({accessToken:n,tenantURL:i,scopes:Qk}))}async getSession(){let n=await this._context.secrets.get(la);if(n){let i=JSON.parse(n);if((0,Kk.isEqual)(i.scopes,Qk))return i}return null}async removeSession(){await this._context.secrets.get(la)&&await this._context.secrets.delete(la)}};var Yo=require("crypto"),jg=require("url");var lj=["email"],ol="augment.oauth-state",dj=process.env.TEST_HOSTNAME??".augmentcode.com",fj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Jk((0,Yo.randomBytes)(32)),n=Jk(hj(Buffer.from(e))),i=(0,Yo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=gj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function pj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>pj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} From 796a1c7109360df8b92b2d3c008c021f5195cddb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 12 Feb 2025 18:57:44 +0000 Subject: [PATCH 09/41] Augment Vim v0.14.0 --- README.md | 131 +++++++++++++++++++++++++++-------- autoload/augment/version.vim | 2 +- doc/augment.txt | 8 +++ 3 files changed, 113 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 7682c41..f7c6ec0 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,19 @@ # Augment Vim & Neovim Plugin -> [!WARNING] -> This plugin is in early alpha development stage. Features may be incomplete, -> unstable, or change without notice. While basic functionality is available, -> you may encounter bugs, performance issues, or unexpected behavior. Current -> platform support is limited to MacOS and Linux, with Windows to be added at a -> later date. +## A Quick Tour + +Augment's Vim/Neovim plugin provides inline code completions and multi-turn +chat conversations specially tailored to your codebase. The plugin is designed +to work with any modern Vim or Neovim setup, and features the same underlying +context engine that powers our VSCode and IntelliJ plugins. + +Once you've installed the plugin, tell Augment about your project by adding +[workspace folders](#workspace-folders) to your config file, and then sign-in +to the Augment service. You can now open a source file in your project, begin +typing, and you should receive context-aware code completions. Use tab to +accept a suggestion, or keep typing to refine the suggestions. To ask questions +about your codebase or request specific changes, use the `:Augment chat` command +to start a chat conversation. ## Installation @@ -48,6 +56,8 @@ { 'augmentcode/augment.vim' }, ``` +1. Add workspace folders to your config file. This is really essential to getting the most out of augment! See the [Workspace Folders](#workspace-folders) section for more information. + 1. Open Vim and sign in to Augment with the `:Augment signin` command. ## Basic Usage @@ -69,10 +79,53 @@ The following commands are provided: :Augment chat-toggle " Toggle the chat panel visibility ``` +## Workspace Folders + +Workspace folders help Augment understand your codebase better by providing +additional context. Adding your project's root directory as a workspace folder +allows Augment to take advantage of context from across your project, rather +than just the currently open file, improving the accuracy and style of +completions and chat. + +You can configure workspace folders by setting +`g:augment_workspace_folders` in your vimrc: + +```vim +let g:augment_workspace_folders = ['/path/to/project', '~/another-project'] +``` + +Workspace folders can be specified using absolute paths or paths relative to +your home directory (~). Adding your project's root directory as a workspace +folder helps Augment generate completions that match your codebase's patterns +and conventions. + +Note: This option must be set before the plugin is loaded. + +After adding a workspace folder and restarting vim, the output of the +`:Augment status` command will include the syncing progress for the added +folder. + +If you want to ignore particular files or directories from your workspace, you +can create a `.augmentignore` file in the root of your workspace folder. This +file is treated similar to a `.gitignore` file. For example, to ignore all +files within the `node_modules` directory, you can add +the following lines to your `.augmentignore` file: + +``` +node_modules/ +``` + +For more information on how to use the `.augmentignore` file, see the [documentation](https://docs.augmentcode.com/setup-augment/sync). + + ## Chat -The chat command allows you to interact with Augment AI in a conversational -manner. You can use it in two ways: +Augment chat supports multi-turn conversations using your project's full +context. Once a conversation is started, subsequent chat exchanges will include +the history from the previous exchanges. This is useful for asking follow-up +questions or getting context-specific help. + +You can interact with chat in two ways: 1. Direct command with message: @@ -86,32 +139,20 @@ manner. You can use it in two ways: - Type `:Augment chat` followed by your question about the selection -The response will appear in a new buffer with markdown formatting. Note that -chat is currently limited to single-turn conversations - each chat command -starts a new conversation. - -## Workspace Folders +The response will appear in a separate chat buffer with markdown formatting. -Workspace folders help Augment understand your codebase better by providing -additional context. You can configure workspace folders by setting -`g:augment_workspace_folders` in your vimrc: - -```vim -let g:augment_workspace_folders = ['/path/to/project', '~/another-project'] -``` - -Workspace folders can be specified using absolute paths or paths relative to -your home directory (~). Adding your project's root directory as a workspace -folder helps Augment generate completions that match your codebase's patterns -and conventions. +To start a new conversation, use the `:Augment chat-new` command. This will +clear the chat history from your context. -Note: This option must be set before the plugin is loaded. +Use the `:Augment chat-toggle` command to open and close the chat panel. When +the chat panel is closed, the chat conversation will be preserved and can be +reopened with the same command. ## Alternate Keybinds By default, tab is used to accept a suggestion. If you want to use a different key, create a mapping that calls `augment#Accept()`. The function -takes an optional arugment used to specify the fallback text to insert if no +takes an optional argument used to specify the fallback text to insert if no suggestion is available. ```vim @@ -131,6 +172,42 @@ overridden depending on the order in which the plugins are loaded. If tab isn't working for you, the `imap ` command can be used to check if the mapping is present. +## FAQ + +**Q: I'm not seeing any completions. Is the plugin working?** + +A: You may want to first check the output of the `:Augment status` command. +This command will show the current status of the plugin, including whether +you're signed in and whether your workspace folders are synced. If you're not +signed in, you'll need to sign in using the `:Augment signin` command. If those +are not indicating a problem, you can check the plugin log using the `:Augment +log` command. This will show any errors that may have occurred. + +**Q: Can I create shortcuts for the Augment commands?** + +A: Absolutely! You can create mappings for any of the Augment commands. For +example, to create a shortcut for the `:Augment chat*` commands, you can add the +following to your vimrc: + +```vim +nnoremap ac :Augment chat +vnoremap ac :Augment chat +nnoremap an :Augment chat-new +nnoremap at :Augment chat-toggle +``` + +**Q: My workspace is taking a long time to sync. What should I do?** + +A: It may take a while to sync if you have a very large codebase that has not +been synced before. It's also not uncommon to inadvertenly include a large +directory like `node_modules/`. You can use `:Augment status` to see the +progress of the sync. If the sync is making progress but just slow, it may be +worth checking if you have a large directory that you don't need to sync. You +can add these directories to your `.augmentignore` file to exclude it from the +sync. If you're still having trouble, please file a github issue with a +description of the problem and include the output of `:Augment log`. + + ## Licensing and Distribution This repository includes two main components: diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 9c3989a..4f0e078 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.13.0' + return '0.14.0' endfunction diff --git a/doc/augment.txt b/doc/augment.txt index f17c3e9..44fc444 100644 --- a/doc/augment.txt +++ b/doc/augment.txt @@ -52,6 +52,14 @@ The following commands are provided: Start a chat with Augment AI. In visual mode, the selected text will be included in the chat request. + *:Augment_chat_new* +`:Augment chat-new` + Start a new chat conversation with Augment AI. + + *:Augment_chat_toggle* +`:Augment chat-toggle` + Open/close the chat conversation window. + ------------------------------------------------------------------------------ Options *augment-options* From 3db7712a25fd2776b30328493e80772810b806fe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 13 Feb 2025 16:57:16 +0000 Subject: [PATCH 10/41] Augment Vim v0.15.0 --- autoload/augment/version.vim | 2 +- dist/server.js | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 4f0e078..4f9d57b 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.14.0' + return '0.15.0' endfunction diff --git a/dist/server.js b/dist/server.js index b760f0b..acc944e 100644 --- a/dist/server.js +++ b/dist/server.js @@ -38,10 +38,10 @@ ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z `,`\r `,"\r"];var Ca;(function(p){function k(O,G,be,ft){return new Hl(O,G,be,ft)}p.create=k;function R(O){var G=O;return!!(q.defined(G)&&q.string(G.uri)&&(q.undefined(G.languageId)||q.string(G.languageId))&&q.uinteger(G.lineCount)&&q.func(G.getText)&&q.func(G.positionAt)&&q.func(G.offsetAt))}p.is=R;function y(O,G){for(var be=O.getText(),ft=g(G,function(Vr,Zi){var ka=Vr.range.start.line-Zi.range.start.line;return ka===0?Vr.range.start.character-Zi.range.start.character:ka}),Xe=be.length,an=ft.length-1;an>=0;an--){var yn=ft[an],Qn=O.offsetAt(yn.range.start),Ie=O.offsetAt(yn.range.end);if(Ie<=Xe)be=be.substring(0,Qn)+yn.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Xe=Qn}return be}p.applyEdits=y;function g(O,G){if(O.length<=1)return O;var be=O.length/2|0,ft=O.slice(0,be),Xe=O.slice(be);g(ft,G),g(Xe,G);for(var an=0,yn=0,Qn=0;an0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),y=0,g=R.length;if(g===0)return u.create(0,k);for(;yk?g=O:y=O+1}var G=y-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var y=R[k.line],g=k.line+1"u"}p.undefined=y;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Vr,Zi){return k.call(Ie)==="[object Number]"&&Vr<=Ie&&Ie<=Zi}p.numberRange=be;function ft(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ft;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Vr){return Array.isArray(Ie)&&Ie.every(Vr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var So=Ui(),L_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(L_||(hn.MessageDirection=L_={}));var ph=class{constructor(e){this.method=e}};hn.RegistrationType=ph;var mh=class extends So.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=mh;var bh=class extends So.RequestType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolRequestType=bh;var _h=class extends So.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=_h;var vh=class extends So.NotificationType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolNotificationType=vh});var $c=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function HA(t){return t===!0||t===!1}It.boolean=HA;function B_(t){return typeof t=="string"||t instanceof String}It.string=B_;function VA(t){return typeof t=="number"||t instanceof Number}It.number=VA;function GA(t){return t instanceof Error}It.error=GA;function QA(t){return typeof t=="function"}It.func=QA;function U_(t){return Array.isArray(t)}It.array=U_;function KA(t){return U_(t)&&t.every(e=>B_(e))}It.stringArray=KA;function JA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=JA;function XA(t){return t!==null&&typeof t=="object"}It.objectLiteral=XA});var j_=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ImplementationRequest=void 0;var $_=pt(),W_;(function(t){t.method="textDocument/implementation",t.messageDirection=$_.MessageDirection.clientToServer,t.type=new $_.ProtocolRequestType(t.method)})(W_||(Wc.ImplementationRequest=W_={}))});var V_=I(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.TypeDefinitionRequest=void 0;var z_=pt(),H_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=z_.MessageDirection.clientToServer,t.type=new z_.ProtocolRequestType(t.method)})(H_||(jc.TypeDefinitionRequest=H_={}))});var K_=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.DidChangeWorkspaceFoldersNotification=xo.WorkspaceFoldersRequest=void 0;var zc=pt(),G_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(G_||(xo.WorkspaceFoldersRequest=G_={}));var Q_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolNotificationType(t.method)})(Q_||(xo.DidChangeWorkspaceFoldersNotification=Q_={}))});var Y_=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.ConfigurationRequest=void 0;var J_=pt(),X_;(function(t){t.method="workspace/configuration",t.messageDirection=J_.MessageDirection.serverToClient,t.type=new J_.ProtocolRequestType(t.method)})(X_||(Hc.ConfigurationRequest=X_={}))});var tv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.ColorPresentationRequest=Po.DocumentColorRequest=void 0;var Vc=pt(),Z_;(function(t){t.method="textDocument/documentColor",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(Z_||(Po.DocumentColorRequest=Z_={}));var ev;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(ev||(Po.ColorPresentationRequest=ev={}))});var iv=I(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.FoldingRangeRefreshRequest=Co.FoldingRangeRequest=void 0;var Gc=pt(),nv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolRequestType(t.method)})(nv||(Co.FoldingRangeRequest=nv={}));var rv;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType0(t.method)})(rv||(Co.FoldingRangeRefreshRequest=rv={}))});var av=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DeclarationRequest=void 0;var ov=pt(),sv;(function(t){t.method="textDocument/declaration",t.messageDirection=ov.MessageDirection.clientToServer,t.type=new ov.ProtocolRequestType(t.method)})(sv||(Qc.DeclarationRequest=sv={}))});var lv=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.SelectionRangeRequest=void 0;var cv=pt(),uv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=cv.MessageDirection.clientToServer,t.type=new cv.ProtocolRequestType(t.method)})(uv||(Kc.SelectionRangeRequest=uv={}))});var gv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.WorkDoneProgressCancelNotification=ai.WorkDoneProgressCreateRequest=ai.WorkDoneProgress=void 0;var YA=Ui(),Jc=pt(),dv;(function(t){t.type=new YA.ProgressType;function e(n){return n===t.type}t.is=e})(dv||(ai.WorkDoneProgress=dv={}));var fv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType(t.method)})(fv||(ai.WorkDoneProgressCreateRequest=fv={}));var hv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolNotificationType(t.method)})(hv||(ai.WorkDoneProgressCancelNotification=hv={}))});var _v=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.CallHierarchyOutgoingCallsRequest=ci.CallHierarchyIncomingCallsRequest=ci.CallHierarchyPrepareRequest=void 0;var ko=pt(),pv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(pv||(ci.CallHierarchyPrepareRequest=pv={}));var mv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(mv||(ci.CallHierarchyIncomingCallsRequest=mv={}));var bv;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(bv||(ci.CallHierarchyOutgoingCallsRequest=bv={}))});var Pv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Or=pt(),vv;(function(t){t.Relative="relative"})(vv||(gn.TokenFormat=vv={}));var Is;(function(t){t.method="textDocument/semanticTokens",t.type=new Or.RegistrationType(t.method)})(Is||(gn.SemanticTokensRegistrationType=Is={}));var yv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(yv||(gn.SemanticTokensRequest=yv={}));var wv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(wv||(gn.SemanticTokensDeltaRequest=wv={}));var Sv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(Sv||(gn.SemanticTokensRangeRequest=Sv={}));var xv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=Or.MessageDirection.serverToClient,t.type=new Or.ProtocolRequestType0(t.method)})(xv||(gn.SemanticTokensRefreshRequest=xv={}))});var Tv=I(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.ShowDocumentRequest=void 0;var Cv=pt(),kv;(function(t){t.method="window/showDocument",t.messageDirection=Cv.MessageDirection.serverToClient,t.type=new Cv.ProtocolRequestType(t.method)})(kv||(Xc.ShowDocumentRequest=kv={}))});var Fv=I(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.LinkedEditingRangeRequest=void 0;var Rv=pt(),Dv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Rv.MessageDirection.clientToServer,t.type=new Rv.ProtocolRequestType(t.method)})(Dv||(Yc.LinkedEditingRangeRequest=Dv={}))});var Lv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Ev;(function(t){t.file="file",t.folder="folder"})(Ev||(Qt.FileOperationPatternKind=Ev={}));var Iv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Iv||(Qt.WillCreateFilesRequest=Iv={}));var Mv;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Mv||(Qt.DidCreateFilesNotification=Mv={}));var Av;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Av||(Qt.WillRenameFilesRequest=Av={}));var Nv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Nv||(Qt.DidRenameFilesNotification=Nv={}));var qv;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(qv||(Qt.DidDeleteFilesNotification=qv={}));var Ov;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Ov||(Qt.WillDeleteFilesRequest=Ov={}))});var jv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.MonikerRequest=ui.MonikerKind=ui.UniquenessLevel=void 0;var Bv=pt(),Uv;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(Uv||(ui.UniquenessLevel=Uv={}));var $v;(function(t){t.$import="import",t.$export="export",t.local="local"})($v||(ui.MonikerKind=$v={}));var Wv;(function(t){t.method="textDocument/moniker",t.messageDirection=Bv.MessageDirection.clientToServer,t.type=new Bv.ProtocolRequestType(t.method)})(Wv||(ui.MonikerRequest=Wv={}))});var Gv=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.TypeHierarchySubtypesRequest=li.TypeHierarchySupertypesRequest=li.TypeHierarchyPrepareRequest=void 0;var To=pt(),zv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(zv||(li.TypeHierarchyPrepareRequest=zv={}));var Hv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Hv||(li.TypeHierarchySupertypesRequest=Hv={}));var Vv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Vv||(li.TypeHierarchySubtypesRequest=Vv={}))});var Jv=I(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.InlineValueRefreshRequest=Ro.InlineValueRequest=void 0;var Zc=pt(),Qv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Zc.MessageDirection.clientToServer,t.type=new Zc.ProtocolRequestType(t.method)})(Qv||(Ro.InlineValueRequest=Qv={}));var Kv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Zc.MessageDirection.serverToClient,t.type=new Zc.ProtocolRequestType0(t.method)})(Kv||(Ro.InlineValueRefreshRequest=Kv={}))});var ey=I(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.InlayHintRefreshRequest=di.InlayHintResolveRequest=di.InlayHintRequest=void 0;var Do=pt(),Xv;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Xv||(di.InlayHintRequest=Xv={}));var Yv;(function(t){t.method="inlayHint/resolve",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Yv||(di.InlayHintResolveRequest=Yv={}));var Zv;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(Zv||(di.InlayHintRefreshRequest=Zv={}))});var ay=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var sy=Ui(),ZA=$c(),Fo=pt(),ty;(function(t){function e(n){let i=n;return i&&ZA.boolean(i.retriggerRequest)}t.is=e})(ty||(Un.DiagnosticServerCancellationData=ty={}));var ny;(function(t){t.Full="full",t.Unchanged="unchanged"})(ny||(Un.DocumentDiagnosticReportKind=ny={}));var ry;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(ry||(Un.DocumentDiagnosticRequest=ry={}));var iy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(iy||(Un.WorkspaceDiagnosticRequest=iy={}));var oy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Fo.MessageDirection.serverToClient,t.type=new Fo.ProtocolRequestType0(t.method)})(oy||(Un.DiagnosticRefreshRequest=oy={}))});var gy=I(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.DidCloseNotebookDocumentNotification=yt.DidSaveNotebookDocumentNotification=yt.DidChangeNotebookDocumentNotification=yt.NotebookCellArrayChange=yt.DidOpenNotebookDocumentNotification=yt.NotebookDocumentSyncRegistrationType=yt.NotebookDocument=yt.NotebookCell=yt.ExecutionSummary=yt.NotebookCellKind=void 0;var Ms=Uc(),er=$c(),_r=pt(),yh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(yh||(yt.NotebookCellKind=yh={}));var wh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Ms.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(wh||(yt.ExecutionSummary=wh={}));var eu;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&yh.is(u.kind)&&Ms.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.InlineCompletionRequest=void 0;var py=pt(),my;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=py.MessageDirection.clientToServer,t.type=new py.ProtocolRequestType(t.method)})(my||(tu.InlineCompletionRequest=my={}))});var Fw=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),_y=Uc(),Lt=$c(),eN=j_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return eN.ImplementationRequest}});var tN=V_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return tN.TypeDefinitionRequest}});var kw=K_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return kw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return kw.DidChangeWorkspaceFoldersNotification}});var nN=Y_();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return nN.ConfigurationRequest}});var Tw=tv();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Tw.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Tw.ColorPresentationRequest}});var Rw=iv();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRefreshRequest}});var rN=av();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return rN.DeclarationRequest}});var iN=lv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return iN.SelectionRangeRequest}});var kh=gv();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return kh.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return kh.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return kh.WorkDoneProgressCancelNotification}});var Th=_v();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var Io=Pv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Io.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Io.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Io.SemanticTokensRegistrationType}});var oN=Tv();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return oN.ShowDocumentRequest}});var sN=Fv();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return sN.LinkedEditingRangeRequest}});var $i=Lv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return $i.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return $i.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return $i.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return $i.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return $i.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return $i.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return $i.WillDeleteFilesRequest}});var Rh=jv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Rh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Rh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Rh.MonikerRequest}});var Dh=Gv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySupertypesRequest}});var Dw=Jv();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Dw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Dw.InlineValueRefreshRequest}});var Fh=ey();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Fh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Fh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Fh.InlayHintRefreshRequest}});var As=ay();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return As.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return As.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return As.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return As.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return As.DiagnosticRefreshRequest}});var vr=gy();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return vr.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return vr.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return vr.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return vr.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return vr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return vr.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidCloseNotebookDocumentNotification}});var aN=by();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return aN.InlineCompletionRequest}});var Sh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(Sh||(w.TextDocumentFilter=Sh={}));var xh;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(xh||(w.NotebookDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||xh.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ph||(w.NotebookCellTextDocumentFilter=Ph={}));var Ch;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!Sh.is(i)&&!Ph.is(i))return!1;return!0}t.is=e})(Ch||(w.DocumentSelector=Ch={}));var vy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(vy||(w.RegistrationRequest=vy={}));var yy;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(yy||(w.UnregistrationRequest=yy={}));var wy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(wy||(w.ResourceOperationKind=wy={}));var Sy;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(Sy||(w.FailureHandlingKind=Sy={}));var xy;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(xy||(w.PositionEncodingKind=xy={}));var Py;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Py||(w.StaticRegistrationOptions=Py={}));var Cy;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Ch.is(i.documentSelector))}t.is=e})(Cy||(w.TextDocumentRegistrationOptions=Cy={}));var ky;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(ky||(w.WorkDoneProgressOptions=ky={}));var Ty;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ty||(w.InitializeRequest=Ty={}));var Ry;(function(t){t.unknownProtocolVersion=1})(Ry||(w.InitializeErrorCodes=Ry={}));var Dy;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Dy||(w.InitializedNotification=Dy={}));var Fy;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Fy||(w.ShutdownRequest=Fy={}));var Ey;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Ey||(w.ExitNotification=Ey={}));var Iy;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Iy||(w.DidChangeConfigurationNotification=Iy={}));var My;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(My||(w.MessageType=My={}));var Ay;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ay||(w.ShowMessageNotification=Ay={}));var Ny;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Ny||(w.ShowMessageRequest=Ny={}));var qy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(qy||(w.LogMessageNotification=qy={}));var Oy;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Oy||(w.TelemetryEventNotification=Oy={}));var Ly;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Ly||(w.TextDocumentSyncKind=Ly={}));var By;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(By||(w.DidOpenTextDocumentNotification=By={}));var Uy;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(Uy||(w.TextDocumentContentChangeEvent=Uy={}));var $y;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})($y||(w.DidChangeTextDocumentNotification=$y={}));var Wy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Wy||(w.DidCloseTextDocumentNotification=Wy={}));var jy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidSaveTextDocumentNotification=jy={}));var zy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(zy||(w.TextDocumentSaveReason=zy={}));var Hy;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Hy||(w.WillSaveTextDocumentNotification=Hy={}));var Vy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Vy||(w.WillSaveTextDocumentWaitUntilRequest=Vy={}));var Gy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Gy||(w.DidChangeWatchedFilesNotification=Gy={}));var Qy;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Qy||(w.FileChangeType=Qy={}));var Ky;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(_y.URI.is(i.baseUri)||_y.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Ky||(w.RelativePattern=Ky={}));var Jy;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Jy||(w.WatchKind=Jy={}));var Xy;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Xy||(w.PublishDiagnosticsNotification=Xy={}));var Yy;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Yy||(w.CompletionTriggerKind=Yy={}));var Zy;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Zy||(w.CompletionRequest=Zy={}));var ew;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ew||(w.CompletionResolveRequest=ew={}));var tw;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(tw||(w.HoverRequest=tw={}));var nw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(nw||(w.SignatureHelpTriggerKind=nw={}));var rw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(rw||(w.SignatureHelpRequest=rw={}));var iw;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.DefinitionRequest=iw={}));var ow;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.ReferencesRequest=ow={}));var sw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(sw||(w.DocumentHighlightRequest=sw={}));var aw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.DocumentSymbolRequest=aw={}));var cw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.CodeActionRequest=cw={}));var uw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.CodeActionResolveRequest=uw={}));var lw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.WorkspaceSymbolRequest=lw={}));var dw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.WorkspaceSymbolResolveRequest=dw={}));var fw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.CodeLensRequest=fw={}));var hw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeLensResolveRequest=hw={}));var gw;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(gw||(w.CodeLensRefreshRequest=gw={}));var pw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(pw||(w.DocumentLinkRequest=pw={}));var mw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.DocumentLinkResolveRequest=mw={}));var bw;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.DocumentFormattingRequest=bw={}));var _w;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(_w||(w.DocumentRangeFormattingRequest=_w={}));var vw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentRangesFormattingRequest=vw={}));var yw;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentOnTypeFormattingRequest=yw={}));var ww;(function(t){t.Identifier=1})(ww||(w.PrepareSupportDefaultBehavior=ww={}));var Sw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Sw||(w.RenameRequest=Sw={}));var xw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.PrepareRenameRequest=xw={}));var Pw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.ExecuteCommandRequest=Pw={}));var Cw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(Cw||(w.ApplyWorkspaceEditRequest=Cw={}))});var Iw=I(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.createProtocolConnection=void 0;var Ew=Ui();function cN(t,e,n,i){return Ew.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Ew.createMessageConnection)(t,e,n,i)}nu.createProtocolConnection=cN});var Aw=I(pn=>{"use strict";var uN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),ru=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&uN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;ru(Ui(),pn);ru(Uc(),pn);ru(pt(),pn);ru(Fw(),pn);var lN=Iw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return lN.createProtocolConnection}});var Mw;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Mw||(pn.LSPErrorCodes=Mw={}))});var kt=I(yr=>{"use strict";var dN=yr&&yr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Nw=yr&&yr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&dN(e,t,n)};Object.defineProperty(yr,"__esModule",{value:!0});yr.createProtocolConnection=void 0;var fN=gh();Nw(gh(),yr);Nw(Aw(),yr);function hN(t,e,n,i){return(0,fN.createMessageConnection)(t,e,n,i)}yr.createProtocolConnection=hN});var Eh=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var Ns=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},qs=class t extends Ns{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};qs._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];qs._timeHighBits=["8","9","a","b"];$n.empty=new Ns("00000000-0000-0000-0000-000000000000");function qw(){return new qs}$n.v4=qw;var gN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ow(t){return gN.test(t)}$n.isUUID=Ow;function pN(t){if(!Ow(t))throw new Error("invalid uuid");return new Ns(t)}$n.parse=pN;function mN(){return qw().asHex()}$n.generateUuid=mN});var Lw=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.attachPartialResult=hi.ProgressFeature=hi.attachWorkDone=void 0;var fi=kt(),bN=Eh(),Wi=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,{kind:"end"})}};Wi.Instances=new Map;var iu=class extends Wi{constructor(e,n){super(e,n),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Os=class{constructor(){}begin(){}report(){}done(){}},ou=class extends Os{constructor(){super(),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function _N(t,e){if(e===void 0||e.workDoneToken===void 0)return new Os;let n=e.workDoneToken;return delete e.workDoneToken,new Wi(t,n)}hi.attachWorkDone=_N;var vN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(fi.WorkDoneProgressCancelNotification.type,n=>{let i=Wi.Instances.get(n.token);(i instanceof iu||i instanceof ou)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new Os:new Wi(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,bN.generateUuid)();return this.connection.sendRequest(fi.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new iu(this.connection,e))}else return Promise.resolve(new ou)}};hi.ProgressFeature=vN;var Ih;(function(t){t.type=new fi.ProgressType})(Ih||(Ih={}));var Mh=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Ih.type,this._token,e)}};function yN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Mh(t,n)}hi.attachPartialResult=yN});var Bw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.ConfigurationFeature=void 0;var wN=kt(),SN=bc(),xN=t=>class extends t{getConfiguration(e){return e?SN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(wN.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};su.ConfigurationFeature=xN});var Uw=I(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.WorkspaceFoldersFeature=void 0;var au=kt(),PN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new au.Emitter,this.connection.onNotification(au.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(au.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(au.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};cu.WorkspaceFoldersFeature=PN});var $w=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.CallHierarchyFeature=void 0;var Ah=kt(),CN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Ah.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Ah.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Ah.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};uu.CallHierarchyFeature=CN});var qh=I(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.SemanticTokensBuilder=gi.SemanticTokensDiff=gi.SemanticTokensFeature=void 0;var lu=kt(),kN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(lu.SemanticTokensRefreshRequest.type),on:e=>{let n=lu.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=lu.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=lu.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gi.SemanticTokensFeature=kN;var du=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new du(this._prevData,this._data).computeDiff()}:this.build()}};gi.SemanticTokensBuilder=Nh});var Ww=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.ShowDocumentFeature=void 0;var TN=kt(),RN=t=>class extends t{showDocument(e){return this.connection.sendRequest(TN.ShowDocumentRequest.type,e)}};fu.ShowDocumentFeature=RN});var jw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.FileOperationsFeature=void 0;var Mo=kt(),DN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Mo.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Mo.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Mo.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Mo.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Mo.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Mo.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};hu.FileOperationsFeature=DN});var zw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.LinkedEditingRangeFeature=void 0;var FN=kt(),EN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(FN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};gu.LinkedEditingRangeFeature=EN});var Hw=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.TypeHierarchyFeature=void 0;var Oh=kt(),IN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};pu.TypeHierarchyFeature=IN});var Gw=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.InlineValueFeature=void 0;var Vw=kt(),MN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Vw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Vw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};mu.InlineValueFeature=MN});var Kw=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.FoldingRangeFeature=void 0;var Qw=kt(),AN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Qw.FoldingRangeRefreshRequest.type),on:e=>{let n=Qw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};bu.FoldingRangeFeature=AN});var Jw=I(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.InlayHintFeature=void 0;var Lh=kt(),NN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Lh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Lh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Lh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};_u.InlayHintFeature=NN});var Xw=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.DiagnosticFeature=void 0;var Ls=kt(),qN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Ls.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Ls.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Ls.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.WorkspaceDiagnosticRequest.partialResult,n)))}}};vu.DiagnosticFeature=qN});var Uh=I(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.TextDocuments=void 0;var ji=kt(),Bh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new ji.Emitter,this._onDidOpen=new ji.Emitter,this._onDidClose=new ji.Emitter,this._onDidSave=new ji.Emitter,this._onWillSave=new ji.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=ji.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),ji.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};yu.TextDocuments=Bh});var Wh=I(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.NotebookDocuments=Ao.NotebookSyncFeature=void 0;var Wn=kt(),Yw=Uh(),ON=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Ao.NotebookSyncFeature=ON;var wu=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};wu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $h=class{constructor(e){e instanceof Yw.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new Yw.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new wu,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],v=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),v.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of v)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Ao.NotebookDocuments=$h});var Zw=I(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.MonikerFeature=void 0;var LN=kt(),BN=t=>class extends t{get moniker(){return{on:e=>{let n=LN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Su.MonikerFeature=BN});var Qh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=bc(),zh=Eh(),we=Lw(),UN=Bw(),$N=Uw(),WN=$w(),jN=qh(),zN=Ww(),HN=jw(),VN=zw(),GN=Hw(),QN=Gw(),KN=Kw(),JN=Jw(),XN=Xw(),YN=Wh(),ZN=Zw();function jh(t){if(t!==null)return t}var Hh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Hh;var xu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Vh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}},eS=(0,zN.ShowDocumentFeature)((0,we.ProgressFeature)(Vh)),tS;(function(t){function e(){return new Pu}t.create=e})(tS||($e.BulkRegistration=tS={}));var Pu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=zh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},nS;(function(t){function e(){return new Bs(void 0,[])}t.create=e})(nS||($e.BulkUnregistration=nS={}));var Bs=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Cu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof Pu?this.registerMany(e):e instanceof Bs?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=zh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=zh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Bs(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},rS=(0,HN.FileOperationsFeature)((0,$N.WorkspaceFoldersFeature)((0,UN.ConfigurationFeature)(Gh))),ku=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Tu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Ru=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Ru;var iS=(0,KN.FoldingRangeFeature)((0,ZN.MonikerFeature)((0,XN.DiagnosticFeature)((0,JN.InlayHintFeature)((0,QN.InlineValueFeature)((0,GN.TypeHierarchyFeature)((0,VN.LinkedEditingRangeFeature)((0,jN.SemanticTokensFeature)((0,WN.CallHierarchyFeature)(Ru))))))))),Du=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Du;var oS=(0,YN.NotebookSyncFeature)(Du);function sS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=sS;function aS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=aS;function cS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=cS;function uS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=uS;function lS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=hS;function eq(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,sS),tracer:n(t.tracer,e.tracer,cS),telemetry:n(t.telemetry,e.telemetry,aS),client:n(t.client,e.client,uS),window:n(t.window,e.window,lS),workspace:n(t.workspace,e.workspace,dS),languages:n(t.languages,e.languages,fS),notebooks:n(t.notebooks,e.notebooks,hS)}}$e.combineFeatures=eq;function tq(t,e,n){let i=n&&n.console?new(n.console(xu)):new xu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(ku)):new ku,u=n&&n.telemetry?new(n.telemetry(Tu)):new Tu,d=n&&n.client?new(n.client(Cu)):new Cu,f=n&&n.window?new(n.window(eS)):new eS,m=n&&n.workspace?new(n.workspace(rS)):new rS,v=n&&n.languages?new(n.languages(iS)):new iS,x=n&&n.notebooks?new(n.notebooks(oS)):new oS,D=[i,c,u,d,f,m,v,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return v},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=tq});var gS=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var nq=require("url"),tr=require("path"),Kh=require("fs"),Zh=require("child_process");function rq(t){let e=nq.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=rq;function Jh(){return process.platform==="win32"}function Fu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(v=>m[v]=f[v]),e&&Kh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let v=(0,Zh.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(v.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}v.on("error",D=>{d(D)}),v.on("message",D=>{D.c==="r"&&(v.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};v.send(x)}catch(v){d(v)}})}mn.resolve=Fu;function Xh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Jh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,Zh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Jh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Xh;function iq(t){let e="yarn",n={encoding:"utf8"};Jh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,Zh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=iq;var Yh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Kh.existsSync(__filename.toUpperCase())||!Kh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Yh||(mn.FileSystem=Yh={}));function oq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Fu(e,n,n,i).then(s=>Yh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Fu(e,Xh(i),t,i))):Fu(e,Xh(i),t,i)}mn.resolveModulePath=oq});var eg=I((Iz,pS)=>{"use strict";pS.exports=kt()});var mS=I(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.InlineCompletionFeature=void 0;var sq=kt(),aq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(sq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Eu.InlineCompletionFeature=aq});var vS=I(Kt=>{"use strict";var cq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),_S=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var uq=qh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return uq.SemanticTokensBuilder}});var lq=mS();_S(kt(),Kt);var dq=Uh();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return dq.TextDocuments}});var fq=Wh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return fq.NotebookDocuments}});_S(Qh(),Kt);var bS;(function(t){t.all={__brand:"features",languages:lq.InlineCompletionFeature}})(bS||(Kt.ProposedFeatures=bS={}))});var ng=I(zn=>{"use strict";var hq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),xS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&hq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var yS=require("node:util"),tg=bc(),gq=Qh(),Us=gS(),zi=eg();xS(eg(),zn);xS(vS(),zn);var wS;(function(t){t.uriToFilePath=Us.uriToFilePath,t.resolveGlobalNodePath=Us.resolveGlobalNodePath,t.resolveGlobalYarnPath=Us.resolveGlobalYarnPath,t.resolve=Us.resolve,t.resolveModulePath=Us.resolveModulePath})(wS||(zn.Files=wS={}));var SS;function Iu(){if(SS!==void 0)try{SS.end()}catch{}}var No=!1,PS;function pq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(PS=setInterval(()=>{try{process.kill(i,0)}catch{Iu(),process.exit(No?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;tg.number(e)&&PS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(No?0:1)}},3e3)},get shutdownReceived(){return No},set shutdownReceived(t){No=t},exit:t=>{Iu(),process.exit(t)}};function bq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),zi.ConnectionStrategy.is(t)||zi.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),_q(c,u,d,s)}zn.createConnection=bq;function _q(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,v=process.argv.slice(2);for(let x=0;x{Iu(),process.exit(No?0:1)}),f.on("close",()=>{Iu(),process.exit(No?0:1)})}let d=f=>{let m=(0,zi.createProtocolConnection)(t,e,f,n);return s&&vq(f),m};return(0,gq.createConnection)(d,mq,i)}function vq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,yS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,yS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} -${c}`)},console.warn=function(...s){t.warn(e(s))}}});var kS=I((Oz,CS)=>{"use strict";CS.exports=ng()});var IS=I((Yz,ES)=>{"use strict";function Cq(){this.__data__=[],this.size=0}ES.exports=Cq});var sg=I((Zz,MS)=>{"use strict";function kq(t,e){return t===e||t!==t&&e!==e}MS.exports=kq});var Ws=I((eH,AS)=>{"use strict";var Tq=sg();function Rq(t,e){for(var n=t.length;n--;)if(Tq(t[n][0],e))return n;return-1}AS.exports=Rq});var qS=I((tH,NS)=>{"use strict";var Dq=Ws(),Fq=Array.prototype,Eq=Fq.splice;function Iq(t){var e=this.__data__,n=Dq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Eq.call(e,n,1),--this.size,!0}NS.exports=Iq});var LS=I((nH,OS)=>{"use strict";var Mq=Ws();function Aq(t){var e=this.__data__,n=Mq(e,t);return n<0?void 0:e[n][1]}OS.exports=Aq});var US=I((rH,BS)=>{"use strict";var Nq=Ws();function qq(t){return Nq(this.__data__,t)>-1}BS.exports=qq});var WS=I((iH,$S)=>{"use strict";var Oq=Ws();function Lq(t,e){var n=this.__data__,i=Oq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}$S.exports=Lq});var js=I((oH,jS)=>{"use strict";var Bq=IS(),Uq=qS(),$q=LS(),Wq=US(),jq=WS();function qo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var zq=js();function Hq(){this.__data__=new zq,this.size=0}zS.exports=Hq});var GS=I((aH,VS)=>{"use strict";function Vq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}VS.exports=Vq});var KS=I((cH,QS)=>{"use strict";function Gq(t){return this.__data__.get(t)}QS.exports=Gq});var XS=I((uH,JS)=>{"use strict";function Qq(t){return this.__data__.has(t)}JS.exports=Qq});var ag=I((lH,YS)=>{"use strict";var Kq=typeof global=="object"&&global&&global.Object===Object&&global;YS.exports=Kq});var nr=I((dH,ZS)=>{"use strict";var Jq=ag(),Xq=typeof self=="object"&&self&&self.Object===Object&&self,Yq=Jq||Xq||Function("return this")();ZS.exports=Yq});var Ou=I((fH,ex)=>{"use strict";var Zq=nr(),e1=Zq.Symbol;ex.exports=e1});var ix=I((hH,rx)=>{"use strict";var tx=Ou(),nx=Object.prototype,t1=nx.hasOwnProperty,n1=nx.toString,zs=tx?tx.toStringTag:void 0;function r1(t){var e=t1.call(t,zs),n=t[zs];try{t[zs]=void 0;var i=!0}catch{}var s=n1.call(t);return i&&(e?t[zs]=n:delete t[zs]),s}rx.exports=r1});var sx=I((gH,ox)=>{"use strict";var i1=Object.prototype,o1=i1.toString;function s1(t){return o1.call(t)}ox.exports=s1});var Hs=I((pH,ux)=>{"use strict";var ax=Ou(),a1=ix(),c1=sx(),u1="[object Null]",l1="[object Undefined]",cx=ax?ax.toStringTag:void 0;function d1(t){return t==null?t===void 0?l1:u1:cx&&cx in Object(t)?a1(t):c1(t)}ux.exports=d1});var Oo=I((mH,lx)=>{"use strict";function f1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}lx.exports=f1});var cg=I((bH,dx)=>{"use strict";var h1=Hs(),g1=Oo(),p1="[object AsyncFunction]",m1="[object Function]",b1="[object GeneratorFunction]",_1="[object Proxy]";function v1(t){if(!g1(t))return!1;var e=h1(t);return e==m1||e==b1||e==p1||e==_1}dx.exports=v1});var hx=I((_H,fx)=>{"use strict";var y1=nr(),w1=y1["__core-js_shared__"];fx.exports=w1});var mx=I((vH,px)=>{"use strict";var ug=hx(),gx=function(){var t=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function S1(t){return!!gx&&gx in t}px.exports=S1});var lg=I((yH,bx)=>{"use strict";var x1=Function.prototype,P1=x1.toString;function C1(t){if(t!=null){try{return P1.call(t)}catch{}try{return t+""}catch{}}return""}bx.exports=C1});var vx=I((wH,_x)=>{"use strict";var k1=cg(),T1=mx(),R1=Oo(),D1=lg(),F1=/[\\^$.*+?()[\]{}|]/g,E1=/^\[object .+?Constructor\]$/,I1=Function.prototype,M1=Object.prototype,A1=I1.toString,N1=M1.hasOwnProperty,q1=RegExp("^"+A1.call(N1).replace(F1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O1(t){if(!R1(t)||T1(t))return!1;var e=k1(t)?q1:E1;return e.test(D1(t))}_x.exports=O1});var wx=I((SH,yx)=>{"use strict";function L1(t,e){return t?.[e]}yx.exports=L1});var mi=I((xH,Sx)=>{"use strict";var B1=vx(),U1=wx();function $1(t,e){var n=U1(t,e);return B1(n)?n:void 0}Sx.exports=$1});var Lu=I((PH,xx)=>{"use strict";var W1=mi(),j1=nr(),z1=W1(j1,"Map");xx.exports=z1});var Vs=I((CH,Px)=>{"use strict";var H1=mi(),V1=H1(Object,"create");Px.exports=V1});var Tx=I((kH,kx)=>{"use strict";var Cx=Vs();function G1(){this.__data__=Cx?Cx(null):{},this.size=0}kx.exports=G1});var Dx=I((TH,Rx)=>{"use strict";function Q1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Rx.exports=Q1});var Ex=I((RH,Fx)=>{"use strict";var K1=Vs(),J1="__lodash_hash_undefined__",X1=Object.prototype,Y1=X1.hasOwnProperty;function Z1(t){var e=this.__data__;if(K1){var n=e[t];return n===J1?void 0:n}return Y1.call(e,t)?e[t]:void 0}Fx.exports=Z1});var Mx=I((DH,Ix)=>{"use strict";var eO=Vs(),tO=Object.prototype,nO=tO.hasOwnProperty;function rO(t){var e=this.__data__;return eO?e[t]!==void 0:nO.call(e,t)}Ix.exports=rO});var Nx=I((FH,Ax)=>{"use strict";var iO=Vs(),oO="__lodash_hash_undefined__";function sO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=iO&&e===void 0?oO:e,this}Ax.exports=sO});var Ox=I((EH,qx)=>{"use strict";var aO=Tx(),cO=Dx(),uO=Ex(),lO=Mx(),dO=Nx();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Lx=Ox(),fO=js(),hO=Lu();function gO(){this.size=0,this.__data__={hash:new Lx,map:new(hO||fO),string:new Lx}}Bx.exports=gO});var Wx=I((MH,$x)=>{"use strict";function pO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}$x.exports=pO});var Gs=I((AH,jx)=>{"use strict";var mO=Wx();function bO(t,e){var n=t.__data__;return mO(e)?n[typeof e=="string"?"string":"hash"]:n.map}jx.exports=bO});var Hx=I((NH,zx)=>{"use strict";var _O=Gs();function vO(t){var e=_O(this,t).delete(t);return this.size-=e?1:0,e}zx.exports=vO});var Gx=I((qH,Vx)=>{"use strict";var yO=Gs();function wO(t){return yO(this,t).get(t)}Vx.exports=wO});var Kx=I((OH,Qx)=>{"use strict";var SO=Gs();function xO(t){return SO(this,t).has(t)}Qx.exports=xO});var Xx=I((LH,Jx)=>{"use strict";var PO=Gs();function CO(t,e){var n=PO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}Jx.exports=CO});var Zx=I((BH,Yx)=>{"use strict";var kO=Ux(),TO=Hx(),RO=Gx(),DO=Kx(),FO=Xx();function Bo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var EO=js(),IO=Lu(),MO=Zx(),AO=200;function NO(t,e){var n=this.__data__;if(n instanceof EO){var i=n.__data__;if(!IO||i.length{"use strict";var qO=js(),OO=HS(),LO=GS(),BO=KS(),UO=XS(),$O=tP();function Uo(t){var e=this.__data__=new qO(t);this.size=e.size}Uo.prototype.clear=OO;Uo.prototype.delete=LO;Uo.prototype.get=BO;Uo.prototype.has=UO;Uo.prototype.set=$O;nP.exports=Uo});var oP=I((WH,iP)=>{"use strict";function WO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var jO=mi(),zO=function(){try{var t=jO(Object,"defineProperty");return t({},"",{}),t}catch{}}();sP.exports=zO});var dg=I((zH,uP)=>{"use strict";var cP=aP();function HO(t,e,n){e=="__proto__"&&cP?cP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}uP.exports=HO});var fg=I((HH,lP)=>{"use strict";var VO=dg(),GO=sg(),QO=Object.prototype,KO=QO.hasOwnProperty;function JO(t,e,n){var i=t[e];(!(KO.call(t,e)&&GO(i,n))||n===void 0&&!(e in t))&&VO(t,e,n)}lP.exports=JO});var Qs=I((VH,dP)=>{"use strict";var XO=fg(),YO=dg();function ZO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function eL(t,e){for(var n=-1,i=Array(t);++n{"use strict";function tL(t){return t!=null&&typeof t=="object"}gP.exports=tL});var mP=I((KH,pP)=>{"use strict";var nL=Hs(),rL=$o(),iL="[object Arguments]";function oL(t){return rL(t)&&nL(t)==iL}pP.exports=oL});var yP=I((JH,vP)=>{"use strict";var bP=mP(),sL=$o(),_P=Object.prototype,aL=_P.hasOwnProperty,cL=_P.propertyIsEnumerable,uL=bP(function(){return arguments}())?bP:function(t){return sL(t)&&aL.call(t,"callee")&&!cL.call(t,"callee")};vP.exports=uL});var Bu=I((XH,wP)=>{"use strict";var lL=Array.isArray;wP.exports=lL});var xP=I((YH,SP)=>{"use strict";function dL(){return!1}SP.exports=dL});var hg=I((Ks,Wo)=>{"use strict";var fL=nr(),hL=xP(),kP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,PP=kP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,gL=PP&&PP.exports===kP,CP=gL?fL.Buffer:void 0,pL=CP?CP.isBuffer:void 0,mL=pL||hL;Wo.exports=mL});var RP=I((ZH,TP)=>{"use strict";var bL=9007199254740991,_L=/^(?:0|[1-9]\d*)$/;function vL(t,e){var n=typeof t;return e=e??bL,!!e&&(n=="number"||n!="symbol"&&_L.test(t))&&t>-1&&t%1==0&&t{"use strict";var yL=9007199254740991;function wL(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=yL}DP.exports=wL});var EP=I((tV,FP)=>{"use strict";var SL=Hs(),xL=gg(),PL=$o(),CL="[object Arguments]",kL="[object Array]",TL="[object Boolean]",RL="[object Date]",DL="[object Error]",FL="[object Function]",EL="[object Map]",IL="[object Number]",ML="[object Object]",AL="[object RegExp]",NL="[object Set]",qL="[object String]",OL="[object WeakMap]",LL="[object ArrayBuffer]",BL="[object DataView]",UL="[object Float32Array]",$L="[object Float64Array]",WL="[object Int8Array]",jL="[object Int16Array]",zL="[object Int32Array]",HL="[object Uint8Array]",VL="[object Uint8ClampedArray]",GL="[object Uint16Array]",QL="[object Uint32Array]",lt={};lt[UL]=lt[$L]=lt[WL]=lt[jL]=lt[zL]=lt[HL]=lt[VL]=lt[GL]=lt[QL]=!0;lt[CL]=lt[kL]=lt[LL]=lt[TL]=lt[BL]=lt[RL]=lt[DL]=lt[FL]=lt[EL]=lt[IL]=lt[ML]=lt[AL]=lt[NL]=lt[qL]=lt[OL]=!1;function KL(t){return PL(t)&&xL(t.length)&&!!lt[SL(t)]}FP.exports=KL});var Uu=I((nV,IP)=>{"use strict";function JL(t){return function(e){return t(e)}}IP.exports=JL});var $u=I((Js,jo)=>{"use strict";var XL=ag(),MP=typeof Js=="object"&&Js&&!Js.nodeType&&Js,Xs=MP&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,YL=Xs&&Xs.exports===MP,pg=YL&&XL.process,ZL=function(){try{var t=Xs&&Xs.require&&Xs.require("util").types;return t||pg&&pg.binding&&pg.binding("util")}catch{}}();jo.exports=ZL});var OP=I((rV,qP)=>{"use strict";var eB=EP(),tB=Uu(),AP=$u(),NP=AP&&AP.isTypedArray,nB=NP?tB(NP):eB;qP.exports=nB});var mg=I((iV,LP)=>{"use strict";var rB=hP(),iB=yP(),oB=Bu(),sB=hg(),aB=RP(),cB=OP(),uB=Object.prototype,lB=uB.hasOwnProperty;function dB(t,e){var n=oB(t),i=!n&&iB(t),s=!n&&!i&&sB(t),c=!n&&!i&&!s&&cB(t),u=n||i||s||c,d=u?rB(t.length,String):[],f=d.length;for(var m in t)(e||lB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||aB(m,f)))&&d.push(m);return d}LP.exports=dB});var Wu=I((oV,BP)=>{"use strict";var fB=Object.prototype;function hB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||fB;return t===n}BP.exports=hB});var bg=I((sV,UP)=>{"use strict";function gB(t,e){return function(n){return t(e(n))}}UP.exports=gB});var WP=I((aV,$P)=>{"use strict";var pB=bg(),mB=pB(Object.keys,Object);$P.exports=mB});var zP=I((cV,jP)=>{"use strict";var bB=Wu(),_B=WP(),vB=Object.prototype,yB=vB.hasOwnProperty;function wB(t){if(!bB(t))return _B(t);var e=[];for(var n in Object(t))yB.call(t,n)&&n!="constructor"&&e.push(n);return e}jP.exports=wB});var _g=I((uV,HP)=>{"use strict";var SB=cg(),xB=gg();function PB(t){return t!=null&&xB(t.length)&&!SB(t)}HP.exports=PB});var ju=I((lV,VP)=>{"use strict";var CB=mg(),kB=zP(),TB=_g();function RB(t){return TB(t)?CB(t):kB(t)}VP.exports=RB});var QP=I((dV,GP)=>{"use strict";var DB=Qs(),FB=ju();function EB(t,e){return t&&DB(e,FB(e),t)}GP.exports=EB});var JP=I((fV,KP)=>{"use strict";function IB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}KP.exports=IB});var YP=I((hV,XP)=>{"use strict";var MB=Oo(),AB=Wu(),NB=JP(),qB=Object.prototype,OB=qB.hasOwnProperty;function LB(t){if(!MB(t))return NB(t);var e=AB(t),n=[];for(var i in t)i=="constructor"&&(e||!OB.call(t,i))||n.push(i);return n}XP.exports=LB});var zu=I((gV,ZP)=>{"use strict";var BB=mg(),UB=YP(),$B=_g();function WB(t){return $B(t)?BB(t,!0):UB(t)}ZP.exports=WB});var tC=I((pV,eC)=>{"use strict";var jB=Qs(),zB=zu();function HB(t,e){return t&&jB(e,zB(e),t)}eC.exports=HB});var sC=I((Ys,zo)=>{"use strict";var VB=nr(),oC=typeof Ys=="object"&&Ys&&!Ys.nodeType&&Ys,nC=oC&&typeof zo=="object"&&zo&&!zo.nodeType&&zo,GB=nC&&nC.exports===oC,rC=GB?VB.Buffer:void 0,iC=rC?rC.allocUnsafe:void 0;function QB(t,e){if(e)return t.slice();var n=t.length,i=iC?iC(n):new t.constructor(n);return t.copy(i),i}zo.exports=QB});var cC=I((mV,aC)=>{"use strict";function KB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function JB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function XB(){return[]}dC.exports=XB});var Hu=I((vV,hC)=>{"use strict";var YB=lC(),ZB=vg(),eU=Object.prototype,tU=eU.propertyIsEnumerable,fC=Object.getOwnPropertySymbols,nU=fC?function(t){return t==null?[]:(t=Object(t),YB(fC(t),function(e){return tU.call(t,e)}))}:ZB;hC.exports=nU});var pC=I((yV,gC)=>{"use strict";var rU=Qs(),iU=Hu();function oU(t,e){return rU(t,iU(t),e)}gC.exports=oU});var yg=I((wV,mC)=>{"use strict";function sU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var aU=bg(),cU=aU(Object.getPrototypeOf,Object);bC.exports=cU});var Sg=I((xV,_C)=>{"use strict";var uU=yg(),lU=wg(),dU=Hu(),fU=vg(),hU=Object.getOwnPropertySymbols,gU=hU?function(t){for(var e=[];t;)uU(e,dU(t)),t=lU(t);return e}:fU;_C.exports=gU});var yC=I((PV,vC)=>{"use strict";var pU=Qs(),mU=Sg();function bU(t,e){return pU(t,mU(t),e)}vC.exports=bU});var xg=I((CV,wC)=>{"use strict";var _U=yg(),vU=Bu();function yU(t,e,n){var i=e(t);return vU(t)?i:_U(i,n(t))}wC.exports=yU});var xC=I((kV,SC)=>{"use strict";var wU=xg(),SU=Hu(),xU=ju();function PU(t){return wU(t,xU,SU)}SC.exports=PU});var CC=I((TV,PC)=>{"use strict";var CU=xg(),kU=Sg(),TU=zu();function RU(t){return CU(t,TU,kU)}PC.exports=RU});var TC=I((RV,kC)=>{"use strict";var DU=mi(),FU=nr(),EU=DU(FU,"DataView");kC.exports=EU});var DC=I((DV,RC)=>{"use strict";var IU=mi(),MU=nr(),AU=IU(MU,"Promise");RC.exports=AU});var EC=I((FV,FC)=>{"use strict";var NU=mi(),qU=nr(),OU=NU(qU,"Set");FC.exports=OU});var MC=I((EV,IC)=>{"use strict";var LU=mi(),BU=nr(),UU=LU(BU,"WeakMap");IC.exports=UU});var Vu=I((IV,UC)=>{"use strict";var Pg=TC(),Cg=Lu(),kg=DC(),Tg=EC(),Rg=MC(),BC=Hs(),Ho=lg(),AC="[object Map]",$U="[object Object]",NC="[object Promise]",qC="[object Set]",OC="[object WeakMap]",LC="[object DataView]",WU=Ho(Pg),jU=Ho(Cg),zU=Ho(kg),HU=Ho(Tg),VU=Ho(Rg),Hi=BC;(Pg&&Hi(new Pg(new ArrayBuffer(1)))!=LC||Cg&&Hi(new Cg)!=AC||kg&&Hi(kg.resolve())!=NC||Tg&&Hi(new Tg)!=qC||Rg&&Hi(new Rg)!=OC)&&(Hi=function(t){var e=BC(t),n=e==$U?t.constructor:void 0,i=n?Ho(n):"";if(i)switch(i){case WU:return LC;case jU:return AC;case zU:return NC;case HU:return qC;case VU:return OC}return e});UC.exports=Hi});var WC=I((MV,$C)=>{"use strict";var GU=Object.prototype,QU=GU.hasOwnProperty;function KU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&QU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}$C.exports=KU});var zC=I((AV,jC)=>{"use strict";var JU=nr(),XU=JU.Uint8Array;jC.exports=XU});var Gu=I((NV,VC)=>{"use strict";var HC=zC();function YU(t){var e=new t.constructor(t.byteLength);return new HC(e).set(new HC(t)),e}VC.exports=YU});var QC=I((qV,GC)=>{"use strict";var ZU=Gu();function e$(t,e){var n=e?ZU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}GC.exports=e$});var JC=I((OV,KC)=>{"use strict";var t$=/\w*$/;function n$(t){var e=new t.constructor(t.source,t$.exec(t));return e.lastIndex=t.lastIndex,e}KC.exports=n$});var tk=I((LV,ek)=>{"use strict";var XC=Ou(),YC=XC?XC.prototype:void 0,ZC=YC?YC.valueOf:void 0;function r$(t){return ZC?Object(ZC.call(t)):{}}ek.exports=r$});var rk=I((BV,nk)=>{"use strict";var i$=Gu();function o$(t,e){var n=e?i$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}nk.exports=o$});var ok=I((UV,ik)=>{"use strict";var s$=Gu(),a$=QC(),c$=JC(),u$=tk(),l$=rk(),d$="[object Boolean]",f$="[object Date]",h$="[object Map]",g$="[object Number]",p$="[object RegExp]",m$="[object Set]",b$="[object String]",_$="[object Symbol]",v$="[object ArrayBuffer]",y$="[object DataView]",w$="[object Float32Array]",S$="[object Float64Array]",x$="[object Int8Array]",P$="[object Int16Array]",C$="[object Int32Array]",k$="[object Uint8Array]",T$="[object Uint8ClampedArray]",R$="[object Uint16Array]",D$="[object Uint32Array]";function F$(t,e,n){var i=t.constructor;switch(e){case v$:return s$(t);case d$:case f$:return new i(+t);case y$:return a$(t,n);case w$:case S$:case x$:case P$:case C$:case k$:case T$:case R$:case D$:return l$(t,n);case h$:return new i;case g$:case b$:return new i(t);case p$:return c$(t);case m$:return new i;case _$:return u$(t)}}ik.exports=F$});var ck=I(($V,ak)=>{"use strict";var E$=Oo(),sk=Object.create,I$=function(){function t(){}return function(e){if(!E$(e))return{};if(sk)return sk(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();ak.exports=I$});var lk=I((WV,uk)=>{"use strict";var M$=ck(),A$=wg(),N$=Wu();function q$(t){return typeof t.constructor=="function"&&!N$(t)?M$(A$(t)):{}}uk.exports=q$});var fk=I((jV,dk)=>{"use strict";var O$=Vu(),L$=$o(),B$="[object Map]";function U$(t){return L$(t)&&O$(t)==B$}dk.exports=U$});var mk=I((zV,pk)=>{"use strict";var $$=fk(),W$=Uu(),hk=$u(),gk=hk&&hk.isMap,j$=gk?W$(gk):$$;pk.exports=j$});var _k=I((HV,bk)=>{"use strict";var z$=Vu(),H$=$o(),V$="[object Set]";function G$(t){return H$(t)&&z$(t)==V$}bk.exports=G$});var Sk=I((VV,wk)=>{"use strict";var Q$=_k(),K$=Uu(),vk=$u(),yk=vk&&vk.isSet,J$=yk?K$(yk):Q$;wk.exports=J$});var Tk=I((GV,kk)=>{"use strict";var X$=rP(),Y$=oP(),Z$=fg(),eW=QP(),tW=tC(),nW=sC(),rW=cC(),iW=pC(),oW=yC(),sW=xC(),aW=CC(),cW=Vu(),uW=WC(),lW=ok(),dW=lk(),fW=Bu(),hW=hg(),gW=mk(),pW=Oo(),mW=Sk(),bW=ju(),_W=zu(),vW=1,yW=2,wW=4,xk="[object Arguments]",SW="[object Array]",xW="[object Boolean]",PW="[object Date]",CW="[object Error]",Pk="[object Function]",kW="[object GeneratorFunction]",TW="[object Map]",RW="[object Number]",Ck="[object Object]",DW="[object RegExp]",FW="[object Set]",EW="[object String]",IW="[object Symbol]",MW="[object WeakMap]",AW="[object ArrayBuffer]",NW="[object DataView]",qW="[object Float32Array]",OW="[object Float64Array]",LW="[object Int8Array]",BW="[object Int16Array]",UW="[object Int32Array]",$W="[object Uint8Array]",WW="[object Uint8ClampedArray]",jW="[object Uint16Array]",zW="[object Uint32Array]",it={};it[xk]=it[SW]=it[AW]=it[NW]=it[xW]=it[PW]=it[qW]=it[OW]=it[LW]=it[BW]=it[UW]=it[TW]=it[RW]=it[Ck]=it[DW]=it[FW]=it[EW]=it[IW]=it[$W]=it[WW]=it[jW]=it[zW]=!0;it[CW]=it[Pk]=it[MW]=!1;function Qu(t,e,n,i,s,c){var u,d=e&vW,f=e&yW,m=e&wW;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!pW(t))return t;var v=fW(t);if(v){if(u=uW(t),!d)return rW(t,u)}else{var x=cW(t),D=x==Pk||x==kW;if(hW(t))return nW(t,d);if(x==Ck||x==xk||D&&!s){if(u=f||D?{}:dW(t),!d)return f?oW(t,tW(u,t)):iW(t,eW(u,t))}else{if(!it[x])return s?t:{};u=lW(t,x,d)}}c||(c=new X$);var N=c.get(t);if(N)return N;c.set(t,u),mW(t)?t.forEach(function(B){u.add(Qu(B,e,n,B,t,c))}):gW(t)&&t.forEach(function(B,K){u.set(K,Qu(B,e,n,K,t,c))});var A=m?f?aW:sW:f?_W:bW,L=v?void 0:A(t);return Y$(L||t,function(B,K){L&&(K=B,B=t[K]),Z$(u,K,Qu(B,e,n,K,t,c))}),u}kk.exports=Qu});var Dk=I((QV,Rk)=>{"use strict";var HW=Tk(),VW=1,GW=4;function QW(t){return HW(t,VW|GW)}Rk.exports=QW});var Ek=I((Fk,Ku)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Ku=="object"&&Ku.exports?Ku.exports=e():t.log=e()})(Fk,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+Se)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(Se,X){return P=Je(Se),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(Se){F=Je(Se),ve()||B.setLevel(Se,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(Se){B.setLevel(B.levels.TRACE,Se)},B.disableAll=function(Se){B.setLevel(B.levels.SILENT,Se)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var Se in s)s[Se].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Go=I((Vo,na)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,v=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",Se=800,X=16,z=1,se=2,re=3,Re=1/0,ge=9007199254740991,me=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,wr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",lr="[object Array]",Pi="[object AsyncFunction]",dr="[object Boolean]",fr="[object Date]",Ki="[object DOMException]",Sr="[object Error]",xr="[object Function]",Pr="[object GeneratorFunction]",mt="[object Map]",hr="[object Number]",Ji="[object Null]",Bt="[object Object]",Ci="[object Promise]",Hr="[object Proxy]",gr="[object RegExp]",xt="[object Set]",sn="[object String]",Cr="[object Symbol]",Xi="[object Undefined]",jt="[object WeakMap]",ki="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",tt=/\b__p \+= '';/g,De=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(at.source),Yi=/<%-([\s\S]+?)%>/g,xa=/<%([\s\S]+?)%>/g,ls=/<%=([\s\S]+?)%>/g,Pa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ca=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ft=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Vr=/^0o[0-7]+$/i,Zi=/^(?:0|[1-9]\d*)$/,ka=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ta=/($^)/,jT=/['\n\r\u2028\u2029\\]/g,Ra="\\ud800-\\udfff",zT="\\u0300-\\u036f",HT="\\ufe20-\\ufe2f",VT="\\u20d0-\\u20ff",Dp=zT+HT+VT,Fp="\\u2700-\\u27bf",Ep="a-z\\xdf-\\xf6\\xf8-\\xff",GT="\\xac\\xb1\\xd7\\xf7",QT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",KT="\\u2000-\\u206f",JT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ip="A-Z\\xc0-\\xd6\\xd8-\\xde",Mp="\\ufe0e\\ufe0f",Ap=GT+QT+KT+JT,Vl="['\u2019]",XT="["+Ra+"]",Np="["+Ap+"]",Da="["+Dp+"]",qp="\\d+",YT="["+Fp+"]",Op="["+Ep+"]",Lp="[^"+Ra+Ap+qp+Fp+Ep+Ip+"]",Gl="\\ud83c[\\udffb-\\udfff]",ZT="(?:"+Da+"|"+Gl+")",Bp="[^"+Ra+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",eo="["+Ip+"]",Up="\\u200d",$p="(?:"+Op+"|"+Lp+")",eR="(?:"+eo+"|"+Lp+")",Wp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",jp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",zp=ZT+"?",Hp="["+Mp+"]?",tR="(?:"+Up+"(?:"+[Bp,Ql,Kl].join("|")+")"+Hp+zp+")*",nR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Vp=Hp+zp+tR,iR="(?:"+[YT,Ql,Kl].join("|")+")"+Vp,oR="(?:"+[Bp+Da+"?",Da,Ql,Kl,XT].join("|")+")",sR=RegExp(Vl,"g"),aR=RegExp(Da,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+oR+Vp,"g"),cR=RegExp([eo+"?"+Op+"+"+Wp+"(?="+[Np,eo,"$"].join("|")+")",eR+"+"+jp+"(?="+[Np,eo+$p,"$"].join("|")+")",eo+"?"+$p+"+"+Wp,eo+"+"+jp,rR,nR,qp,iR].join("|"),"g"),uR=RegExp("["+Up+Ra+Dp+Mp+"]"),lR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,dR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],fR=-1,ct={};ct[kr]=ct[vn]=ct[C]=ct[H]=ct[Z]=ct[ie]=ct[Ue]=ct[Le]=ct[Ge]=!0,ct[Vn]=ct[lr]=ct[Gn]=ct[dr]=ct[_n]=ct[fr]=ct[Sr]=ct[xr]=ct[mt]=ct[hr]=ct[Bt]=ct[gr]=ct[xt]=ct[sn]=ct[jt]=!1;var nt={};nt[Vn]=nt[lr]=nt[Gn]=nt[_n]=nt[dr]=nt[fr]=nt[kr]=nt[vn]=nt[C]=nt[H]=nt[Z]=nt[mt]=nt[hr]=nt[Bt]=nt[gr]=nt[xt]=nt[sn]=nt[Cr]=nt[ie]=nt[Ue]=nt[Le]=nt[Ge]=!0,nt[Sr]=nt[xr]=nt[jt]=!1;var hR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},gR={"&":"&","<":"<",">":">",'"':""","'":"'"},pR={"&":"&","<":"<",">":">",""":'"',"'":"'"},mR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},bR=parseFloat,_R=parseInt,Gp=typeof global=="object"&&global&&global.Object===Object&&global,vR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Gp||vR||Function("return this")(),Xl=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,Ti=Xl&&typeof na=="object"&&na&&!na.nodeType&&na,Qp=Ti&&Ti.exports===Xl,Yl=Qp&&Gp.process,En=function(){try{var E=Ti&&Ti.require&&Ti.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Kp=En&&En.isArrayBuffer,Jp=En&&En.isDate,Xp=En&&En.isMap,Yp=En&&En.isRegExp,Zp=En&&En.isSet,em=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function yR(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function cm(E,W){for(var $=E.length;$--&&to(W,E[$],0)>-1;);return $}function DR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var FR=rd(hR),ER=rd(gR);function IR(E){return"\\"+mR[E]}function MR(E,W){return E==null?t:E[W]}function no(E){return uR.test(E)}function AR(E){return lR.test(E)}function NR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function um(E,W){return function($){return E(W($))}}function Kr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function SD(r,o){var a=this.__data__,l=Ga(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}Tr.prototype.clear=_D,Tr.prototype.delete=vD,Tr.prototype.get=yD,Tr.prototype.has=wD,Tr.prototype.set=SD;function Rr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&v,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=xe(r);if(Q){if(S=k0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==xr||J==Pr;if(ni(r))return Hm(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:lb(r),!T)return M?p0(r,LD(S,r)):g0(r,wm(S,r))}else{if(!nt[J])return h?r:{};S=T0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),Bb(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):Ob(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,ke=Q?t:de(r);return In(ke||r,function(fe,Me){ke&&(Me=fe,fe=r[Me]),bs(S,Me,Nn(fe,o,a,Me,r,_))}),S}function BD(r){var o=Ot(r);return function(a){return Sm(a,r,o)}}function Sm(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function xm(r,o,a){if(typeof r!="function")throw new Mn(s);return Ps(function(){r.apply(t,a)},o)}function _s(r,o,a,l){var h=-1,_=Fa,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=ht(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ds,S=!1,o=new Fi(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:Ce(l),l<0&&(l+=h),l=a>l?0:$b(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Qr(h,T):l||(h[h.length]=T)}return h}var gd=Xm(),km=Xm(!0);function pr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&km(r,o,Ot)}function Ka(r,o){return Gr(o,function(a){return Mr(r[a])})}function Ii(r,o){o=ei(o,r);for(var a=0,l=o.length;r!=null&&ao}function WD(r,o){return r!=null&&Ke.call(r,o)}function jD(r,o){return r!=null&&o in Ye(r)}function zD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Fi(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&Ua.call(T,M,1),Ua.call(r,M,1);return r}function Om(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Ir(h)?Ua.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+ja(bm()*(o-r+1))}function r0(r,o,a,l){for(var h=-1,_=At(Wa((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=ja(o/2),o&&(r+=r);while(o);return a}function Fe(r,o){return Ud(hb(r,o,dn),r+"")}function i0(r){return ym(ho(r))}function o0(r,o){var a=ho(r);return sc(a,Ei(o,0,a.length))}function ws(r,o,a,l){if(!bt(r))return r;o=ei(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=br(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Ir(o[h+1])?[]:{})}bs(T,M,V),T=T[M]}return r}var Lm=za?function(r,o){return za.set(r,o),r}:dn,s0=$a?function(r,o){return $a(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function a0(r){return sc(ho(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:v0(r);if(V)return Ia(V);S=!1,h=ds,M=new Fi}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=ei(o,r),r=gb(r,o),r==null||delete r[br(On(o))]}function $m(r,o,a,l){return ws(r,o,a(Ii(r,o)),l)}function Ya(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var zm=JR||function(r){return qt.clearTimeout(r)};function Hm(r,o){if(o)return r.slice();var a=r.length,l=fm?fm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new La(o).set(new La(r)),o}function l0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function d0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function f0(r){return ms?Ye(ms.call(r)):{}}function Vm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Gm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Qm(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function eb(r){return Er(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&ic(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Fi:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(y,`{ +`&&g++}y&&R.length>0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),y=0,g=R.length;if(g===0)return u.create(0,k);for(;yk?g=O:y=O+1}var G=y-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var y=R[k.line],g=k.line+1"u"}p.undefined=y;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Vr,Zi){return k.call(Ie)==="[object Number]"&&Vr<=Ie&&Ie<=Zi}p.numberRange=be;function ft(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ft;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Vr){return Array.isArray(Ie)&&Ie.every(Vr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var So=Ui(),L_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(L_||(hn.MessageDirection=L_={}));var ph=class{constructor(e){this.method=e}};hn.RegistrationType=ph;var mh=class extends So.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=mh;var bh=class extends So.RequestType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolRequestType=bh;var _h=class extends So.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=_h;var vh=class extends So.NotificationType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolNotificationType=vh});var $c=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function HA(t){return t===!0||t===!1}It.boolean=HA;function B_(t){return typeof t=="string"||t instanceof String}It.string=B_;function VA(t){return typeof t=="number"||t instanceof Number}It.number=VA;function GA(t){return t instanceof Error}It.error=GA;function QA(t){return typeof t=="function"}It.func=QA;function U_(t){return Array.isArray(t)}It.array=U_;function KA(t){return U_(t)&&t.every(e=>B_(e))}It.stringArray=KA;function JA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=JA;function XA(t){return t!==null&&typeof t=="object"}It.objectLiteral=XA});var j_=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ImplementationRequest=void 0;var $_=pt(),W_;(function(t){t.method="textDocument/implementation",t.messageDirection=$_.MessageDirection.clientToServer,t.type=new $_.ProtocolRequestType(t.method)})(W_||(Wc.ImplementationRequest=W_={}))});var V_=I(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.TypeDefinitionRequest=void 0;var z_=pt(),H_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=z_.MessageDirection.clientToServer,t.type=new z_.ProtocolRequestType(t.method)})(H_||(jc.TypeDefinitionRequest=H_={}))});var K_=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.DidChangeWorkspaceFoldersNotification=xo.WorkspaceFoldersRequest=void 0;var zc=pt(),G_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(G_||(xo.WorkspaceFoldersRequest=G_={}));var Q_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolNotificationType(t.method)})(Q_||(xo.DidChangeWorkspaceFoldersNotification=Q_={}))});var Y_=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.ConfigurationRequest=void 0;var J_=pt(),X_;(function(t){t.method="workspace/configuration",t.messageDirection=J_.MessageDirection.serverToClient,t.type=new J_.ProtocolRequestType(t.method)})(X_||(Hc.ConfigurationRequest=X_={}))});var tv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.ColorPresentationRequest=Po.DocumentColorRequest=void 0;var Vc=pt(),Z_;(function(t){t.method="textDocument/documentColor",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(Z_||(Po.DocumentColorRequest=Z_={}));var ev;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(ev||(Po.ColorPresentationRequest=ev={}))});var iv=I(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.FoldingRangeRefreshRequest=Co.FoldingRangeRequest=void 0;var Gc=pt(),nv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolRequestType(t.method)})(nv||(Co.FoldingRangeRequest=nv={}));var rv;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType0(t.method)})(rv||(Co.FoldingRangeRefreshRequest=rv={}))});var av=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DeclarationRequest=void 0;var ov=pt(),sv;(function(t){t.method="textDocument/declaration",t.messageDirection=ov.MessageDirection.clientToServer,t.type=new ov.ProtocolRequestType(t.method)})(sv||(Qc.DeclarationRequest=sv={}))});var lv=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.SelectionRangeRequest=void 0;var cv=pt(),uv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=cv.MessageDirection.clientToServer,t.type=new cv.ProtocolRequestType(t.method)})(uv||(Kc.SelectionRangeRequest=uv={}))});var gv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.WorkDoneProgressCancelNotification=ai.WorkDoneProgressCreateRequest=ai.WorkDoneProgress=void 0;var YA=Ui(),Jc=pt(),dv;(function(t){t.type=new YA.ProgressType;function e(n){return n===t.type}t.is=e})(dv||(ai.WorkDoneProgress=dv={}));var fv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType(t.method)})(fv||(ai.WorkDoneProgressCreateRequest=fv={}));var hv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolNotificationType(t.method)})(hv||(ai.WorkDoneProgressCancelNotification=hv={}))});var _v=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.CallHierarchyOutgoingCallsRequest=ci.CallHierarchyIncomingCallsRequest=ci.CallHierarchyPrepareRequest=void 0;var ko=pt(),pv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(pv||(ci.CallHierarchyPrepareRequest=pv={}));var mv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(mv||(ci.CallHierarchyIncomingCallsRequest=mv={}));var bv;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(bv||(ci.CallHierarchyOutgoingCallsRequest=bv={}))});var Pv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Or=pt(),vv;(function(t){t.Relative="relative"})(vv||(gn.TokenFormat=vv={}));var Is;(function(t){t.method="textDocument/semanticTokens",t.type=new Or.RegistrationType(t.method)})(Is||(gn.SemanticTokensRegistrationType=Is={}));var yv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(yv||(gn.SemanticTokensRequest=yv={}));var wv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(wv||(gn.SemanticTokensDeltaRequest=wv={}));var Sv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(Sv||(gn.SemanticTokensRangeRequest=Sv={}));var xv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=Or.MessageDirection.serverToClient,t.type=new Or.ProtocolRequestType0(t.method)})(xv||(gn.SemanticTokensRefreshRequest=xv={}))});var Tv=I(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.ShowDocumentRequest=void 0;var Cv=pt(),kv;(function(t){t.method="window/showDocument",t.messageDirection=Cv.MessageDirection.serverToClient,t.type=new Cv.ProtocolRequestType(t.method)})(kv||(Xc.ShowDocumentRequest=kv={}))});var Fv=I(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.LinkedEditingRangeRequest=void 0;var Rv=pt(),Dv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Rv.MessageDirection.clientToServer,t.type=new Rv.ProtocolRequestType(t.method)})(Dv||(Yc.LinkedEditingRangeRequest=Dv={}))});var Lv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Ev;(function(t){t.file="file",t.folder="folder"})(Ev||(Qt.FileOperationPatternKind=Ev={}));var Iv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Iv||(Qt.WillCreateFilesRequest=Iv={}));var Mv;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Mv||(Qt.DidCreateFilesNotification=Mv={}));var Av;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Av||(Qt.WillRenameFilesRequest=Av={}));var Nv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Nv||(Qt.DidRenameFilesNotification=Nv={}));var qv;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(qv||(Qt.DidDeleteFilesNotification=qv={}));var Ov;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Ov||(Qt.WillDeleteFilesRequest=Ov={}))});var jv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.MonikerRequest=ui.MonikerKind=ui.UniquenessLevel=void 0;var Bv=pt(),Uv;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(Uv||(ui.UniquenessLevel=Uv={}));var $v;(function(t){t.$import="import",t.$export="export",t.local="local"})($v||(ui.MonikerKind=$v={}));var Wv;(function(t){t.method="textDocument/moniker",t.messageDirection=Bv.MessageDirection.clientToServer,t.type=new Bv.ProtocolRequestType(t.method)})(Wv||(ui.MonikerRequest=Wv={}))});var Gv=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.TypeHierarchySubtypesRequest=li.TypeHierarchySupertypesRequest=li.TypeHierarchyPrepareRequest=void 0;var To=pt(),zv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(zv||(li.TypeHierarchyPrepareRequest=zv={}));var Hv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Hv||(li.TypeHierarchySupertypesRequest=Hv={}));var Vv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Vv||(li.TypeHierarchySubtypesRequest=Vv={}))});var Jv=I(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.InlineValueRefreshRequest=Ro.InlineValueRequest=void 0;var Zc=pt(),Qv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Zc.MessageDirection.clientToServer,t.type=new Zc.ProtocolRequestType(t.method)})(Qv||(Ro.InlineValueRequest=Qv={}));var Kv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Zc.MessageDirection.serverToClient,t.type=new Zc.ProtocolRequestType0(t.method)})(Kv||(Ro.InlineValueRefreshRequest=Kv={}))});var ey=I(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.InlayHintRefreshRequest=di.InlayHintResolveRequest=di.InlayHintRequest=void 0;var Do=pt(),Xv;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Xv||(di.InlayHintRequest=Xv={}));var Yv;(function(t){t.method="inlayHint/resolve",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Yv||(di.InlayHintResolveRequest=Yv={}));var Zv;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(Zv||(di.InlayHintRefreshRequest=Zv={}))});var ay=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var sy=Ui(),ZA=$c(),Fo=pt(),ty;(function(t){function e(n){let i=n;return i&&ZA.boolean(i.retriggerRequest)}t.is=e})(ty||(Un.DiagnosticServerCancellationData=ty={}));var ny;(function(t){t.Full="full",t.Unchanged="unchanged"})(ny||(Un.DocumentDiagnosticReportKind=ny={}));var ry;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(ry||(Un.DocumentDiagnosticRequest=ry={}));var iy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(iy||(Un.WorkspaceDiagnosticRequest=iy={}));var oy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Fo.MessageDirection.serverToClient,t.type=new Fo.ProtocolRequestType0(t.method)})(oy||(Un.DiagnosticRefreshRequest=oy={}))});var gy=I(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.DidCloseNotebookDocumentNotification=wt.DidSaveNotebookDocumentNotification=wt.DidChangeNotebookDocumentNotification=wt.NotebookCellArrayChange=wt.DidOpenNotebookDocumentNotification=wt.NotebookDocumentSyncRegistrationType=wt.NotebookDocument=wt.NotebookCell=wt.ExecutionSummary=wt.NotebookCellKind=void 0;var Ms=Uc(),er=$c(),_r=pt(),yh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(yh||(wt.NotebookCellKind=yh={}));var wh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Ms.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(wh||(wt.ExecutionSummary=wh={}));var eu;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&yh.is(u.kind)&&Ms.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.InlineCompletionRequest=void 0;var py=pt(),my;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=py.MessageDirection.clientToServer,t.type=new py.ProtocolRequestType(t.method)})(my||(tu.InlineCompletionRequest=my={}))});var Fw=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),_y=Uc(),Lt=$c(),eN=j_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return eN.ImplementationRequest}});var tN=V_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return tN.TypeDefinitionRequest}});var kw=K_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return kw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return kw.DidChangeWorkspaceFoldersNotification}});var nN=Y_();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return nN.ConfigurationRequest}});var Tw=tv();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Tw.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Tw.ColorPresentationRequest}});var Rw=iv();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRefreshRequest}});var rN=av();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return rN.DeclarationRequest}});var iN=lv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return iN.SelectionRangeRequest}});var kh=gv();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return kh.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return kh.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return kh.WorkDoneProgressCancelNotification}});var Th=_v();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var Io=Pv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Io.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Io.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Io.SemanticTokensRegistrationType}});var oN=Tv();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return oN.ShowDocumentRequest}});var sN=Fv();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return sN.LinkedEditingRangeRequest}});var $i=Lv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return $i.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return $i.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return $i.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return $i.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return $i.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return $i.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return $i.WillDeleteFilesRequest}});var Rh=jv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Rh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Rh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Rh.MonikerRequest}});var Dh=Gv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySupertypesRequest}});var Dw=Jv();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Dw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Dw.InlineValueRefreshRequest}});var Fh=ey();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Fh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Fh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Fh.InlayHintRefreshRequest}});var As=ay();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return As.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return As.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return As.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return As.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return As.DiagnosticRefreshRequest}});var vr=gy();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return vr.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return vr.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return vr.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return vr.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return vr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return vr.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidCloseNotebookDocumentNotification}});var aN=by();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return aN.InlineCompletionRequest}});var Sh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(Sh||(w.TextDocumentFilter=Sh={}));var xh;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(xh||(w.NotebookDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||xh.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ph||(w.NotebookCellTextDocumentFilter=Ph={}));var Ch;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!Sh.is(i)&&!Ph.is(i))return!1;return!0}t.is=e})(Ch||(w.DocumentSelector=Ch={}));var vy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(vy||(w.RegistrationRequest=vy={}));var yy;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(yy||(w.UnregistrationRequest=yy={}));var wy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(wy||(w.ResourceOperationKind=wy={}));var Sy;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(Sy||(w.FailureHandlingKind=Sy={}));var xy;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(xy||(w.PositionEncodingKind=xy={}));var Py;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Py||(w.StaticRegistrationOptions=Py={}));var Cy;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Ch.is(i.documentSelector))}t.is=e})(Cy||(w.TextDocumentRegistrationOptions=Cy={}));var ky;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(ky||(w.WorkDoneProgressOptions=ky={}));var Ty;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ty||(w.InitializeRequest=Ty={}));var Ry;(function(t){t.unknownProtocolVersion=1})(Ry||(w.InitializeErrorCodes=Ry={}));var Dy;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Dy||(w.InitializedNotification=Dy={}));var Fy;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Fy||(w.ShutdownRequest=Fy={}));var Ey;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Ey||(w.ExitNotification=Ey={}));var Iy;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Iy||(w.DidChangeConfigurationNotification=Iy={}));var My;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(My||(w.MessageType=My={}));var Ay;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ay||(w.ShowMessageNotification=Ay={}));var Ny;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Ny||(w.ShowMessageRequest=Ny={}));var qy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(qy||(w.LogMessageNotification=qy={}));var Oy;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Oy||(w.TelemetryEventNotification=Oy={}));var Ly;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Ly||(w.TextDocumentSyncKind=Ly={}));var By;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(By||(w.DidOpenTextDocumentNotification=By={}));var Uy;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(Uy||(w.TextDocumentContentChangeEvent=Uy={}));var $y;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})($y||(w.DidChangeTextDocumentNotification=$y={}));var Wy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Wy||(w.DidCloseTextDocumentNotification=Wy={}));var jy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidSaveTextDocumentNotification=jy={}));var zy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(zy||(w.TextDocumentSaveReason=zy={}));var Hy;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Hy||(w.WillSaveTextDocumentNotification=Hy={}));var Vy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Vy||(w.WillSaveTextDocumentWaitUntilRequest=Vy={}));var Gy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Gy||(w.DidChangeWatchedFilesNotification=Gy={}));var Qy;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Qy||(w.FileChangeType=Qy={}));var Ky;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(_y.URI.is(i.baseUri)||_y.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Ky||(w.RelativePattern=Ky={}));var Jy;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Jy||(w.WatchKind=Jy={}));var Xy;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Xy||(w.PublishDiagnosticsNotification=Xy={}));var Yy;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Yy||(w.CompletionTriggerKind=Yy={}));var Zy;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Zy||(w.CompletionRequest=Zy={}));var ew;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ew||(w.CompletionResolveRequest=ew={}));var tw;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(tw||(w.HoverRequest=tw={}));var nw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(nw||(w.SignatureHelpTriggerKind=nw={}));var rw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(rw||(w.SignatureHelpRequest=rw={}));var iw;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.DefinitionRequest=iw={}));var ow;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.ReferencesRequest=ow={}));var sw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(sw||(w.DocumentHighlightRequest=sw={}));var aw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.DocumentSymbolRequest=aw={}));var cw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.CodeActionRequest=cw={}));var uw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.CodeActionResolveRequest=uw={}));var lw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.WorkspaceSymbolRequest=lw={}));var dw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.WorkspaceSymbolResolveRequest=dw={}));var fw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.CodeLensRequest=fw={}));var hw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeLensResolveRequest=hw={}));var gw;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(gw||(w.CodeLensRefreshRequest=gw={}));var pw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(pw||(w.DocumentLinkRequest=pw={}));var mw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.DocumentLinkResolveRequest=mw={}));var bw;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.DocumentFormattingRequest=bw={}));var _w;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(_w||(w.DocumentRangeFormattingRequest=_w={}));var vw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentRangesFormattingRequest=vw={}));var yw;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentOnTypeFormattingRequest=yw={}));var ww;(function(t){t.Identifier=1})(ww||(w.PrepareSupportDefaultBehavior=ww={}));var Sw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Sw||(w.RenameRequest=Sw={}));var xw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.PrepareRenameRequest=xw={}));var Pw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.ExecuteCommandRequest=Pw={}));var Cw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(Cw||(w.ApplyWorkspaceEditRequest=Cw={}))});var Iw=I(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.createProtocolConnection=void 0;var Ew=Ui();function cN(t,e,n,i){return Ew.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Ew.createMessageConnection)(t,e,n,i)}nu.createProtocolConnection=cN});var Aw=I(pn=>{"use strict";var uN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),ru=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&uN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;ru(Ui(),pn);ru(Uc(),pn);ru(pt(),pn);ru(Fw(),pn);var lN=Iw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return lN.createProtocolConnection}});var Mw;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Mw||(pn.LSPErrorCodes=Mw={}))});var kt=I(yr=>{"use strict";var dN=yr&&yr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Nw=yr&&yr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&dN(e,t,n)};Object.defineProperty(yr,"__esModule",{value:!0});yr.createProtocolConnection=void 0;var fN=gh();Nw(gh(),yr);Nw(Aw(),yr);function hN(t,e,n,i){return(0,fN.createMessageConnection)(t,e,n,i)}yr.createProtocolConnection=hN});var Eh=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var Ns=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},qs=class t extends Ns{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};qs._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];qs._timeHighBits=["8","9","a","b"];$n.empty=new Ns("00000000-0000-0000-0000-000000000000");function qw(){return new qs}$n.v4=qw;var gN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ow(t){return gN.test(t)}$n.isUUID=Ow;function pN(t){if(!Ow(t))throw new Error("invalid uuid");return new Ns(t)}$n.parse=pN;function mN(){return qw().asHex()}$n.generateUuid=mN});var Lw=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.attachPartialResult=hi.ProgressFeature=hi.attachWorkDone=void 0;var fi=kt(),bN=Eh(),Wi=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,{kind:"end"})}};Wi.Instances=new Map;var iu=class extends Wi{constructor(e,n){super(e,n),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Os=class{constructor(){}begin(){}report(){}done(){}},ou=class extends Os{constructor(){super(),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function _N(t,e){if(e===void 0||e.workDoneToken===void 0)return new Os;let n=e.workDoneToken;return delete e.workDoneToken,new Wi(t,n)}hi.attachWorkDone=_N;var vN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(fi.WorkDoneProgressCancelNotification.type,n=>{let i=Wi.Instances.get(n.token);(i instanceof iu||i instanceof ou)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new Os:new Wi(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,bN.generateUuid)();return this.connection.sendRequest(fi.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new iu(this.connection,e))}else return Promise.resolve(new ou)}};hi.ProgressFeature=vN;var Ih;(function(t){t.type=new fi.ProgressType})(Ih||(Ih={}));var Mh=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Ih.type,this._token,e)}};function yN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Mh(t,n)}hi.attachPartialResult=yN});var Bw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.ConfigurationFeature=void 0;var wN=kt(),SN=bc(),xN=t=>class extends t{getConfiguration(e){return e?SN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(wN.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};su.ConfigurationFeature=xN});var Uw=I(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.WorkspaceFoldersFeature=void 0;var au=kt(),PN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new au.Emitter,this.connection.onNotification(au.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(au.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(au.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};cu.WorkspaceFoldersFeature=PN});var $w=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.CallHierarchyFeature=void 0;var Ah=kt(),CN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Ah.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Ah.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Ah.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};uu.CallHierarchyFeature=CN});var qh=I(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.SemanticTokensBuilder=gi.SemanticTokensDiff=gi.SemanticTokensFeature=void 0;var lu=kt(),kN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(lu.SemanticTokensRefreshRequest.type),on:e=>{let n=lu.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=lu.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=lu.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gi.SemanticTokensFeature=kN;var du=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new du(this._prevData,this._data).computeDiff()}:this.build()}};gi.SemanticTokensBuilder=Nh});var Ww=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.ShowDocumentFeature=void 0;var TN=kt(),RN=t=>class extends t{showDocument(e){return this.connection.sendRequest(TN.ShowDocumentRequest.type,e)}};fu.ShowDocumentFeature=RN});var jw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.FileOperationsFeature=void 0;var Mo=kt(),DN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Mo.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Mo.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Mo.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Mo.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Mo.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Mo.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};hu.FileOperationsFeature=DN});var zw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.LinkedEditingRangeFeature=void 0;var FN=kt(),EN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(FN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};gu.LinkedEditingRangeFeature=EN});var Hw=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.TypeHierarchyFeature=void 0;var Oh=kt(),IN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};pu.TypeHierarchyFeature=IN});var Gw=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.InlineValueFeature=void 0;var Vw=kt(),MN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Vw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Vw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};mu.InlineValueFeature=MN});var Kw=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.FoldingRangeFeature=void 0;var Qw=kt(),AN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Qw.FoldingRangeRefreshRequest.type),on:e=>{let n=Qw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};bu.FoldingRangeFeature=AN});var Jw=I(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.InlayHintFeature=void 0;var Lh=kt(),NN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Lh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Lh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Lh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};_u.InlayHintFeature=NN});var Xw=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.DiagnosticFeature=void 0;var Ls=kt(),qN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Ls.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Ls.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Ls.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.WorkspaceDiagnosticRequest.partialResult,n)))}}};vu.DiagnosticFeature=qN});var Uh=I(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.TextDocuments=void 0;var ji=kt(),Bh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new ji.Emitter,this._onDidOpen=new ji.Emitter,this._onDidClose=new ji.Emitter,this._onDidSave=new ji.Emitter,this._onWillSave=new ji.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=ji.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),ji.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};yu.TextDocuments=Bh});var Wh=I(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.NotebookDocuments=Ao.NotebookSyncFeature=void 0;var Wn=kt(),Yw=Uh(),ON=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Ao.NotebookSyncFeature=ON;var wu=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};wu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $h=class{constructor(e){e instanceof Yw.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new Yw.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new wu,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],v=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),v.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of v)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Ao.NotebookDocuments=$h});var Zw=I(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.MonikerFeature=void 0;var LN=kt(),BN=t=>class extends t{get moniker(){return{on:e=>{let n=LN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Su.MonikerFeature=BN});var Qh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=bc(),zh=Eh(),we=Lw(),UN=Bw(),$N=Uw(),WN=$w(),jN=qh(),zN=Ww(),HN=jw(),VN=zw(),GN=Hw(),QN=Gw(),KN=Kw(),JN=Jw(),XN=Xw(),YN=Wh(),ZN=Zw();function jh(t){if(t!==null)return t}var Hh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Hh;var xu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Vh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}},eS=(0,zN.ShowDocumentFeature)((0,we.ProgressFeature)(Vh)),tS;(function(t){function e(){return new Pu}t.create=e})(tS||($e.BulkRegistration=tS={}));var Pu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=zh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},nS;(function(t){function e(){return new Bs(void 0,[])}t.create=e})(nS||($e.BulkUnregistration=nS={}));var Bs=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Cu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof Pu?this.registerMany(e):e instanceof Bs?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=zh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=zh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Bs(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},rS=(0,HN.FileOperationsFeature)((0,$N.WorkspaceFoldersFeature)((0,UN.ConfigurationFeature)(Gh))),ku=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Tu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Ru=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Ru;var iS=(0,KN.FoldingRangeFeature)((0,ZN.MonikerFeature)((0,XN.DiagnosticFeature)((0,JN.InlayHintFeature)((0,QN.InlineValueFeature)((0,GN.TypeHierarchyFeature)((0,VN.LinkedEditingRangeFeature)((0,jN.SemanticTokensFeature)((0,WN.CallHierarchyFeature)(Ru))))))))),Du=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Du;var oS=(0,YN.NotebookSyncFeature)(Du);function sS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=sS;function aS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=aS;function cS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=cS;function uS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=uS;function lS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=hS;function eq(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,sS),tracer:n(t.tracer,e.tracer,cS),telemetry:n(t.telemetry,e.telemetry,aS),client:n(t.client,e.client,uS),window:n(t.window,e.window,lS),workspace:n(t.workspace,e.workspace,dS),languages:n(t.languages,e.languages,fS),notebooks:n(t.notebooks,e.notebooks,hS)}}$e.combineFeatures=eq;function tq(t,e,n){let i=n&&n.console?new(n.console(xu)):new xu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(ku)):new ku,u=n&&n.telemetry?new(n.telemetry(Tu)):new Tu,d=n&&n.client?new(n.client(Cu)):new Cu,f=n&&n.window?new(n.window(eS)):new eS,m=n&&n.workspace?new(n.workspace(rS)):new rS,v=n&&n.languages?new(n.languages(iS)):new iS,x=n&&n.notebooks?new(n.notebooks(oS)):new oS,D=[i,c,u,d,f,m,v,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return v},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=tq});var gS=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var nq=require("url"),tr=require("path"),Kh=require("fs"),Zh=require("child_process");function rq(t){let e=nq.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=rq;function Jh(){return process.platform==="win32"}function Fu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(v=>m[v]=f[v]),e&&Kh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let v=(0,Zh.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(v.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}v.on("error",D=>{d(D)}),v.on("message",D=>{D.c==="r"&&(v.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};v.send(x)}catch(v){d(v)}})}mn.resolve=Fu;function Xh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Jh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,Zh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Jh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Xh;function iq(t){let e="yarn",n={encoding:"utf8"};Jh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,Zh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=iq;var Yh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Kh.existsSync(__filename.toUpperCase())||!Kh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Yh||(mn.FileSystem=Yh={}));function oq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Fu(e,n,n,i).then(s=>Yh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Fu(e,Xh(i),t,i))):Fu(e,Xh(i),t,i)}mn.resolveModulePath=oq});var eg=I((Iz,pS)=>{"use strict";pS.exports=kt()});var mS=I(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.InlineCompletionFeature=void 0;var sq=kt(),aq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(sq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Eu.InlineCompletionFeature=aq});var vS=I(Kt=>{"use strict";var cq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),_S=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var uq=qh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return uq.SemanticTokensBuilder}});var lq=mS();_S(kt(),Kt);var dq=Uh();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return dq.TextDocuments}});var fq=Wh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return fq.NotebookDocuments}});_S(Qh(),Kt);var bS;(function(t){t.all={__brand:"features",languages:lq.InlineCompletionFeature}})(bS||(Kt.ProposedFeatures=bS={}))});var ng=I(zn=>{"use strict";var hq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),xS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&hq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var yS=require("node:util"),tg=bc(),gq=Qh(),Us=gS(),zi=eg();xS(eg(),zn);xS(vS(),zn);var wS;(function(t){t.uriToFilePath=Us.uriToFilePath,t.resolveGlobalNodePath=Us.resolveGlobalNodePath,t.resolveGlobalYarnPath=Us.resolveGlobalYarnPath,t.resolve=Us.resolve,t.resolveModulePath=Us.resolveModulePath})(wS||(zn.Files=wS={}));var SS;function Iu(){if(SS!==void 0)try{SS.end()}catch{}}var No=!1,PS;function pq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(PS=setInterval(()=>{try{process.kill(i,0)}catch{Iu(),process.exit(No?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;tg.number(e)&&PS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(No?0:1)}},3e3)},get shutdownReceived(){return No},set shutdownReceived(t){No=t},exit:t=>{Iu(),process.exit(t)}};function bq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),zi.ConnectionStrategy.is(t)||zi.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),_q(c,u,d,s)}zn.createConnection=bq;function _q(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,v=process.argv.slice(2);for(let x=0;x{Iu(),process.exit(No?0:1)}),f.on("close",()=>{Iu(),process.exit(No?0:1)})}let d=f=>{let m=(0,zi.createProtocolConnection)(t,e,f,n);return s&&vq(f),m};return(0,gq.createConnection)(d,mq,i)}function vq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,yS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,yS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} +${c}`)},console.warn=function(...s){t.warn(e(s))}}});var kS=I((Oz,CS)=>{"use strict";CS.exports=ng()});var IS=I((Yz,ES)=>{"use strict";function Cq(){this.__data__=[],this.size=0}ES.exports=Cq});var sg=I((Zz,MS)=>{"use strict";function kq(t,e){return t===e||t!==t&&e!==e}MS.exports=kq});var Ws=I((eH,AS)=>{"use strict";var Tq=sg();function Rq(t,e){for(var n=t.length;n--;)if(Tq(t[n][0],e))return n;return-1}AS.exports=Rq});var qS=I((tH,NS)=>{"use strict";var Dq=Ws(),Fq=Array.prototype,Eq=Fq.splice;function Iq(t){var e=this.__data__,n=Dq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Eq.call(e,n,1),--this.size,!0}NS.exports=Iq});var LS=I((nH,OS)=>{"use strict";var Mq=Ws();function Aq(t){var e=this.__data__,n=Mq(e,t);return n<0?void 0:e[n][1]}OS.exports=Aq});var US=I((rH,BS)=>{"use strict";var Nq=Ws();function qq(t){return Nq(this.__data__,t)>-1}BS.exports=qq});var WS=I((iH,$S)=>{"use strict";var Oq=Ws();function Lq(t,e){var n=this.__data__,i=Oq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}$S.exports=Lq});var js=I((oH,jS)=>{"use strict";var Bq=IS(),Uq=qS(),$q=LS(),Wq=US(),jq=WS();function qo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var zq=js();function Hq(){this.__data__=new zq,this.size=0}zS.exports=Hq});var GS=I((aH,VS)=>{"use strict";function Vq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}VS.exports=Vq});var KS=I((cH,QS)=>{"use strict";function Gq(t){return this.__data__.get(t)}QS.exports=Gq});var XS=I((uH,JS)=>{"use strict";function Qq(t){return this.__data__.has(t)}JS.exports=Qq});var ag=I((lH,YS)=>{"use strict";var Kq=typeof global=="object"&&global&&global.Object===Object&&global;YS.exports=Kq});var nr=I((dH,ZS)=>{"use strict";var Jq=ag(),Xq=typeof self=="object"&&self&&self.Object===Object&&self,Yq=Jq||Xq||Function("return this")();ZS.exports=Yq});var Ou=I((fH,ex)=>{"use strict";var Zq=nr(),e1=Zq.Symbol;ex.exports=e1});var ix=I((hH,rx)=>{"use strict";var tx=Ou(),nx=Object.prototype,t1=nx.hasOwnProperty,n1=nx.toString,zs=tx?tx.toStringTag:void 0;function r1(t){var e=t1.call(t,zs),n=t[zs];try{t[zs]=void 0;var i=!0}catch{}var s=n1.call(t);return i&&(e?t[zs]=n:delete t[zs]),s}rx.exports=r1});var sx=I((gH,ox)=>{"use strict";var i1=Object.prototype,o1=i1.toString;function s1(t){return o1.call(t)}ox.exports=s1});var Hs=I((pH,ux)=>{"use strict";var ax=Ou(),a1=ix(),c1=sx(),u1="[object Null]",l1="[object Undefined]",cx=ax?ax.toStringTag:void 0;function d1(t){return t==null?t===void 0?l1:u1:cx&&cx in Object(t)?a1(t):c1(t)}ux.exports=d1});var Oo=I((mH,lx)=>{"use strict";function f1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}lx.exports=f1});var cg=I((bH,dx)=>{"use strict";var h1=Hs(),g1=Oo(),p1="[object AsyncFunction]",m1="[object Function]",b1="[object GeneratorFunction]",_1="[object Proxy]";function v1(t){if(!g1(t))return!1;var e=h1(t);return e==m1||e==b1||e==p1||e==_1}dx.exports=v1});var hx=I((_H,fx)=>{"use strict";var y1=nr(),w1=y1["__core-js_shared__"];fx.exports=w1});var mx=I((vH,px)=>{"use strict";var ug=hx(),gx=function(){var t=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function S1(t){return!!gx&&gx in t}px.exports=S1});var lg=I((yH,bx)=>{"use strict";var x1=Function.prototype,P1=x1.toString;function C1(t){if(t!=null){try{return P1.call(t)}catch{}try{return t+""}catch{}}return""}bx.exports=C1});var vx=I((wH,_x)=>{"use strict";var k1=cg(),T1=mx(),R1=Oo(),D1=lg(),F1=/[\\^$.*+?()[\]{}|]/g,E1=/^\[object .+?Constructor\]$/,I1=Function.prototype,M1=Object.prototype,A1=I1.toString,N1=M1.hasOwnProperty,q1=RegExp("^"+A1.call(N1).replace(F1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O1(t){if(!R1(t)||T1(t))return!1;var e=k1(t)?q1:E1;return e.test(D1(t))}_x.exports=O1});var wx=I((SH,yx)=>{"use strict";function L1(t,e){return t?.[e]}yx.exports=L1});var mi=I((xH,Sx)=>{"use strict";var B1=vx(),U1=wx();function $1(t,e){var n=U1(t,e);return B1(n)?n:void 0}Sx.exports=$1});var Lu=I((PH,xx)=>{"use strict";var W1=mi(),j1=nr(),z1=W1(j1,"Map");xx.exports=z1});var Vs=I((CH,Px)=>{"use strict";var H1=mi(),V1=H1(Object,"create");Px.exports=V1});var Tx=I((kH,kx)=>{"use strict";var Cx=Vs();function G1(){this.__data__=Cx?Cx(null):{},this.size=0}kx.exports=G1});var Dx=I((TH,Rx)=>{"use strict";function Q1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Rx.exports=Q1});var Ex=I((RH,Fx)=>{"use strict";var K1=Vs(),J1="__lodash_hash_undefined__",X1=Object.prototype,Y1=X1.hasOwnProperty;function Z1(t){var e=this.__data__;if(K1){var n=e[t];return n===J1?void 0:n}return Y1.call(e,t)?e[t]:void 0}Fx.exports=Z1});var Mx=I((DH,Ix)=>{"use strict";var eO=Vs(),tO=Object.prototype,nO=tO.hasOwnProperty;function rO(t){var e=this.__data__;return eO?e[t]!==void 0:nO.call(e,t)}Ix.exports=rO});var Nx=I((FH,Ax)=>{"use strict";var iO=Vs(),oO="__lodash_hash_undefined__";function sO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=iO&&e===void 0?oO:e,this}Ax.exports=sO});var Ox=I((EH,qx)=>{"use strict";var aO=Tx(),cO=Dx(),uO=Ex(),lO=Mx(),dO=Nx();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Lx=Ox(),fO=js(),hO=Lu();function gO(){this.size=0,this.__data__={hash:new Lx,map:new(hO||fO),string:new Lx}}Bx.exports=gO});var Wx=I((MH,$x)=>{"use strict";function pO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}$x.exports=pO});var Gs=I((AH,jx)=>{"use strict";var mO=Wx();function bO(t,e){var n=t.__data__;return mO(e)?n[typeof e=="string"?"string":"hash"]:n.map}jx.exports=bO});var Hx=I((NH,zx)=>{"use strict";var _O=Gs();function vO(t){var e=_O(this,t).delete(t);return this.size-=e?1:0,e}zx.exports=vO});var Gx=I((qH,Vx)=>{"use strict";var yO=Gs();function wO(t){return yO(this,t).get(t)}Vx.exports=wO});var Kx=I((OH,Qx)=>{"use strict";var SO=Gs();function xO(t){return SO(this,t).has(t)}Qx.exports=xO});var Xx=I((LH,Jx)=>{"use strict";var PO=Gs();function CO(t,e){var n=PO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}Jx.exports=CO});var Zx=I((BH,Yx)=>{"use strict";var kO=Ux(),TO=Hx(),RO=Gx(),DO=Kx(),FO=Xx();function Bo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var EO=js(),IO=Lu(),MO=Zx(),AO=200;function NO(t,e){var n=this.__data__;if(n instanceof EO){var i=n.__data__;if(!IO||i.length{"use strict";var qO=js(),OO=HS(),LO=GS(),BO=KS(),UO=XS(),$O=tP();function Uo(t){var e=this.__data__=new qO(t);this.size=e.size}Uo.prototype.clear=OO;Uo.prototype.delete=LO;Uo.prototype.get=BO;Uo.prototype.has=UO;Uo.prototype.set=$O;nP.exports=Uo});var oP=I((WH,iP)=>{"use strict";function WO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var jO=mi(),zO=function(){try{var t=jO(Object,"defineProperty");return t({},"",{}),t}catch{}}();sP.exports=zO});var dg=I((zH,uP)=>{"use strict";var cP=aP();function HO(t,e,n){e=="__proto__"&&cP?cP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}uP.exports=HO});var fg=I((HH,lP)=>{"use strict";var VO=dg(),GO=sg(),QO=Object.prototype,KO=QO.hasOwnProperty;function JO(t,e,n){var i=t[e];(!(KO.call(t,e)&&GO(i,n))||n===void 0&&!(e in t))&&VO(t,e,n)}lP.exports=JO});var Qs=I((VH,dP)=>{"use strict";var XO=fg(),YO=dg();function ZO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function eL(t,e){for(var n=-1,i=Array(t);++n{"use strict";function tL(t){return t!=null&&typeof t=="object"}gP.exports=tL});var mP=I((KH,pP)=>{"use strict";var nL=Hs(),rL=$o(),iL="[object Arguments]";function oL(t){return rL(t)&&nL(t)==iL}pP.exports=oL});var yP=I((JH,vP)=>{"use strict";var bP=mP(),sL=$o(),_P=Object.prototype,aL=_P.hasOwnProperty,cL=_P.propertyIsEnumerable,uL=bP(function(){return arguments}())?bP:function(t){return sL(t)&&aL.call(t,"callee")&&!cL.call(t,"callee")};vP.exports=uL});var Bu=I((XH,wP)=>{"use strict";var lL=Array.isArray;wP.exports=lL});var xP=I((YH,SP)=>{"use strict";function dL(){return!1}SP.exports=dL});var hg=I((Ks,Wo)=>{"use strict";var fL=nr(),hL=xP(),kP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,PP=kP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,gL=PP&&PP.exports===kP,CP=gL?fL.Buffer:void 0,pL=CP?CP.isBuffer:void 0,mL=pL||hL;Wo.exports=mL});var RP=I((ZH,TP)=>{"use strict";var bL=9007199254740991,_L=/^(?:0|[1-9]\d*)$/;function vL(t,e){var n=typeof t;return e=e??bL,!!e&&(n=="number"||n!="symbol"&&_L.test(t))&&t>-1&&t%1==0&&t{"use strict";var yL=9007199254740991;function wL(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=yL}DP.exports=wL});var EP=I((tV,FP)=>{"use strict";var SL=Hs(),xL=gg(),PL=$o(),CL="[object Arguments]",kL="[object Array]",TL="[object Boolean]",RL="[object Date]",DL="[object Error]",FL="[object Function]",EL="[object Map]",IL="[object Number]",ML="[object Object]",AL="[object RegExp]",NL="[object Set]",qL="[object String]",OL="[object WeakMap]",LL="[object ArrayBuffer]",BL="[object DataView]",UL="[object Float32Array]",$L="[object Float64Array]",WL="[object Int8Array]",jL="[object Int16Array]",zL="[object Int32Array]",HL="[object Uint8Array]",VL="[object Uint8ClampedArray]",GL="[object Uint16Array]",QL="[object Uint32Array]",lt={};lt[UL]=lt[$L]=lt[WL]=lt[jL]=lt[zL]=lt[HL]=lt[VL]=lt[GL]=lt[QL]=!0;lt[CL]=lt[kL]=lt[LL]=lt[TL]=lt[BL]=lt[RL]=lt[DL]=lt[FL]=lt[EL]=lt[IL]=lt[ML]=lt[AL]=lt[NL]=lt[qL]=lt[OL]=!1;function KL(t){return PL(t)&&xL(t.length)&&!!lt[SL(t)]}FP.exports=KL});var Uu=I((nV,IP)=>{"use strict";function JL(t){return function(e){return t(e)}}IP.exports=JL});var $u=I((Js,jo)=>{"use strict";var XL=ag(),MP=typeof Js=="object"&&Js&&!Js.nodeType&&Js,Xs=MP&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,YL=Xs&&Xs.exports===MP,pg=YL&&XL.process,ZL=function(){try{var t=Xs&&Xs.require&&Xs.require("util").types;return t||pg&&pg.binding&&pg.binding("util")}catch{}}();jo.exports=ZL});var OP=I((rV,qP)=>{"use strict";var eB=EP(),tB=Uu(),AP=$u(),NP=AP&&AP.isTypedArray,nB=NP?tB(NP):eB;qP.exports=nB});var mg=I((iV,LP)=>{"use strict";var rB=hP(),iB=yP(),oB=Bu(),sB=hg(),aB=RP(),cB=OP(),uB=Object.prototype,lB=uB.hasOwnProperty;function dB(t,e){var n=oB(t),i=!n&&iB(t),s=!n&&!i&&sB(t),c=!n&&!i&&!s&&cB(t),u=n||i||s||c,d=u?rB(t.length,String):[],f=d.length;for(var m in t)(e||lB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||aB(m,f)))&&d.push(m);return d}LP.exports=dB});var Wu=I((oV,BP)=>{"use strict";var fB=Object.prototype;function hB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||fB;return t===n}BP.exports=hB});var bg=I((sV,UP)=>{"use strict";function gB(t,e){return function(n){return t(e(n))}}UP.exports=gB});var WP=I((aV,$P)=>{"use strict";var pB=bg(),mB=pB(Object.keys,Object);$P.exports=mB});var zP=I((cV,jP)=>{"use strict";var bB=Wu(),_B=WP(),vB=Object.prototype,yB=vB.hasOwnProperty;function wB(t){if(!bB(t))return _B(t);var e=[];for(var n in Object(t))yB.call(t,n)&&n!="constructor"&&e.push(n);return e}jP.exports=wB});var _g=I((uV,HP)=>{"use strict";var SB=cg(),xB=gg();function PB(t){return t!=null&&xB(t.length)&&!SB(t)}HP.exports=PB});var ju=I((lV,VP)=>{"use strict";var CB=mg(),kB=zP(),TB=_g();function RB(t){return TB(t)?CB(t):kB(t)}VP.exports=RB});var QP=I((dV,GP)=>{"use strict";var DB=Qs(),FB=ju();function EB(t,e){return t&&DB(e,FB(e),t)}GP.exports=EB});var JP=I((fV,KP)=>{"use strict";function IB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}KP.exports=IB});var YP=I((hV,XP)=>{"use strict";var MB=Oo(),AB=Wu(),NB=JP(),qB=Object.prototype,OB=qB.hasOwnProperty;function LB(t){if(!MB(t))return NB(t);var e=AB(t),n=[];for(var i in t)i=="constructor"&&(e||!OB.call(t,i))||n.push(i);return n}XP.exports=LB});var zu=I((gV,ZP)=>{"use strict";var BB=mg(),UB=YP(),$B=_g();function WB(t){return $B(t)?BB(t,!0):UB(t)}ZP.exports=WB});var tC=I((pV,eC)=>{"use strict";var jB=Qs(),zB=zu();function HB(t,e){return t&&jB(e,zB(e),t)}eC.exports=HB});var sC=I((Ys,zo)=>{"use strict";var VB=nr(),oC=typeof Ys=="object"&&Ys&&!Ys.nodeType&&Ys,nC=oC&&typeof zo=="object"&&zo&&!zo.nodeType&&zo,GB=nC&&nC.exports===oC,rC=GB?VB.Buffer:void 0,iC=rC?rC.allocUnsafe:void 0;function QB(t,e){if(e)return t.slice();var n=t.length,i=iC?iC(n):new t.constructor(n);return t.copy(i),i}zo.exports=QB});var cC=I((mV,aC)=>{"use strict";function KB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function JB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function XB(){return[]}dC.exports=XB});var Hu=I((vV,hC)=>{"use strict";var YB=lC(),ZB=vg(),eU=Object.prototype,tU=eU.propertyIsEnumerable,fC=Object.getOwnPropertySymbols,nU=fC?function(t){return t==null?[]:(t=Object(t),YB(fC(t),function(e){return tU.call(t,e)}))}:ZB;hC.exports=nU});var pC=I((yV,gC)=>{"use strict";var rU=Qs(),iU=Hu();function oU(t,e){return rU(t,iU(t),e)}gC.exports=oU});var yg=I((wV,mC)=>{"use strict";function sU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var aU=bg(),cU=aU(Object.getPrototypeOf,Object);bC.exports=cU});var Sg=I((xV,_C)=>{"use strict";var uU=yg(),lU=wg(),dU=Hu(),fU=vg(),hU=Object.getOwnPropertySymbols,gU=hU?function(t){for(var e=[];t;)uU(e,dU(t)),t=lU(t);return e}:fU;_C.exports=gU});var yC=I((PV,vC)=>{"use strict";var pU=Qs(),mU=Sg();function bU(t,e){return pU(t,mU(t),e)}vC.exports=bU});var xg=I((CV,wC)=>{"use strict";var _U=yg(),vU=Bu();function yU(t,e,n){var i=e(t);return vU(t)?i:_U(i,n(t))}wC.exports=yU});var xC=I((kV,SC)=>{"use strict";var wU=xg(),SU=Hu(),xU=ju();function PU(t){return wU(t,xU,SU)}SC.exports=PU});var CC=I((TV,PC)=>{"use strict";var CU=xg(),kU=Sg(),TU=zu();function RU(t){return CU(t,TU,kU)}PC.exports=RU});var TC=I((RV,kC)=>{"use strict";var DU=mi(),FU=nr(),EU=DU(FU,"DataView");kC.exports=EU});var DC=I((DV,RC)=>{"use strict";var IU=mi(),MU=nr(),AU=IU(MU,"Promise");RC.exports=AU});var EC=I((FV,FC)=>{"use strict";var NU=mi(),qU=nr(),OU=NU(qU,"Set");FC.exports=OU});var MC=I((EV,IC)=>{"use strict";var LU=mi(),BU=nr(),UU=LU(BU,"WeakMap");IC.exports=UU});var Vu=I((IV,UC)=>{"use strict";var Pg=TC(),Cg=Lu(),kg=DC(),Tg=EC(),Rg=MC(),BC=Hs(),Ho=lg(),AC="[object Map]",$U="[object Object]",NC="[object Promise]",qC="[object Set]",OC="[object WeakMap]",LC="[object DataView]",WU=Ho(Pg),jU=Ho(Cg),zU=Ho(kg),HU=Ho(Tg),VU=Ho(Rg),Hi=BC;(Pg&&Hi(new Pg(new ArrayBuffer(1)))!=LC||Cg&&Hi(new Cg)!=AC||kg&&Hi(kg.resolve())!=NC||Tg&&Hi(new Tg)!=qC||Rg&&Hi(new Rg)!=OC)&&(Hi=function(t){var e=BC(t),n=e==$U?t.constructor:void 0,i=n?Ho(n):"";if(i)switch(i){case WU:return LC;case jU:return AC;case zU:return NC;case HU:return qC;case VU:return OC}return e});UC.exports=Hi});var WC=I((MV,$C)=>{"use strict";var GU=Object.prototype,QU=GU.hasOwnProperty;function KU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&QU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}$C.exports=KU});var zC=I((AV,jC)=>{"use strict";var JU=nr(),XU=JU.Uint8Array;jC.exports=XU});var Gu=I((NV,VC)=>{"use strict";var HC=zC();function YU(t){var e=new t.constructor(t.byteLength);return new HC(e).set(new HC(t)),e}VC.exports=YU});var QC=I((qV,GC)=>{"use strict";var ZU=Gu();function e$(t,e){var n=e?ZU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}GC.exports=e$});var JC=I((OV,KC)=>{"use strict";var t$=/\w*$/;function n$(t){var e=new t.constructor(t.source,t$.exec(t));return e.lastIndex=t.lastIndex,e}KC.exports=n$});var tk=I((LV,ek)=>{"use strict";var XC=Ou(),YC=XC?XC.prototype:void 0,ZC=YC?YC.valueOf:void 0;function r$(t){return ZC?Object(ZC.call(t)):{}}ek.exports=r$});var rk=I((BV,nk)=>{"use strict";var i$=Gu();function o$(t,e){var n=e?i$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}nk.exports=o$});var ok=I((UV,ik)=>{"use strict";var s$=Gu(),a$=QC(),c$=JC(),u$=tk(),l$=rk(),d$="[object Boolean]",f$="[object Date]",h$="[object Map]",g$="[object Number]",p$="[object RegExp]",m$="[object Set]",b$="[object String]",_$="[object Symbol]",v$="[object ArrayBuffer]",y$="[object DataView]",w$="[object Float32Array]",S$="[object Float64Array]",x$="[object Int8Array]",P$="[object Int16Array]",C$="[object Int32Array]",k$="[object Uint8Array]",T$="[object Uint8ClampedArray]",R$="[object Uint16Array]",D$="[object Uint32Array]";function F$(t,e,n){var i=t.constructor;switch(e){case v$:return s$(t);case d$:case f$:return new i(+t);case y$:return a$(t,n);case w$:case S$:case x$:case P$:case C$:case k$:case T$:case R$:case D$:return l$(t,n);case h$:return new i;case g$:case b$:return new i(t);case p$:return c$(t);case m$:return new i;case _$:return u$(t)}}ik.exports=F$});var ck=I(($V,ak)=>{"use strict";var E$=Oo(),sk=Object.create,I$=function(){function t(){}return function(e){if(!E$(e))return{};if(sk)return sk(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();ak.exports=I$});var lk=I((WV,uk)=>{"use strict";var M$=ck(),A$=wg(),N$=Wu();function q$(t){return typeof t.constructor=="function"&&!N$(t)?M$(A$(t)):{}}uk.exports=q$});var fk=I((jV,dk)=>{"use strict";var O$=Vu(),L$=$o(),B$="[object Map]";function U$(t){return L$(t)&&O$(t)==B$}dk.exports=U$});var mk=I((zV,pk)=>{"use strict";var $$=fk(),W$=Uu(),hk=$u(),gk=hk&&hk.isMap,j$=gk?W$(gk):$$;pk.exports=j$});var _k=I((HV,bk)=>{"use strict";var z$=Vu(),H$=$o(),V$="[object Set]";function G$(t){return H$(t)&&z$(t)==V$}bk.exports=G$});var Sk=I((VV,wk)=>{"use strict";var Q$=_k(),K$=Uu(),vk=$u(),yk=vk&&vk.isSet,J$=yk?K$(yk):Q$;wk.exports=J$});var Tk=I((GV,kk)=>{"use strict";var X$=rP(),Y$=oP(),Z$=fg(),eW=QP(),tW=tC(),nW=sC(),rW=cC(),iW=pC(),oW=yC(),sW=xC(),aW=CC(),cW=Vu(),uW=WC(),lW=ok(),dW=lk(),fW=Bu(),hW=hg(),gW=mk(),pW=Oo(),mW=Sk(),bW=ju(),_W=zu(),vW=1,yW=2,wW=4,xk="[object Arguments]",SW="[object Array]",xW="[object Boolean]",PW="[object Date]",CW="[object Error]",Pk="[object Function]",kW="[object GeneratorFunction]",TW="[object Map]",RW="[object Number]",Ck="[object Object]",DW="[object RegExp]",FW="[object Set]",EW="[object String]",IW="[object Symbol]",MW="[object WeakMap]",AW="[object ArrayBuffer]",NW="[object DataView]",qW="[object Float32Array]",OW="[object Float64Array]",LW="[object Int8Array]",BW="[object Int16Array]",UW="[object Int32Array]",$W="[object Uint8Array]",WW="[object Uint8ClampedArray]",jW="[object Uint16Array]",zW="[object Uint32Array]",it={};it[xk]=it[SW]=it[AW]=it[NW]=it[xW]=it[PW]=it[qW]=it[OW]=it[LW]=it[BW]=it[UW]=it[TW]=it[RW]=it[Ck]=it[DW]=it[FW]=it[EW]=it[IW]=it[$W]=it[WW]=it[jW]=it[zW]=!0;it[CW]=it[Pk]=it[MW]=!1;function Qu(t,e,n,i,s,c){var u,d=e&vW,f=e&yW,m=e&wW;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!pW(t))return t;var v=fW(t);if(v){if(u=uW(t),!d)return rW(t,u)}else{var x=cW(t),D=x==Pk||x==kW;if(hW(t))return nW(t,d);if(x==Ck||x==xk||D&&!s){if(u=f||D?{}:dW(t),!d)return f?oW(t,tW(u,t)):iW(t,eW(u,t))}else{if(!it[x])return s?t:{};u=lW(t,x,d)}}c||(c=new X$);var N=c.get(t);if(N)return N;c.set(t,u),mW(t)?t.forEach(function(B){u.add(Qu(B,e,n,B,t,c))}):gW(t)&&t.forEach(function(B,K){u.set(K,Qu(B,e,n,K,t,c))});var A=m?f?aW:sW:f?_W:bW,L=v?void 0:A(t);return Y$(L||t,function(B,K){L&&(K=B,B=t[K]),Z$(u,K,Qu(B,e,n,K,t,c))}),u}kk.exports=Qu});var Dk=I((QV,Rk)=>{"use strict";var HW=Tk(),VW=1,GW=4;function QW(t){return HW(t,VW|GW)}Rk.exports=QW});var Ek=I((Fk,Ku)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Ku=="object"&&Ku.exports?Ku.exports=e():t.log=e()})(Fk,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+Se)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(Se,X){return P=Je(Se),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(Se){F=Je(Se),ve()||B.setLevel(Se,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(Se){B.setLevel(B.levels.TRACE,Se)},B.disableAll=function(Se){B.setLevel(B.levels.SILENT,Se)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var Se in s)s[Se].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Go=I((Vo,na)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,v=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",Se=800,X=16,z=1,se=2,re=3,Re=1/0,ge=9007199254740991,me=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,wr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",lr="[object Array]",Pi="[object AsyncFunction]",dr="[object Boolean]",fr="[object Date]",Ki="[object DOMException]",Sr="[object Error]",xr="[object Function]",Pr="[object GeneratorFunction]",mt="[object Map]",hr="[object Number]",Ji="[object Null]",Bt="[object Object]",Ci="[object Promise]",Hr="[object Proxy]",gr="[object RegExp]",xt="[object Set]",sn="[object String]",Cr="[object Symbol]",Xi="[object Undefined]",jt="[object WeakMap]",ki="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",tt=/\b__p \+= '';/g,De=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(at.source),Yi=/<%-([\s\S]+?)%>/g,xa=/<%([\s\S]+?)%>/g,ls=/<%=([\s\S]+?)%>/g,Pa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ca=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ft=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Vr=/^0o[0-7]+$/i,Zi=/^(?:0|[1-9]\d*)$/,ka=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ta=/($^)/,jT=/['\n\r\u2028\u2029\\]/g,Ra="\\ud800-\\udfff",zT="\\u0300-\\u036f",HT="\\ufe20-\\ufe2f",VT="\\u20d0-\\u20ff",Dp=zT+HT+VT,Fp="\\u2700-\\u27bf",Ep="a-z\\xdf-\\xf6\\xf8-\\xff",GT="\\xac\\xb1\\xd7\\xf7",QT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",KT="\\u2000-\\u206f",JT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ip="A-Z\\xc0-\\xd6\\xd8-\\xde",Mp="\\ufe0e\\ufe0f",Ap=GT+QT+KT+JT,Vl="['\u2019]",XT="["+Ra+"]",Np="["+Ap+"]",Da="["+Dp+"]",qp="\\d+",YT="["+Fp+"]",Op="["+Ep+"]",Lp="[^"+Ra+Ap+qp+Fp+Ep+Ip+"]",Gl="\\ud83c[\\udffb-\\udfff]",ZT="(?:"+Da+"|"+Gl+")",Bp="[^"+Ra+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",eo="["+Ip+"]",Up="\\u200d",$p="(?:"+Op+"|"+Lp+")",eR="(?:"+eo+"|"+Lp+")",Wp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",jp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",zp=ZT+"?",Hp="["+Mp+"]?",tR="(?:"+Up+"(?:"+[Bp,Ql,Kl].join("|")+")"+Hp+zp+")*",nR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Vp=Hp+zp+tR,iR="(?:"+[YT,Ql,Kl].join("|")+")"+Vp,oR="(?:"+[Bp+Da+"?",Da,Ql,Kl,XT].join("|")+")",sR=RegExp(Vl,"g"),aR=RegExp(Da,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+oR+Vp,"g"),cR=RegExp([eo+"?"+Op+"+"+Wp+"(?="+[Np,eo,"$"].join("|")+")",eR+"+"+jp+"(?="+[Np,eo+$p,"$"].join("|")+")",eo+"?"+$p+"+"+Wp,eo+"+"+jp,rR,nR,qp,iR].join("|"),"g"),uR=RegExp("["+Up+Ra+Dp+Mp+"]"),lR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,dR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],fR=-1,ct={};ct[kr]=ct[vn]=ct[C]=ct[H]=ct[Z]=ct[ie]=ct[Ue]=ct[Le]=ct[Ge]=!0,ct[Vn]=ct[lr]=ct[Gn]=ct[dr]=ct[_n]=ct[fr]=ct[Sr]=ct[xr]=ct[mt]=ct[hr]=ct[Bt]=ct[gr]=ct[xt]=ct[sn]=ct[jt]=!1;var nt={};nt[Vn]=nt[lr]=nt[Gn]=nt[_n]=nt[dr]=nt[fr]=nt[kr]=nt[vn]=nt[C]=nt[H]=nt[Z]=nt[mt]=nt[hr]=nt[Bt]=nt[gr]=nt[xt]=nt[sn]=nt[Cr]=nt[ie]=nt[Ue]=nt[Le]=nt[Ge]=!0,nt[Sr]=nt[xr]=nt[jt]=!1;var hR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},gR={"&":"&","<":"<",">":">",'"':""","'":"'"},pR={"&":"&","<":"<",">":">",""":'"',"'":"'"},mR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},bR=parseFloat,_R=parseInt,Gp=typeof global=="object"&&global&&global.Object===Object&&global,vR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Gp||vR||Function("return this")(),Xl=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,Ti=Xl&&typeof na=="object"&&na&&!na.nodeType&&na,Qp=Ti&&Ti.exports===Xl,Yl=Qp&&Gp.process,En=function(){try{var E=Ti&&Ti.require&&Ti.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Kp=En&&En.isArrayBuffer,Jp=En&&En.isDate,Xp=En&&En.isMap,Yp=En&&En.isRegExp,Zp=En&&En.isSet,em=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function yR(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function cm(E,W){for(var $=E.length;$--&&to(W,E[$],0)>-1;);return $}function DR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var FR=rd(hR),ER=rd(gR);function IR(E){return"\\"+mR[E]}function MR(E,W){return E==null?t:E[W]}function no(E){return uR.test(E)}function AR(E){return lR.test(E)}function NR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function um(E,W){return function($){return E(W($))}}function Kr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function SD(r,o){var a=this.__data__,l=Ga(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}Tr.prototype.clear=_D,Tr.prototype.delete=vD,Tr.prototype.get=yD,Tr.prototype.has=wD,Tr.prototype.set=SD;function Rr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&v,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=xe(r);if(Q){if(S=k0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==xr||J==Pr;if(ni(r))return Hm(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:lb(r),!T)return M?p0(r,LD(S,r)):g0(r,wm(S,r))}else{if(!nt[J])return h?r:{};S=T0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),Bb(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):Ob(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,ke=Q?t:de(r);return In(ke||r,function(fe,Me){ke&&(Me=fe,fe=r[Me]),bs(S,Me,Nn(fe,o,a,Me,r,_))}),S}function BD(r){var o=Ot(r);return function(a){return Sm(a,r,o)}}function Sm(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function xm(r,o,a){if(typeof r!="function")throw new Mn(s);return Ps(function(){r.apply(t,a)},o)}function _s(r,o,a,l){var h=-1,_=Fa,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=ht(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ds,S=!1,o=new Fi(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:Ce(l),l<0&&(l+=h),l=a>l?0:$b(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Qr(h,T):l||(h[h.length]=T)}return h}var gd=Xm(),km=Xm(!0);function pr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&km(r,o,Ot)}function Ka(r,o){return Gr(o,function(a){return Mr(r[a])})}function Ii(r,o){o=ei(o,r);for(var a=0,l=o.length;r!=null&&ao}function WD(r,o){return r!=null&&Ke.call(r,o)}function jD(r,o){return r!=null&&o in Ye(r)}function zD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Fi(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&Ua.call(T,M,1),Ua.call(r,M,1);return r}function Om(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Ir(h)?Ua.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+ja(bm()*(o-r+1))}function r0(r,o,a,l){for(var h=-1,_=At(Wa((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=ja(o/2),o&&(r+=r);while(o);return a}function Fe(r,o){return Ud(hb(r,o,dn),r+"")}function i0(r){return ym(ho(r))}function o0(r,o){var a=ho(r);return sc(a,Ei(o,0,a.length))}function ws(r,o,a,l){if(!bt(r))return r;o=ei(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=br(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Ir(o[h+1])?[]:{})}bs(T,M,V),T=T[M]}return r}var Lm=za?function(r,o){return za.set(r,o),r}:dn,s0=$a?function(r,o){return $a(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function a0(r){return sc(ho(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:v0(r);if(V)return Ia(V);S=!1,h=ds,M=new Fi}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=ei(o,r),r=gb(r,o),r==null||delete r[br(On(o))]}function $m(r,o,a,l){return ws(r,o,a(Ii(r,o)),l)}function Ya(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var zm=JR||function(r){return qt.clearTimeout(r)};function Hm(r,o){if(o)return r.slice();var a=r.length,l=fm?fm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new La(o).set(new La(r)),o}function l0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function d0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function f0(r){return ms?Ye(ms.call(r)):{}}function Vm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Gm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Qm(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function eb(r){return Er(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&ic(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Fi:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(y,`{ /* [wrapped with `+o+`] */ -`)}function D0(r){return xe(r)||Ni(r)||!!(pm&&r&&r[pm])}function Ir(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Zi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=Se)return arguments[0]}else o=0;return r.apply(t,arguments)}}function sc(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,Cb(r,a)});function kb(r){var o=b(r);return o.__chain__=!0,o}function UF(r,o){return o(r),r}function ac(r,o){return o(r)}var $F=Er(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Ir(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:ac,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function WF(){return kb(this)}function jF(){return new An(this.value(),this.__chain__)}function zF(){this.__values__===t&&(this.__values__=Ub(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function HF(){return this}function VF(r){for(var o,a=this;a instanceof Va;){var l=vb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function GF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:ac,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function QF(){return Wm(this.__wrapped__,this.__actions__)}var KF=Za(function(r,o,a){Ke.call(r,a)?++r[a]:Dr(r,a,1)});function JF(r,o,a){var l=xe(r)?tm:UD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function XF(r,o){var a=xe(r)?Gr:Cm;return a(r,le(o,3))}var YF=Zm(yb),ZF=Zm(wb);function eE(r,o){return Ut(cc(r,o),1)}function tE(r,o){return Ut(cc(r,o),Re)}function nE(r,o,a){return a=a===t?1:Ce(a),Ut(cc(r,o),a)}function Tb(r,o){var a=xe(r)?In:Yr;return a(r,le(o,3))}function Rb(r,o){var a=xe(r)?wR:Pm;return a(r,le(o,3))}var rE=Za(function(r,o,a){Ke.call(r,a)?r[a].push(o):Dr(r,a,[o])});function iE(r,o,a,l){r=un(r)?r:ho(r),a=a&&!l?Ce(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),hc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&to(r,o,a)>-1}var oE=Fe(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Yr(r,function(S){_[++l]=h?wn(o,S,a):vs(S,o,a)}),_}),sE=Za(function(r,o,a){Dr(r,a,o)});function cc(r,o){var a=xe(r)?ht:Em;return a(r,le(o,3))}function aE(r,o,a,l){return r==null?[]:(xe(o)||(o=o==null?[]:[o]),a=l?t:a,xe(a)||(a=a==null?[]:[a]),Nm(r,o,a))}var cE=Za(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function uE(r,o,a){var l=xe(r)?ed:om,h=arguments.length<3;return l(r,le(o,4),a,h,Yr)}function lE(r,o,a){var l=xe(r)?SR:om,h=arguments.length<3;return l(r,le(o,4),a,h,Pm)}function dE(r,o){var a=xe(r)?Gr:Cm;return a(r,dc(le(o,3)))}function fE(r){var o=xe(r)?ym:i0;return o(r)}function hE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=Ce(o);var l=xe(r)?ND:o0;return l(r,o)}function gE(r){var o=xe(r)?qD:a0;return o(r)}function pE(r){if(r==null)return 0;if(un(r))return hc(r)?ro(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function mE(r,o,a){var l=xe(r)?td:c0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var bE=Fe(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),Nm(r,Ut(o,1),[])}),uc=XR||function(){return qt.Date.now()};function _E(r,o){if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){if(--r<1)return o.apply(this,arguments)}}function Db(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Fr(r,te,t,t,t,t,o)}function Fb(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=Fe(function(r,o,a){var l=A;if(a.length){var h=Kr(a,lo(jd));l|=P}return Fr(r,l,o,a,h)}),Eb=Fe(function(r,o,a){var l=A|L;if(a.length){var h=Kr(a,lo(Eb));l|=P}return Fr(o,l,r,a,h)});function Ib(r,o,a){o=a?t:o;var l=Fr(r,K,t,t,t,t,t,o);return l.placeholder=Ib.placeholder,l}function Mb(r,o,a){o=a?t:o;var l=Fr(r,F,t,t,t,t,t,o);return l.placeholder=Mb.placeholder,l}function Ab(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Nr=h;return l=h=t,V=Ct,S=r.apply(Nr,Yn),S}function de(Ct){return V=Ct,T=Ps(Me,o),Q?ae(Ct):S}function ke(Ct){var Yn=Ct-M,Nr=Ct-V,Zb=o-Yn;return J?zt(Zb,_-Nr):Zb}function fe(Ct){var Yn=Ct-M,Nr=Ct-V;return M===t||Yn>=o||Yn<0||J&&Nr>=_}function Me(){var Ct=uc();if(fe(Ct))return qe(Ct);T=Ps(Me,ke(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&zm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(uc())}function kn(){var Ct=uc(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return zm(T),T=Ps(Me,o),ae(M)}return T===t&&(T=Ps(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var vE=Fe(function(r,o){return xm(r,1,o)}),yE=Fe(function(r,o,a){return xm(r,Ln(o)||0,a)});function wE(r){return Fr(r,Be)}function lc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(lc.Cache||Rr),a}lc.Cache=Rr;function dc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function SE(r){return Fb(2,r)}var xE=u0(function(r,o){o=o.length==1&&xe(o[0])?ht(o[0],Sn(le())):ht(Ut(o,1),Sn(le()));var a=o.length;return Fe(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=Fe(function(r,o){var a=Kr(o,lo(zd));return Fr(r,P,t,o,a)}),Nb=Fe(function(r,o){var a=Kr(o,lo(Nb));return Fr(r,U,t,o,a)}),PE=Er(function(r,o){return Fr(r,ve,t,t,t,o)});function CE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:Ce(o),Fe(r,o)}function kE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(Ce(o),0),Fe(function(a){var l=a[o],h=ti(a,0,o);return l&&Qr(h,l),wn(r,this,h)})}function TE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Ab(r,o,{leading:l,maxWait:o,trailing:h})}function RE(r){return Db(r,1)}function DE(r,o){return zd(Rd(o),r)}function FE(){if(!arguments.length)return[];var r=arguments[0];return xe(r)?r:[r]}function EE(r){return Nn(r,x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function ME(r){return Nn(r,m|x)}function AE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function NE(r,o){return o==null||Sm(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var qE=rc(md),OE=rc(function(r,o){return r>=o}),Ni=Rm(function(){return arguments}())?Rm:function(r){return vt(r)&&Ke.call(r,"callee")&&!gm.call(r,"callee")},xe=$.isArray,LE=Kp?Sn(Kp):VD;function un(r){return r!=null&&fc(r.length)&&!Mr(r)}function Pt(r){return vt(r)&&un(r)}function BE(r){return r===!0||r===!1||vt(r)&&Zt(r)==dr}var ni=ZR||tf,UE=Jp?Sn(Jp):GD;function $E(r){return vt(r)&&r.nodeType===1&&!Cs(r)}function WE(r){if(r==null)return!0;if(un(r)&&(xe(r)||typeof r=="string"||typeof r.splice=="function"||ni(r)||fo(r)||Ni(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(xs(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function jE(r,o){return ys(r,o)}function zE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?ys(r,o,t,a):!!l}function Hd(r){if(!vt(r))return!1;var o=Zt(r);return o==Sr||o==Ki||typeof r.message=="string"&&typeof r.name=="string"&&!Cs(r)}function HE(r){return typeof r=="number"&&mm(r)}function Mr(r){if(!bt(r))return!1;var o=Zt(r);return o==xr||o==Pr||o==Pi||o==Hr}function qb(r){return typeof r=="number"&&r==Ce(r)}function fc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function vt(r){return r!=null&&typeof r=="object"}var Ob=Xp?Sn(Xp):KD;function VE(r,o){return r===o||_d(r,o,Nd(o))}function GE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function QE(r){return Lb(r)&&r!=+r}function KE(r){if(I0(r))throw new ye(i);return Dm(r)}function JE(r){return r===null}function XE(r){return r==null}function Lb(r){return typeof r=="number"||vt(r)&&Zt(r)==hr}function Cs(r){if(!vt(r)||Zt(r)!=Bt)return!1;var o=Ba(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Na.call(a)==GR}var Vd=Yp?Sn(Yp):JD;function YE(r){return qb(r)&&r>=-ge&&r<=ge}var Bb=Zp?Sn(Zp):XD;function hc(r){return typeof r=="string"||!xe(r)&&vt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||vt(r)&&Zt(r)==Cr}var fo=em?Sn(em):YD;function ZE(r){return r===t}function eI(r){return vt(r)&&Ht(r)==jt}function tI(r){return vt(r)&&Zt(r)==ki}var nI=rc(yd),rI=rc(function(r,o){return r<=o});function Ub(r){if(!r)return[];if(un(r))return hc(r)?Kn(r):cn(r);if(fs&&r[fs])return NR(r[fs]());var o=Ht(r),a=o==mt?ad:o==xt?Ia:ho;return a(r)}function Ar(r){if(!r)return r===0?r:0;if(r=Ln(r),r===Re||r===-Re){var o=r<0?-1:1;return o*me}return r===r?r:0}function Ce(r){var o=Ar(r),a=o%1;return o===o?a?o-a:o:0}function $b(r){return r?Ei(Ce(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=sm(r);var a=Qn.test(r);return a||Vr.test(r)?_R(r.slice(2),a?2:8):yn.test(r)?St:+r}function Wb(r){return mr(r,ln(r))}function iI(r){return r?Ei(Ce(r),-ge,ge):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var oI=co(function(r,o){if(xs(o)||un(o)){mr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&bs(r,a,o[a])}),jb=co(function(r,o){mr(o,ln(o),r)}),gc=co(function(r,o,a,l){mr(o,ln(o),r,l)}),sI=co(function(r,o,a,l){mr(o,Ot(o),r,l)}),aI=Er(hd);function cI(r,o){var a=ao(r);return o==null?a:wm(a,o)}var uI=Fe(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),mr(r,Md(r),a),l&&(a=Nn(a,m|v|x,y0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function TI(r,o){return Hb(r,dc(le(o)))}var RI=Er(function(r,o){return r==null?{}:t0(r,o)});function Hb(r,o){if(r==null)return{};var a=ht(Md(r),function(l){return[l]});return o=le(o),qm(r,a,function(l,h){return o(l,h[0])})}function DI(r,o,a){o=ei(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=bm();return zt(r+h*(o-r+bR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var UI=uo(function(r,o,a){return o=o.toLowerCase(),r+(a?Qb(o):o)});function Qb(r){return Kd(Ve(r).toLowerCase())}function Kb(r){return r=Ve(r),r&&r.replace(ka,FR).replace(aR,"")}function $I(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Ei(Ce(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function WI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(at,ER):r}function jI(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var zI=uo(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),HI=uo(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),VI=Ym("toLowerCase");function GI(r,o,a){r=Ve(r),o=Ce(o);var l=o?ro(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return nc(ja(h),a)+r+nc(Wa(h),a)}function QI(r,o,a){r=Ve(r),o=Ce(o);var l=o?ro(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&no(r))?ti(Kn(r),0,a):r.split(o,a)):[]}var tM=uo(function(r,o,a){return r+(a?" ":"")+Kd(o)});function nM(r,o,a){return r=Ve(r),a=a==null?0:Ei(Ce(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function rM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=gc({},o,l,ob);var h=gc({},o.imports,l.imports,ob),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ta,J="__p += '",ne=cd((o.escape||Ta).source+"|"+Q.source+"|"+(Q===ls?Xe:Ta).source+"|"+(o.evaluate||Ta).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++fR+"]")+` +`)}function D0(r){return xe(r)||Ni(r)||!!(pm&&r&&r[pm])}function Ir(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Zi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=Se)return arguments[0]}else o=0;return r.apply(t,arguments)}}function sc(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,Cb(r,a)});function kb(r){var o=b(r);return o.__chain__=!0,o}function UF(r,o){return o(r),r}function ac(r,o){return o(r)}var $F=Er(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Ir(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:ac,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function WF(){return kb(this)}function jF(){return new An(this.value(),this.__chain__)}function zF(){this.__values__===t&&(this.__values__=Ub(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function HF(){return this}function VF(r){for(var o,a=this;a instanceof Va;){var l=vb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function GF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:ac,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function QF(){return Wm(this.__wrapped__,this.__actions__)}var KF=Za(function(r,o,a){Ke.call(r,a)?++r[a]:Dr(r,a,1)});function JF(r,o,a){var l=xe(r)?tm:UD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function XF(r,o){var a=xe(r)?Gr:Cm;return a(r,le(o,3))}var YF=Zm(yb),ZF=Zm(wb);function eE(r,o){return Ut(cc(r,o),1)}function tE(r,o){return Ut(cc(r,o),Re)}function nE(r,o,a){return a=a===t?1:Ce(a),Ut(cc(r,o),a)}function Tb(r,o){var a=xe(r)?In:Yr;return a(r,le(o,3))}function Rb(r,o){var a=xe(r)?wR:Pm;return a(r,le(o,3))}var rE=Za(function(r,o,a){Ke.call(r,a)?r[a].push(o):Dr(r,a,[o])});function iE(r,o,a,l){r=un(r)?r:ho(r),a=a&&!l?Ce(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),hc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&to(r,o,a)>-1}var oE=Fe(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Yr(r,function(S){_[++l]=h?wn(o,S,a):vs(S,o,a)}),_}),sE=Za(function(r,o,a){Dr(r,a,o)});function cc(r,o){var a=xe(r)?ht:Em;return a(r,le(o,3))}function aE(r,o,a,l){return r==null?[]:(xe(o)||(o=o==null?[]:[o]),a=l?t:a,xe(a)||(a=a==null?[]:[a]),Nm(r,o,a))}var cE=Za(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function uE(r,o,a){var l=xe(r)?ed:om,h=arguments.length<3;return l(r,le(o,4),a,h,Yr)}function lE(r,o,a){var l=xe(r)?SR:om,h=arguments.length<3;return l(r,le(o,4),a,h,Pm)}function dE(r,o){var a=xe(r)?Gr:Cm;return a(r,dc(le(o,3)))}function fE(r){var o=xe(r)?ym:i0;return o(r)}function hE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=Ce(o);var l=xe(r)?ND:o0;return l(r,o)}function gE(r){var o=xe(r)?qD:a0;return o(r)}function pE(r){if(r==null)return 0;if(un(r))return hc(r)?ro(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function mE(r,o,a){var l=xe(r)?td:c0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var bE=Fe(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),Nm(r,Ut(o,1),[])}),uc=XR||function(){return qt.Date.now()};function _E(r,o){if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){if(--r<1)return o.apply(this,arguments)}}function Db(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Fr(r,te,t,t,t,t,o)}function Fb(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=Fe(function(r,o,a){var l=A;if(a.length){var h=Kr(a,lo(jd));l|=P}return Fr(r,l,o,a,h)}),Eb=Fe(function(r,o,a){var l=A|L;if(a.length){var h=Kr(a,lo(Eb));l|=P}return Fr(o,l,r,a,h)});function Ib(r,o,a){o=a?t:o;var l=Fr(r,K,t,t,t,t,t,o);return l.placeholder=Ib.placeholder,l}function Mb(r,o,a){o=a?t:o;var l=Fr(r,F,t,t,t,t,t,o);return l.placeholder=Mb.placeholder,l}function Ab(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Nr=h;return l=h=t,V=Ct,S=r.apply(Nr,Yn),S}function de(Ct){return V=Ct,T=Ps(Me,o),Q?ae(Ct):S}function ke(Ct){var Yn=Ct-M,Nr=Ct-V,Zb=o-Yn;return J?zt(Zb,_-Nr):Zb}function fe(Ct){var Yn=Ct-M,Nr=Ct-V;return M===t||Yn>=o||Yn<0||J&&Nr>=_}function Me(){var Ct=uc();if(fe(Ct))return qe(Ct);T=Ps(Me,ke(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&zm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(uc())}function kn(){var Ct=uc(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return zm(T),T=Ps(Me,o),ae(M)}return T===t&&(T=Ps(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var vE=Fe(function(r,o){return xm(r,1,o)}),yE=Fe(function(r,o,a){return xm(r,Ln(o)||0,a)});function wE(r){return Fr(r,Be)}function lc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(lc.Cache||Rr),a}lc.Cache=Rr;function dc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function SE(r){return Fb(2,r)}var xE=u0(function(r,o){o=o.length==1&&xe(o[0])?ht(o[0],Sn(le())):ht(Ut(o,1),Sn(le()));var a=o.length;return Fe(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=Fe(function(r,o){var a=Kr(o,lo(zd));return Fr(r,P,t,o,a)}),Nb=Fe(function(r,o){var a=Kr(o,lo(Nb));return Fr(r,U,t,o,a)}),PE=Er(function(r,o){return Fr(r,ve,t,t,t,o)});function CE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:Ce(o),Fe(r,o)}function kE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(Ce(o),0),Fe(function(a){var l=a[o],h=ti(a,0,o);return l&&Qr(h,l),wn(r,this,h)})}function TE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Ab(r,o,{leading:l,maxWait:o,trailing:h})}function RE(r){return Db(r,1)}function DE(r,o){return zd(Rd(o),r)}function FE(){if(!arguments.length)return[];var r=arguments[0];return xe(r)?r:[r]}function EE(r){return Nn(r,x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function ME(r){return Nn(r,m|x)}function AE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function NE(r,o){return o==null||Sm(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var qE=rc(md),OE=rc(function(r,o){return r>=o}),Ni=Rm(function(){return arguments}())?Rm:function(r){return yt(r)&&Ke.call(r,"callee")&&!gm.call(r,"callee")},xe=$.isArray,LE=Kp?Sn(Kp):VD;function un(r){return r!=null&&fc(r.length)&&!Mr(r)}function Pt(r){return yt(r)&&un(r)}function BE(r){return r===!0||r===!1||yt(r)&&Zt(r)==dr}var ni=ZR||tf,UE=Jp?Sn(Jp):GD;function $E(r){return yt(r)&&r.nodeType===1&&!Cs(r)}function WE(r){if(r==null)return!0;if(un(r)&&(xe(r)||typeof r=="string"||typeof r.splice=="function"||ni(r)||fo(r)||Ni(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(xs(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function jE(r,o){return ys(r,o)}function zE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?ys(r,o,t,a):!!l}function Hd(r){if(!yt(r))return!1;var o=Zt(r);return o==Sr||o==Ki||typeof r.message=="string"&&typeof r.name=="string"&&!Cs(r)}function HE(r){return typeof r=="number"&&mm(r)}function Mr(r){if(!bt(r))return!1;var o=Zt(r);return o==xr||o==Pr||o==Pi||o==Hr}function qb(r){return typeof r=="number"&&r==Ce(r)}function fc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function yt(r){return r!=null&&typeof r=="object"}var Ob=Xp?Sn(Xp):KD;function VE(r,o){return r===o||_d(r,o,Nd(o))}function GE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function QE(r){return Lb(r)&&r!=+r}function KE(r){if(I0(r))throw new ye(i);return Dm(r)}function JE(r){return r===null}function XE(r){return r==null}function Lb(r){return typeof r=="number"||yt(r)&&Zt(r)==hr}function Cs(r){if(!yt(r)||Zt(r)!=Bt)return!1;var o=Ba(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Na.call(a)==GR}var Vd=Yp?Sn(Yp):JD;function YE(r){return qb(r)&&r>=-ge&&r<=ge}var Bb=Zp?Sn(Zp):XD;function hc(r){return typeof r=="string"||!xe(r)&&yt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||yt(r)&&Zt(r)==Cr}var fo=em?Sn(em):YD;function ZE(r){return r===t}function eI(r){return yt(r)&&Ht(r)==jt}function tI(r){return yt(r)&&Zt(r)==ki}var nI=rc(yd),rI=rc(function(r,o){return r<=o});function Ub(r){if(!r)return[];if(un(r))return hc(r)?Kn(r):cn(r);if(fs&&r[fs])return NR(r[fs]());var o=Ht(r),a=o==mt?ad:o==xt?Ia:ho;return a(r)}function Ar(r){if(!r)return r===0?r:0;if(r=Ln(r),r===Re||r===-Re){var o=r<0?-1:1;return o*me}return r===r?r:0}function Ce(r){var o=Ar(r),a=o%1;return o===o?a?o-a:o:0}function $b(r){return r?Ei(Ce(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=sm(r);var a=Qn.test(r);return a||Vr.test(r)?_R(r.slice(2),a?2:8):yn.test(r)?St:+r}function Wb(r){return mr(r,ln(r))}function iI(r){return r?Ei(Ce(r),-ge,ge):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var oI=co(function(r,o){if(xs(o)||un(o)){mr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&bs(r,a,o[a])}),jb=co(function(r,o){mr(o,ln(o),r)}),gc=co(function(r,o,a,l){mr(o,ln(o),r,l)}),sI=co(function(r,o,a,l){mr(o,Ot(o),r,l)}),aI=Er(hd);function cI(r,o){var a=ao(r);return o==null?a:wm(a,o)}var uI=Fe(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),mr(r,Md(r),a),l&&(a=Nn(a,m|v|x,y0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function TI(r,o){return Hb(r,dc(le(o)))}var RI=Er(function(r,o){return r==null?{}:t0(r,o)});function Hb(r,o){if(r==null)return{};var a=ht(Md(r),function(l){return[l]});return o=le(o),qm(r,a,function(l,h){return o(l,h[0])})}function DI(r,o,a){o=ei(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=bm();return zt(r+h*(o-r+bR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var UI=uo(function(r,o,a){return o=o.toLowerCase(),r+(a?Qb(o):o)});function Qb(r){return Kd(Ve(r).toLowerCase())}function Kb(r){return r=Ve(r),r&&r.replace(ka,FR).replace(aR,"")}function $I(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Ei(Ce(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function WI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(at,ER):r}function jI(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var zI=uo(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),HI=uo(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),VI=Ym("toLowerCase");function GI(r,o,a){r=Ve(r),o=Ce(o);var l=o?ro(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return nc(ja(h),a)+r+nc(Wa(h),a)}function QI(r,o,a){r=Ve(r),o=Ce(o);var l=o?ro(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&no(r))?ti(Kn(r),0,a):r.split(o,a)):[]}var tM=uo(function(r,o,a){return r+(a?" ":"")+Kd(o)});function nM(r,o,a){return r=Ve(r),a=a==null?0:Ei(Ce(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function rM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=gc({},o,l,ob);var h=gc({},o.imports,l.imports,ob),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ta,J="__p += '",ne=cd((o.escape||Ta).source+"|"+Q.source+"|"+(Q===ls?Xe:Ta).source+"|"+(o.evaluate||Ta).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++fR+"]")+` `;r.replace(ne,function(fe,Me,qe,Cn,tn,kn){return qe||(qe=Cn),J+=r.slice(V,kn).replace(jT,IR),Me&&(T=!0,J+=`' + __e(`+Me+`) + '`),tn&&(M=!0,J+=`'; @@ -58,25 +58,25 @@ __p += '`),qe&&(J+=`' + function print() { __p += __j.call(arguments, '') } `:`; `)+J+`return __p -}`;var ke=Xb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(ke.source=J,Hd(ke))throw ke;return ke}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return sm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=am(l,h),S=cm(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,lm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=am(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Ce(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(no(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-ro(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=uo(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Ym("toUpperCase");function Jb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Xb=Fe(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Fe(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Ce(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||xe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,ke=M&&!ae;if(!_&&Q){S=ke?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&ke?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(xe(_)?_:[],h)}return this[a](function(S){return o.apply(xe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(so,l)||(so[l]=[]),so[l].push({name:o,func:a})}}),so[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):Ti?((Ti.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Vk=I((m3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((bG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Vg="\\",bj=/^\s+$/,_j=/(?:[^\\]|^)\\$/,vj=/^\\!/,yj=/^\\#/,wj=/\r?\n/g,Sj=/^\.*\/|^\.+$/,Gg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,xj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),Pj=/([0-z])-([0-z])/g,lT=()=>!1,Cj=t=>t.replace(Pj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),kj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Tj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Vg],[/\\\\/g,()=>Vg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Vg?`\\[${n}${kj(i)}${s}`:s==="]"&&i.length%2===0?`[${Cj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Rj=(t,e)=>{let n=aT[t];return n||(n=Tj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Jg=t=>typeof t=="string",Dj=t=>t&&Jg(t)&&!bj.test(t)&&!_j.test(t)&&t.indexOf("#")!==0,Fj=t=>t.split(wj),Qg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Ej=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vj,"!").replace(yj,"#");let s=Rj(t,e);return new Qg(n,t,i,s)},Ij=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Jg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>Sj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Kg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){xj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Dj(e)){let n=Ej(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Jg(e)?Fj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ij),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Gg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Gg)+Gg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Kg(t),Mj=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Mj;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var i2={};nA(i2,{API_ENDPOINT:()=>e2});module.exports=rA(i2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=r_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=t_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&n_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},qi;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(qi||(qi={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=r_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ee=gt(kS());var TS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&TS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function RS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var DS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,DS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var FS=require("crypto"),og={randomUUID:FS.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return RS(i)}var $s=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},pi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},wt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Te(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Hk=gt(Dk());var Ju=gt(require("fs")),ea=gt(Ek()),Mk=gt(require("os")),ta=gt(require("path")),KW=process.env.TEST_TMPDIR?ta.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ta.default.join(Mk.default.homedir(),".local","state"),Ik=ta.default.join(KW,"augment","augment-server.log"),Zs;function JW(){if(Zs)return Zs;let t=ta.default.dirname(Ik);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"info").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?ea.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "info"`,ea.default.setLevel("info")),ea.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Ik,`${c} [${i.toUpperCase()}] ${s} +}`;var ke=Xb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(ke.source=J,Hd(ke))throw ke;return ke}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return sm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=am(l,h),S=cm(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,lm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=am(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Ce(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(no(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-ro(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=uo(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Ym("toUpperCase");function Jb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Xb=Fe(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Fe(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Ce(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||xe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,ke=M&&!ae;if(!_&&Q){S=ke?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&ke?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(xe(_)?_:[],h)}return this[a](function(S){return o.apply(xe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(so,l)||(so[l]=[]),so[l].push({name:o,func:a})}}),so[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):Ti?((Ti.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Vk=I((m3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((bG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Vg="\\",bj=/^\s+$/,_j=/(?:[^\\]|^)\\$/,vj=/^\\!/,yj=/^\\#/,wj=/\r?\n/g,Sj=/^\.*\/|^\.+$/,Gg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,xj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),Pj=/([0-z])-([0-z])/g,lT=()=>!1,Cj=t=>t.replace(Pj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),kj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Tj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Vg],[/\\\\/g,()=>Vg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Vg?`\\[${n}${kj(i)}${s}`:s==="]"&&i.length%2===0?`[${Cj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Rj=(t,e)=>{let n=aT[t];return n||(n=Tj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Jg=t=>typeof t=="string",Dj=t=>t&&Jg(t)&&!bj.test(t)&&!_j.test(t)&&t.indexOf("#")!==0,Fj=t=>t.split(wj),Qg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Ej=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vj,"!").replace(yj,"#");let s=Rj(t,e);return new Qg(n,t,i,s)},Ij=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Jg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>Sj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Kg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){xj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Dj(e)){let n=Ej(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Jg(e)?Fj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ij),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Gg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Gg)+Gg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Kg(t),Mj=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Mj;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var i2={};nA(i2,{API_ENDPOINT:()=>e2});module.exports=rA(i2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=r_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=t_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&n_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},qi;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(qi||(qi={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=r_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ee=gt(kS());var TS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&TS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function RS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var DS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,DS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var FS=require("crypto"),og={randomUUID:FS.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return RS(i)}var $s=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},pi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},vt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Te(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Hk=gt(Dk());var Ju=gt(require("fs")),ea=gt(Ek()),Mk=gt(require("os")),ta=gt(require("path")),KW=process.env.TEST_TMPDIR?ta.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ta.default.join(Mk.default.homedir(),".local","state"),Ik=ta.default.join(KW,"augment","augment-server.log"),Zs;function JW(){if(Zs)return Zs;let t=ta.default.dirname(Ik);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"info").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?ea.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "info"`,ea.default.setLevel("info")),ea.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Ik,`${c} [${i.toUpperCase()}] ${s} `)}},Zs=ea.default.getLogger("server"),n&&Zs.warn(n),Zs}function _e(t){let e=JW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var ra=gt(Go()),Qo=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,ra.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: ${this.diff(this.value,e).map(n=>` - ${n}`).join(` `)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ra.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ra.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var $k=require("events"),Dn=gt(require("fs")),Wk=gt(ng());var Ak;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>Se}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,Re,ge,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=Re||m,this.fragment=ge||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:Re,query:ge,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),Re===void 0?Re=this.path:Re===null&&(Re=m),ge===void 0?ge=this.query:ge===null&&(ge=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&Re===this.path&&ge===this.query&&me===this.fragment?this:new A(se,re,Re,ge,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,Re=-1;for(let ge=0;ge=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[me];St!==void 0?(Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re+=St):Re===-1&&(Re=ge)}}return Re!==-1&&(re+=encodeURIComponent(X.substring(Re))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:Re,authority:ge,path:me,query:St,fragment:We}=X;if(Re&&(re+=Re,re+=":"),(ge||Re==="file")&&(re+=v,re+=v),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var Se;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,Re=!1;re[0]!==Dt&&(re=Dt+re,Re=!0);let ge=Je.resolve(re,...se);return Re&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(Se||(Se={}))})(),Ak=i})();var{URI:Ze,Utils:Tt}=Ak;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=qi.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Vi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Nk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function qk(t){let e=await nn.lstat(t);return Nk(e)}function Ok(t){try{return Gi(t).type==="File"}catch{return!1}}async function Lk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Gi(t){let e=Vi.lstatSync(t);return Nk(e)}function ia(t){let e=[],n=Vi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function oa(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Bk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Uk(t){return Vi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=Wk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},_i=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},vi=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new $k.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,jk=[];function zk(t){jk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new vi(t))},get workspaceFolders(){return jk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Uk(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},sa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Hk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Vk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function aa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function yi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){aa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ca(t,e=""){let n=[];if(typeof t!="object"||t===null)return Gk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${ca(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ca(s,e+" "))):n.push(`${e}${i}: ${Gk(s)}`);return n.join(` -`)}function Gk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ua(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>wt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return $s()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Qi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Te(U,!0)}`),wt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?wt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),wt.fromResponse(B).status===10&&this._logger.debug(`object size is ${ca(s)} `),wt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Te(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Qi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Te(P,!0)}`),P.stack&&this._logger.error(P.stack),wt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?wt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),wt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?ca(s):0} `),wt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` +`)}function Gk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ua(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>vt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return $s()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Qi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Te(U,!0)}`),vt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?vt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),vt.fromResponse(B).status===10&&this._logger.debug(`object size is ${ca(s)} `),vt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Te(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Qi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Te(P,!0)}`),P.stack&&this._logger.error(P.stack),vt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?vt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),vt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?ca(s):0} `),vt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` `);){let Je=te.indexOf(` -`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let Se=JSON.parse(Dt);yield c(Se)}catch(Se){K.error(`JSON parse failed for ${Dt}: ${Te(Se)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!wt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:yi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:yi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:yi("BackChatResultNode","id",d.id),type:yi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?yi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:yi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:yi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);aa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);aa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version)}let c=[];if(e.languages===void 0)c=Og;else{aa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Qi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Kk=gt(Go());var la="augment.sessions",Qk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===la&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(la,JSON.stringify({accessToken:n,tenantURL:i,scopes:Qk}))}async getSession(){let n=await this._context.secrets.get(la);if(n){let i=JSON.parse(n);if((0,Kk.isEqual)(i.scopes,Qk))return i}return null}async removeSession(){await this._context.secrets.get(la)&&await this._context.secrets.delete(la)}};var Yo=require("crypto"),jg=require("url");var lj=["email"],ol="augment.oauth-state",dj=process.env.TEST_HOSTNAME??".augmentcode.com",fj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Jk((0,Yo.randomBytes)(32)),n=Jk(hj(Buffer.from(e))),i=(0,Yo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=gj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function pj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>pj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} +`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let Se=JSON.parse(Dt);yield c(Se)}catch(Se){K.error(`JSON parse failed for ${Dt}: ${Te(Se)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!vt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:yi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:yi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:yi("BackChatResultNode","id",d.id),type:yi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?yi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:yi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:yi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);aa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);aa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version),e.feature_flags.vscode_agent_mode_min_version!==void 0&&(s.vscodeAgentModeMinVersion=e.feature_flags.vscode_agent_mode_min_version)}let c=[];if(e.languages===void 0)c=Og;else{aa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Qi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Kk=gt(Go());var la="augment.sessions",Qk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===la&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(la,JSON.stringify({accessToken:n,tenantURL:i,scopes:Qk}))}async getSession(){let n=await this._context.secrets.get(la);if(n){let i=JSON.parse(n);if((0,Kk.isEqual)(i.scopes,Qk))return i}return null}async removeSession(){await this._context.secrets.get(la)&&await this._context.secrets.delete(la)}};var Yo=require("crypto"),jg=require("url");var lj=["email"],ol="augment.oauth-state",dj=process.env.TEST_HOSTNAME??".augmentcode.com",fj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Jk((0,Yo.randomBytes)(32)),n=Jk(hj(Buffer.from(e))),i=(0,Yo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=gj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function pj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>pj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} suffixReplacementText: ${this.suffixReplacementText} skippedSuffix: ${this.skippedSuffix} start: ${this.range.startOffset} end: ${this.range.endOffset}`}};var ul=class{constructor(e,n,i){this._extension=e;this._configListener=n;this._metricsReporter=i;this.generateCompletion=Xk(this.generateCompletion.bind(this),s=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:s})})}_logger=_e("CompletionsModel");_completionSerial=0;async generateCompletion(e,n,i){let s=this._extension.workspaceManager;if(s===void 0)return;let c=s.completionServer,u=c.createRequestId(),d=s.safeResolvePathName(e.uri);if(d===void 0)return;let[f,m]=[d.rootPath,d.relPath],v=e.offsetAt(n),[x,D,N,A,L]=this._extractPrefixAndSuffix(e,v);v+=L;let B={prefixBegin:N,cursorPosition:v,suffixEnd:A},F=(await this._requestCompletion(s,c,u,e,x,D,B,d,i)).completionItems;if(F.length===0)return{completions:[],document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,occuredAt:new Date,isReused:!1};F.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],te=F[0];return te.skippedSuffix.includes(` -`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let v=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(v))throw new pi(`Language ${v} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,v,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),mj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(wt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new pi("Cancelled in back end");if(wt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new pi("Retriable error on back end");let U=Te(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let v=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new _i(v,x),L=new _i(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends es{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function zg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends es{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=zg(i),[f,m]=zg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Yu(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Ko(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Lk(n.fsPath)||await oa(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var eT=gt(require("crypto")),fa=2023102300,da=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},ts=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=eT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new da(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var MT=gt(Go());var Hg=class{async read(e){try{return await Bk(e)}catch{return}}stat(e){try{return Gi(e)}catch{return}}};function tT(){return new Hg}var nT=gt(require("crypto"));function rT(t){let e=nT.createHash("sha256");return e.update(t),e.digest("hex")}var tp=gt(hT());var ha=class{accepted=!0},wi=class{accepted=!1};var st=gt(require("node:path"));var ga=st.posix.sep,Aj=new RegExp("/\\/g");function gT(t){return st.isAbsolute(t)}function Nj(t){return st.sep==="\\"?t.replace(Aj,ga):t}function pT(t){return Nj(t)}function mT(t){return t.with({path:st.dirname(t.fsPath)})}function gl(t){let e=st.dirname(t);return e==="."?"":qj(e)}function qj(t){return t.endsWith(ga)?t:t+ga}function ns(t){for(;;){if(t===st.sep||t===ga||!t.endsWith(ga)&&!t.endsWith(st.sep))return t;t=t.slice(0,-1)}}function pa(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return st.relative(n,i)}function $r(t,e){let n=pa(t,e);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function et(t,e,n=!1){let i=st.join(t,e);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function ma(t,e){let n=pa(t,e);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(t,e){return ma(t,e)!==void 0}function pl(t,e){let n=pa(t,e);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?Ze.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await qk(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=st.dirname(i.fsPath);if(st.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function Oj(t){return!1}function Jt(t){return ns(t.fsPath)}function bT(t){return t.fsPath}function Wr(t){if(t.scheme==="file"||t.scheme==="untitled"||Oj(t))return Jt(t)}var Si=class extends ha{explicit=!1;format(){return"Tracked"}},Xg=class extends ha{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},Yg=class extends wi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},Zg=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if($r(i,n)!==""){let u=n;for(;;){u=mT(u);let d=$r(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=$r(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new Yg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new Xg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new Si}},ep=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await Zg.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new Si}};async function Lj(t,e){let n=Tt.joinPath(t,e);try{let i=await Ko(n.fsPath),s=(0,tp.default)({ignorecase:!1});return s.add(i),s}catch{}}var rs=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await ep.buildNew(this._ignoreSources,e,n)}},ba=class{constructor(e){this.filename=e}getName(e){return bT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Lj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,tp.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: +`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let v=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(v))throw new pi(`Language ${v} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,v,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),mj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(vt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new pi("Cancelled in back end");if(vt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new pi("Retriable error on back end");let U=Te(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let v=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new _i(v,x),L=new _i(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends es{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function zg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends es{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=zg(i),[f,m]=zg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Yu(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Ko(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Lk(n.fsPath)||await oa(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var eT=gt(require("crypto")),fa=2023102300,da=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},ts=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=eT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new da(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var MT=gt(Go());var Hg=class{async read(e){try{return await Bk(e)}catch{return}}stat(e){try{return Gi(e)}catch{return}}};function tT(){return new Hg}var nT=gt(require("crypto"));function rT(t){let e=nT.createHash("sha256");return e.update(t),e.digest("hex")}var tp=gt(hT());var ha=class{accepted=!0},wi=class{accepted=!1};var st=gt(require("node:path"));var ga=st.posix.sep,Aj=new RegExp("/\\/g");function gT(t){return st.isAbsolute(t)}function Nj(t){return st.sep==="\\"?t.replace(Aj,ga):t}function pT(t){return Nj(t)}function mT(t){return t.with({path:st.dirname(t.fsPath)})}function gl(t){let e=st.dirname(t);return e==="."?"":qj(e)}function qj(t){return t.endsWith(ga)?t:t+ga}function ns(t){for(;;){if(t===st.sep||t===ga||!t.endsWith(ga)&&!t.endsWith(st.sep))return t;t=t.slice(0,-1)}}function pa(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return st.relative(n,i)}function $r(t,e){let n=pa(t,e);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function et(t,e,n=!1){let i=st.join(t,e);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function ma(t,e){let n=pa(t,e);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(t,e){return ma(t,e)!==void 0}function pl(t,e){let n=pa(t,e);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?Ze.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await qk(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=st.dirname(i.fsPath);if(st.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function Oj(t){return!1}function Jt(t){return ns(t.fsPath)}function bT(t){return t.fsPath}function Wr(t){if(t.scheme==="file"||t.scheme==="untitled"||Oj(t))return Jt(t)}var Si=class extends ha{explicit=!1;format(){return"Tracked"}},Xg=class extends ha{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},Yg=class extends wi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},Zg=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if($r(i,n)!==""){let u=n;for(;;){u=mT(u);let d=$r(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=$r(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new Yg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new Xg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new Si}},ep=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await Zg.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new Si}};async function Lj(t,e){let n=Tt.joinPath(t,e);try{let i=await Ko(n.fsPath),s=(0,tp.default)({ignorecase:!1});return s.add(i),s}catch{}}var rs=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await ep.buildNew(this._ignoreSources,e,n)}},ba=class{constructor(e){this.filename=e}getName(e){return bT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Lj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,tp.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: `:"")+Array.from(this).map(([n,i])=>` - ${n}: ${i} ms`).join(` `)}},yl=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},np=class extends yl{increment(e=1){this._add(e)}},rp=class extends yl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},is=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new np,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new rp,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` `),i=" - timing stats:",s=Array.from(this.timings.entries()).map(([c,u])=>` - ${c}: ${u.value} ms`).join(` `);return e+` `+n+` `+i+` -`+s}};var _T=gt(require("os"));function vT(t){let e=_T.default.homedir();return pl(t,e)}var _a=gt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=$r(e,x),A=ia(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=et(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new op(c,i)}var os=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!_a.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!_a.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new is("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=$r(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ia(s.fsPath);this._readDirMs.stop();for(let[m,v]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=et(u,m,v==="Directory"),A=d.getPathInfo(N,v);this._filterMs.stop();let L=N;v==="File"?this._filesEmitted.increment():v==="Directory"?(L=ns(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,v,A],this._yieldMs.stop(),v==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},ip=class extends wi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=_a.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new ip(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new Si:i.getPathInfo(e)}},op=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new sp(i,this._fileExtensions)}_getIgnoreStack(n){if(gT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},sp=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var ap=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends ot{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new ap;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var cp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends cp{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},jr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var Bj=Object.freeze({git:{name:".git",type:"Directory"}});async function yT(t){for(let[e,n]of Object.entries(Bj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var va=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},up=class{throwError(e,n){throw new va(e,n)}},lp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},dp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},fp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},hp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new dp(i,this.process)}},gp=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof va?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof va&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function ss(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends ot{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=ss(e,n),s=ss(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=ss(e.addedBlobs,n.addedBlobs),u=ss(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=ss(e.deletedBlobs,n.deletedBlobs),u=ss(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";wt.isAPIErrorWithStatus(d,5)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function xi(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var pp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},mp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends ot{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new is("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=pT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return ua(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return et(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof da){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,Te(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let v={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,v)}_newProbeBatch(){return new mp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),xi(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),xi(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,v]of i.items)this._pathMapVerify(v.folderId,v.relPath,m)&&(u.has(v.blobName)?this._enqueueForUpload(m,v.folderId,v.relPath,!1):d.has(v.blobName)?this._enqueueForProbeRetry(m,v):this._pathMapUpdate(v.folderId,v.relPath,m,v.blobName,v.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new pp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:v}]=n;if(!this._pathMapVerify(m,v,f))return;let x=this._getMtime(d,m,v,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,v,f);if(D===void 0)return;let N=this._calculateBlobName(v,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,v,f,Te(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:v,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let v of f)this._pathMapInvalidate(v.folderId,v.pathName,v.seq,this._fileUploadFailure);else for(let v of f){let x={folderId:v.folderId,relPath:v.pathName,blobName:m,mtime:v.mtime,startTime:Date.now()};this._enqueueForProbeRetry(v.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Te(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var zr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},bp=class{constructor(e=fa){this.namingVersion=e}entries=new Array};function $j(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function Wj(t){return et(t,zr.cacheFileName)}function Fl(t){let e=Wj(t);return Ok(e)}async function ST(t,e){let n=et(t,zr.cacheFileName),i=et(e,zr.cacheFileName);await oa(e),await Dg(n,i)}async function xT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=et(e,zr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Ko(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==fa)i.info(`blob naming version ${d.namingVersion} !== ${fa}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let v=$j(m);v!==void 0&&(n.set(f,{mtime:v.mtime,name:v.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=Te(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends zr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=et(this._cacheDirName,zr.cacheFileName),this._tmpFileName=et(this._cacheDirName,zr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new bp;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await oa(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await Dg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${fa} to ${this._cacheFileName}`)}};var CT=gt(Go());var PT=require("console");var _p=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},as=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},cs=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new as(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,v=Math.min(m,e-s.length);s.length+=v,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=v;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var kT=6,TT=6,ya=kT*TT,zj=1e3,Hj=2e3,Vj=60*1e3,Gj=200,Qj=30*1e3,Kj=30*1e3,Jj=60*1e3,vp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Zo(TT),this.addChangeset(s),this.changesSinceUpload=new cs}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new cs})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},yp=class extends vp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends ot{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new jr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,Hj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,Vj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new jr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let v=m.recentChanges(!1);if(v===void 0||v.blobName===void 0)continue;d.set(f,v.blobName);let x=m.getText(),D=v.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:v.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let v=m.changeTracker.getChunks(n,f.getText().length);if(v.length!==0)for(let x of v)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new yp(n,i,d,f,d),c.set(i,u);let m=u.getText(),v=this._blobNameCalculator.calculate(i,m);if(v===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(v)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=v,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let v of c){let[x,D,N]=v;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let v=d.changesSinceUpload.length>=Gj;v||(v=d.changesSinceUpload.countChunks(this._chunkSize)>=ya),v&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let v=s.changesSinceUpload.countChunks(this._chunkSize);v>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),v>=ya&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=kT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),v=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,CT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:v,changesSinceUpload:new cs},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Qj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${Te(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${Te(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Jj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size{if(!(Date.now()-u>Kj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let v of m)this.notifyMissingBlob(v.folderId,v.pathName,f);else if(d.has(f))for(let v of m)this._requeueVerifyWaiter(v,f);else for(let v of m)this._commit(v,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),xi(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),xi(this._logger,i,n.nonindexedBlobNames,5))}};var wp=gt(Go());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] +`+s}};var _T=gt(require("os"));function vT(t){let e=_T.default.homedir();return pl(t,e)}var _a=gt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=$r(e,x),A=ia(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=et(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new op(c,i)}var os=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!_a.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!_a.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new is("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=$r(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ia(s.fsPath);this._readDirMs.stop();for(let[m,v]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=et(u,m,v==="Directory"),A=d.getPathInfo(N,v);this._filterMs.stop();let L=N;v==="File"?this._filesEmitted.increment():v==="Directory"?(L=ns(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,v,A],this._yieldMs.stop(),v==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},ip=class extends wi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=_a.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new ip(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new Si:i.getPathInfo(e)}},op=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new sp(i,this._fileExtensions)}_getIgnoreStack(n){if(gT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},sp=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var ap=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends ot{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new ap;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var cp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends cp{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},jr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var Bj=Object.freeze({git:{name:".git",type:"Directory"}});async function yT(t){for(let[e,n]of Object.entries(Bj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var va=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},up=class{throwError(e,n){throw new va(e,n)}},lp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},dp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},fp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},hp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new dp(i,this.process)}},gp=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof va?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof va&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function ss(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends ot{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=ss(e,n),s=ss(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=ss(e.addedBlobs,n.addedBlobs),u=ss(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=ss(e.deletedBlobs,n.deletedBlobs),u=ss(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";vt.isAPIErrorWithStatus(d,5)||vt.isAPIErrorWithStatus(d,4)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function xi(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var pp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},mp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends ot{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new is("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=pT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return ua(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return et(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof da){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,Te(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let v={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,v)}_newProbeBatch(){return new mp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),xi(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),xi(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,v]of i.items)this._pathMapVerify(v.folderId,v.relPath,m)&&(u.has(v.blobName)?this._enqueueForUpload(m,v.folderId,v.relPath,!1):d.has(v.blobName)?this._enqueueForProbeRetry(m,v):this._pathMapUpdate(v.folderId,v.relPath,m,v.blobName,v.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new pp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:v}]=n;if(!this._pathMapVerify(m,v,f))return;let x=this._getMtime(d,m,v,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,v,f);if(D===void 0)return;let N=this._calculateBlobName(v,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,v,f,Te(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:v,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let v of f)this._pathMapInvalidate(v.folderId,v.pathName,v.seq,this._fileUploadFailure);else for(let v of f){let x={folderId:v.folderId,relPath:v.pathName,blobName:m,mtime:v.mtime,startTime:Date.now()};this._enqueueForProbeRetry(v.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Te(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var zr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},bp=class{constructor(e=fa){this.namingVersion=e}entries=new Array};function $j(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function Wj(t){return et(t,zr.cacheFileName)}function Fl(t){let e=Wj(t);return Ok(e)}async function ST(t,e){let n=et(t,zr.cacheFileName),i=et(e,zr.cacheFileName);await oa(e),await Dg(n,i)}async function xT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=et(e,zr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Ko(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==fa)i.info(`blob naming version ${d.namingVersion} !== ${fa}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let v=$j(m);v!==void 0&&(n.set(f,{mtime:v.mtime,name:v.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=Te(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends zr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=et(this._cacheDirName,zr.cacheFileName),this._tmpFileName=et(this._cacheDirName,zr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new bp;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await oa(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await Dg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${fa} to ${this._cacheFileName}`)}};var CT=gt(Go());var PT=require("console");var _p=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},as=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},cs=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new as(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,v=Math.min(m,e-s.length);s.length+=v,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=v;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var kT=6,TT=6,ya=kT*TT,zj=1e3,Hj=2e3,Vj=60*1e3,Gj=200,Qj=30*1e3,Kj=30*1e3,Jj=60*1e3,vp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Zo(TT),this.addChangeset(s),this.changesSinceUpload=new cs}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new cs})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},yp=class extends vp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends ot{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new jr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,Hj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,Vj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new jr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let v=m.recentChanges(!1);if(v===void 0||v.blobName===void 0)continue;d.set(f,v.blobName);let x=m.getText(),D=v.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:v.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let v=m.changeTracker.getChunks(n,f.getText().length);if(v.length!==0)for(let x of v)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new yp(n,i,d,f,d),c.set(i,u);let m=u.getText(),v=this._blobNameCalculator.calculate(i,m);if(v===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(v)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=v,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let v of c){let[x,D,N]=v;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let v=d.changesSinceUpload.length>=Gj;v||(v=d.changesSinceUpload.countChunks(this._chunkSize)>=ya),v&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let v=s.changesSinceUpload.countChunks(this._chunkSize);v>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),v>=ya&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=kT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),v=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,CT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:v,changesSinceUpload:new cs},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Qj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${Te(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${Te(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Jj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size{if(!(Date.now()-u>Kj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let v of m)this.notifyMissingBlob(v.folderId,v.pathName,f);else if(d.has(f))for(let v of m)this._requeueVerifyWaiter(v,f);else for(let v of m)this._commit(v,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),xi(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),xi(this._logger,i,n.nonindexedBlobNames,5))}};var wp=gt(Go());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] [${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.getBlobName(e,n)}handleMissingBlob(e,n,i){if(this.isV2Enabled){let s=this._openFileManagerV2.handleMissingBlob(e,n,i);return this._openFileManagerV1.notifyMissingBlob(e,n,i)||s}else return this._openFileManagerV1.notifyMissingBlob(e,n,i)}loseFocus(){this._openFileManagerV1.loseFocus()}stopTracking(e,n){this._openFileManagerV1.stopTracking(e,n),this.isV2Enabled&&this._openFileManagerV2.stopTracking(e,n)}handleClosedDocument(e){this._openFileManagerV1.stopTracking(e.folderId,e.relPath,0),this.isV2Enabled&&this._openFileManagerV2.handleClosedDocument(e)}handleChangedDocument(e){this._openFileManagerV1.applyTextDocumentChange(e.folderId,e.relPath,e.event),this.isV2Enabled&&this._openFileManagerV2.handleChangedDocument(e)}isTracked(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.isTracked(e,n),s=this._openFileManagerV1.isTracked(e,n);return i!==s&&this._logger.debug(`[WARN] isTracked returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] @@ -84,7 +84,7 @@ ${this.diff(this.value,e).map(n=>` - ${n}`).join(` [${JSON.stringify(s)}]`);let c=(0,wp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] [${JSON.stringify(c)}]`),i}else return this._openFileManagerV1.getTrackedPaths(e)}dispose(){this._openFileManagerV2?.dispose(),this._openFileManagerV1.dispose()}getRecencySummary(e){return this._openFileManagerV1.getRecencySummary(e)}translateRange(e,n,i,s){if(this.isV2Enabled){let c=this._openFileManagerV2.translateRange(e,n,i,s),u=this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s});return(c?.blobName!==u?.blobName||c?.beginOffset!==u?.beginOffset||c?.endOffset!==u?.endOffset)&&this._logger.debug(`[WARN] translateRange returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(c)}] -[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(wt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),wt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(pe.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(pe.error(`Error getting completion: ${Te(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Te(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Te(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): +[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(vt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),vt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(pe.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(pe.error(`Error getting completion: ${Te(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Te(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Te(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): ${e.getText()}`)}Rt.documents.add(e);let i={document:new vi(e),contentChanges:n};Mg.fire(i)});on.listen();pe.info("Language server started");0&&(module.exports={API_ENDPOINT}); /*! Bundled license information: From 2f413da93dc27b2b0ce665e8a174cf91bfca9c8b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 14 Feb 2025 16:57:10 +0000 Subject: [PATCH 11/41] Augment Vim v0.16.0 --- autoload/augment/version.vim | 2 +- dist/server.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 4f9d57b..b730598 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.15.0' + return '0.16.0' endfunction diff --git a/dist/server.js b/dist/server.js index acc944e..07899cb 100644 --- a/dist/server.js +++ b/dist/server.js @@ -58,7 +58,7 @@ __p += '`),qe&&(J+=`' + function print() { __p += __j.call(arguments, '') } `:`; `)+J+`return __p -}`;var ke=Xb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(ke.source=J,Hd(ke))throw ke;return ke}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return sm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=am(l,h),S=cm(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,lm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=am(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Ce(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(no(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-ro(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=uo(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Ym("toUpperCase");function Jb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Xb=Fe(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Fe(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Ce(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||xe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,ke=M&&!ae;if(!_&&Q){S=ke?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&ke?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(xe(_)?_:[],h)}return this[a](function(S){return o.apply(xe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(so,l)||(so[l]=[]),so[l].push({name:o,func:a})}}),so[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):Ti?((Ti.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Vk=I((m3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((bG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Vg="\\",bj=/^\s+$/,_j=/(?:[^\\]|^)\\$/,vj=/^\\!/,yj=/^\\#/,wj=/\r?\n/g,Sj=/^\.*\/|^\.+$/,Gg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,xj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),Pj=/([0-z])-([0-z])/g,lT=()=>!1,Cj=t=>t.replace(Pj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),kj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Tj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Vg],[/\\\\/g,()=>Vg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Vg?`\\[${n}${kj(i)}${s}`:s==="]"&&i.length%2===0?`[${Cj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Rj=(t,e)=>{let n=aT[t];return n||(n=Tj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Jg=t=>typeof t=="string",Dj=t=>t&&Jg(t)&&!bj.test(t)&&!_j.test(t)&&t.indexOf("#")!==0,Fj=t=>t.split(wj),Qg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Ej=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vj,"!").replace(yj,"#");let s=Rj(t,e);return new Qg(n,t,i,s)},Ij=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Jg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>Sj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Kg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){xj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Dj(e)){let n=Ej(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Jg(e)?Fj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ij),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Gg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Gg)+Gg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Kg(t),Mj=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Mj;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var i2={};nA(i2,{API_ENDPOINT:()=>e2});module.exports=rA(i2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=r_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=t_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&n_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},qi;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(qi||(qi={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=r_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ee=gt(kS());var TS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&TS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function RS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var DS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,DS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var FS=require("crypto"),og={randomUUID:FS.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return RS(i)}var $s=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},pi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},vt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Te(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Hk=gt(Dk());var Ju=gt(require("fs")),ea=gt(Ek()),Mk=gt(require("os")),ta=gt(require("path")),KW=process.env.TEST_TMPDIR?ta.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ta.default.join(Mk.default.homedir(),".local","state"),Ik=ta.default.join(KW,"augment","augment-server.log"),Zs;function JW(){if(Zs)return Zs;let t=ta.default.dirname(Ik);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"info").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?ea.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "info"`,ea.default.setLevel("info")),ea.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Ik,`${c} [${i.toUpperCase()}] ${s} +}`;var ke=Xb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(ke.source=J,Hd(ke))throw ke;return ke}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return sm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=am(l,h),S=cm(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,lm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=am(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Ce(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(no(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-ro(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=uo(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Ym("toUpperCase");function Jb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Xb=Fe(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Fe(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Ce(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||xe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,ke=M&&!ae;if(!_&&Q){S=ke?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&ke?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(xe(_)?_:[],h)}return this[a](function(S){return o.apply(xe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(so,l)||(so[l]=[]),so[l].push({name:o,func:a})}}),so[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):Ti?((Ti.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Vk=I((m3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((bG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Vg="\\",bj=/^\s+$/,_j=/(?:[^\\]|^)\\$/,vj=/^\\!/,yj=/^\\#/,wj=/\r?\n/g,Sj=/^\.*\/|^\.+$/,Gg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,xj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),Pj=/([0-z])-([0-z])/g,lT=()=>!1,Cj=t=>t.replace(Pj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),kj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Tj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Vg],[/\\\\/g,()=>Vg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Vg?`\\[${n}${kj(i)}${s}`:s==="]"&&i.length%2===0?`[${Cj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Rj=(t,e)=>{let n=aT[t];return n||(n=Tj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Jg=t=>typeof t=="string",Dj=t=>t&&Jg(t)&&!bj.test(t)&&!_j.test(t)&&t.indexOf("#")!==0,Fj=t=>t.split(wj),Qg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Ej=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vj,"!").replace(yj,"#");let s=Rj(t,e);return new Qg(n,t,i,s)},Ij=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Jg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>Sj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Kg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){xj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Dj(e)){let n=Ej(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Jg(e)?Fj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ij),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Gg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Gg)+Gg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Kg(t),Mj=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Mj;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var i2={};nA(i2,{API_ENDPOINT:()=>e2});module.exports=rA(i2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=r_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=t_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&n_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},qi;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(qi||(qi={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=r_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ee=gt(kS());var TS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&TS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function RS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var DS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,DS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var FS=require("crypto"),og={randomUUID:FS.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return RS(i)}var $s=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},pi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},vt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Te(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Hk=gt(Dk());var Ju=gt(require("fs")),ea=gt(Ek()),Mk=gt(require("os")),ta=gt(require("path")),KW=process.env.TEST_TMPDIR?ta.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ta.default.join(Mk.default.homedir(),".local","state"),Ik=ta.default.join(KW,"augment","augment-server.log"),Zs;function JW(){if(Zs)return Zs;let t=ta.default.dirname(Ik);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"warn").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?ea.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "warn"`,ea.default.setLevel("warn")),ea.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Ik,`${c} [${i.toUpperCase()}] ${s} `)}},Zs=ea.default.getLogger("server"),n&&Zs.warn(n),Zs}function _e(t){let e=JW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var ra=gt(Go()),Qo=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,ra.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: ${this.diff(this.value,e).map(n=>` - ${n}`).join(` `)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ra.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ra.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var $k=require("events"),Dn=gt(require("fs")),Wk=gt(ng());var Ak;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>Se}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,Re,ge,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=Re||m,this.fragment=ge||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:Re,query:ge,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),Re===void 0?Re=this.path:Re===null&&(Re=m),ge===void 0?ge=this.query:ge===null&&(ge=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&Re===this.path&&ge===this.query&&me===this.fragment?this:new A(se,re,Re,ge,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,Re=-1;for(let ge=0;ge=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[me];St!==void 0?(Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re+=St):Re===-1&&(Re=ge)}}return Re!==-1&&(re+=encodeURIComponent(X.substring(Re))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:Re,authority:ge,path:me,query:St,fragment:We}=X;if(Re&&(re+=Re,re+=":"),(ge||Re==="file")&&(re+=v,re+=v),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var Se;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,Re=!1;re[0]!==Dt&&(re=Dt+re,Re=!0);let ge=Je.resolve(re,...se);return Re&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(Se||(Se={}))})(),Ak=i})();var{URI:Ze,Utils:Tt}=Ak;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=qi.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Vi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Nk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function qk(t){let e=await nn.lstat(t);return Nk(e)}function Ok(t){try{return Gi(t).type==="File"}catch{return!1}}async function Lk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Gi(t){let e=Vi.lstatSync(t);return Nk(e)}function ia(t){let e=[],n=Vi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function oa(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Bk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Uk(t){return Vi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=Wk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},_i=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},vi=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new $k.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,jk=[];function zk(t){jk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new vi(t))},get workspaceFolders(){return jk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Uk(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},sa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Hk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Vk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function aa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function yi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){aa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ca(t,e=""){let n=[];if(typeof t!="object"||t===null)return Gk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${ca(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ca(s,e+" "))):n.push(`${e}${i}: ${Gk(s)}`);return n.join(` @@ -84,8 +84,8 @@ ${this.diff(this.value,e).map(n=>` - ${n}`).join(` [${JSON.stringify(s)}]`);let c=(0,wp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] [${JSON.stringify(c)}]`),i}else return this._openFileManagerV1.getTrackedPaths(e)}dispose(){this._openFileManagerV2?.dispose(),this._openFileManagerV1.dispose()}getRecencySummary(e){return this._openFileManagerV1.getRecencySummary(e)}translateRange(e,n,i,s){if(this.isV2Enabled){let c=this._openFileManagerV2.translateRange(e,n,i,s),u=this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s});return(c?.blobName!==u?.blobName||c?.beginOffset!==u?.beginOffset||c?.endOffset!==u?.endOffset)&&this._logger.debug(`[WARN] translateRange returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(c)}] -[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.info(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(vt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),vt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(pe.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(pe.error(`Error getting completion: ${Te(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Te(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Te(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): -${e.getText()}`)}Rt.documents.add(e);let i={document:new vi(e),contentChanges:n};Mg.fire(i)});on.listen();pe.info("Language server started");0&&(module.exports={API_ENDPOINT}); +[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.debug(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(vt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),vt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(pe.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(pe.error(`Error getting completion: ${Te(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Te(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Te(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): +${e.getText()}`)}Rt.documents.add(e);let i={document:new vi(e),contentChanges:n};Mg.fire(i)});on.listen();0&&(module.exports={API_ENDPOINT}); /*! Bundled license information: lodash/lodash.js: From 9e10b9a0c1ac2cd32f63ed976aba0ff02bf93cdd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 19 Feb 2025 16:58:44 +0000 Subject: [PATCH 12/41] Augment Vim v0.17.0 --- autoload/augment/version.vim | 2 +- dist/server.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index b730598..17d8536 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.16.0' + return '0.17.0' endfunction diff --git a/dist/server.js b/dist/server.js index 07899cb..6be8150 100644 --- a/dist/server.js +++ b/dist/server.js @@ -64,7 +64,7 @@ ${this.diff(this.value,e).map(n=>` - ${n}`).join(` `)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ra.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ra.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var $k=require("events"),Dn=gt(require("fs")),Wk=gt(ng());var Ak;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>Se}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,Re,ge,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=Re||m,this.fragment=ge||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:Re,query:ge,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),Re===void 0?Re=this.path:Re===null&&(Re=m),ge===void 0?ge=this.query:ge===null&&(ge=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&Re===this.path&&ge===this.query&&me===this.fragment?this:new A(se,re,Re,ge,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,Re=-1;for(let ge=0;ge=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[me];St!==void 0?(Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re+=St):Re===-1&&(Re=ge)}}return Re!==-1&&(re+=encodeURIComponent(X.substring(Re))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:Re,authority:ge,path:me,query:St,fragment:We}=X;if(Re&&(re+=Re,re+=":"),(ge||Re==="file")&&(re+=v,re+=v),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var Se;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,Re=!1;re[0]!==Dt&&(re=Dt+re,Re=!0);let ge=Je.resolve(re,...se);return Re&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(Se||(Se={}))})(),Ak=i})();var{URI:Ze,Utils:Tt}=Ak;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=qi.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Vi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Nk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function qk(t){let e=await nn.lstat(t);return Nk(e)}function Ok(t){try{return Gi(t).type==="File"}catch{return!1}}async function Lk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Gi(t){let e=Vi.lstatSync(t);return Nk(e)}function ia(t){let e=[],n=Vi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function oa(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Bk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Uk(t){return Vi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=Wk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},_i=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},vi=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new $k.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,jk=[];function zk(t){jk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new vi(t))},get workspaceFolders(){return jk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Uk(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},sa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Hk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Vk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function aa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function yi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){aa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ca(t,e=""){let n=[];if(typeof t!="object"||t===null)return Gk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${ca(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ca(s,e+" "))):n.push(`${e}${i}: ${Gk(s)}`);return n.join(` `)}function Gk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ua(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>vt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return $s()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Qi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Te(U,!0)}`),vt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?vt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),vt.fromResponse(B).status===10&&this._logger.debug(`object size is ${ca(s)} `),vt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Te(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Qi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Te(P,!0)}`),P.stack&&this._logger.error(P.stack),vt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?vt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),vt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?ca(s):0} `),vt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` `);){let Je=te.indexOf(` -`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let Se=JSON.parse(Dt);yield c(Se)}catch(Se){K.error(`JSON parse failed for ${Dt}: ${Te(Se)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!vt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:yi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:yi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:yi("BackChatResultNode","id",d.id),type:yi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?yi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:yi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:yi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);aa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);aa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version),e.feature_flags.vscode_agent_mode_min_version!==void 0&&(s.vscodeAgentModeMinVersion=e.feature_flags.vscode_agent_mode_min_version)}let c=[];if(e.languages===void 0)c=Og;else{aa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Qi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Kk=gt(Go());var la="augment.sessions",Qk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===la&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(la,JSON.stringify({accessToken:n,tenantURL:i,scopes:Qk}))}async getSession(){let n=await this._context.secrets.get(la);if(n){let i=JSON.parse(n);if((0,Kk.isEqual)(i.scopes,Qk))return i}return null}async removeSession(){await this._context.secrets.get(la)&&await this._context.secrets.delete(la)}};var Yo=require("crypto"),jg=require("url");var lj=["email"],ol="augment.oauth-state",dj=process.env.TEST_HOSTNAME??".augmentcode.com",fj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Jk((0,Yo.randomBytes)(32)),n=Jk(hj(Buffer.from(e))),i=(0,Yo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=gj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function pj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>pj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} +`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let Se=JSON.parse(Dt);yield c(Se)}catch(Se){K.error(`JSON parse failed for ${Dt}: ${Te(Se)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!vt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:yi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:yi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:yi("BackChatResultNode","id",d.id),type:yi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?yi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:yi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:yi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);aa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);aa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version),e.feature_flags.vscode_agent_mode_min_version!==void 0&&(s.vscodeAgentModeMinVersion=e.feature_flags.vscode_agent_mode_min_version)}let c=[];if(e.languages===void 0)c=Og;else{aa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Qi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model},integrations:{...e.advanced.integrations}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model},integrations:{...e.advanced?.integrations}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Kk=gt(Go());var la="augment.sessions",Qk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===la&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(la,JSON.stringify({accessToken:n,tenantURL:i,scopes:Qk}))}async getSession(){let n=await this._context.secrets.get(la);if(n){let i=JSON.parse(n);if((0,Kk.isEqual)(i.scopes,Qk))return i}return null}async removeSession(){await this._context.secrets.get(la)&&await this._context.secrets.delete(la)}};var Yo=require("crypto"),jg=require("url");var lj=["email"],ol="augment.oauth-state",dj=process.env.TEST_HOSTNAME??".augmentcode.com",fj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Jk((0,Yo.randomBytes)(32)),n=Jk(hj(Buffer.from(e))),i=(0,Yo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=gj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function pj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>pj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} suffixReplacementText: ${this.suffixReplacementText} skippedSuffix: ${this.skippedSuffix} start: ${this.range.startOffset} From 9e6013723c59c61d47c219992cfde6004f0749bb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Feb 2025 16:58:57 +0000 Subject: [PATCH 13/41] Augment Vim v0.18.0 --- autoload/augment/client.vim | 24 +++++++++++++++++++----- autoload/augment/version.vim | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/autoload/augment/client.vim b/autoload/augment/client.vim index 047b91a..821f3b7 100644 --- a/autoload/augment/client.vim +++ b/autoload/augment/client.vim @@ -290,13 +290,27 @@ function! s:GetWorkspaceFolders() abort return [] endif + " Validate the the workspace folders are a list + if type(g:augment_workspace_folders) == v:t_list + let folders_list = g:augment_workspace_folders + elseif type(g:augment_workspace_folders) == v:t_string + let folders_list = [g:augment_workspace_folders] + else + call augment#log#Error('Workspace folders set to invalid value: ' . string(g:augment_workspace_folders) . '. See `:h g:augment_workspace_folders` for configuration instructions.') + return [] + endif + let valid_folders = [] - for folder in g:augment_workspace_folders - let abs_path = fnamemodify(folder, ':p') - if !isdirectory(abs_path) - call augment#log#Error('The following workspace folder does not exist: ' . abs_path) + for folder in folders_list + if type(folder) != v:t_string + call augment#log#Error('Expected workspace folder type to be string. Got: ' . string(folder)) else - call add(valid_folders, folder) + let abs_path = fnamemodify(folder, ':p') + if !isdirectory(abs_path) + call augment#log#Error('The following workspace folder does not exist: ' . abs_path) + else + call add(valid_folders, folder) + endif endif endfor diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 17d8536..ec0137d 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.17.0' + return '0.18.0' endfunction From dd7b100c751d748df1340c74ff766805ae59a1a0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Feb 2025 16:58:58 +0000 Subject: [PATCH 14/41] Augment Vim v0.19.0 --- autoload/augment/client.vim | 2 +- autoload/augment/version.vim | 2 +- dist/server.js | 42 ++++++++++++++++++------------------ 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/autoload/augment/client.vim b/autoload/augment/client.vim index 821f3b7..08a8090 100644 --- a/autoload/augment/client.vim +++ b/autoload/augment/client.vim @@ -130,7 +130,7 @@ endfunction function! s:HandleToken(client, params, result, err) abort if a:err isnot v:null echohl ErrorMsg - echom 'Augment: Error signing in, please try again.' + echom 'Augment: Error signing in: ' . a:err.message echohl None call augment#log#Error('augment/token response error: ' . string(a:err)) return diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index ec0137d..099849c 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.18.0' + return '0.19.0' endfunction diff --git a/dist/server.js b/dist/server.js index 6be8150..c9fd0f1 100644 --- a/dist/server.js +++ b/dist/server.js @@ -4,12 +4,12 @@ * Licensed for use only with Vim plugin - See LICENSE.md * Modification or reverse engineering prohibited */ -"use strict";var XM=Object.create;var pc=Object.defineProperty;var YM=Object.getOwnPropertyDescriptor;var ZM=Object.getOwnPropertyNames;var eA=Object.getPrototypeOf,tA=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),nA=(t,e)=>{for(var n in e)pc(t,n,{get:e[n],enumerable:!0})},e_=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ZM(e))!tA.call(t,s)&&s!==n&&pc(t,s,{get:()=>e[s],enumerable:!(i=YM(e,s))||i.enumerable});return t};var gt=(t,e,n)=>(n=t!=null?XM(eA(t)):{},e_(e||!t||!t.__esModule?pc(n,"default",{value:t,enumerable:!0}):n,t)),rA=t=>e_(pc({},"__esModule",{value:!0}),t);var bc=I(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.thenable=Et.typedArray=Et.stringArray=Et.array=Et.func=Et.error=Et.number=Et.string=Et.boolean=void 0;function oA(t){return t===!0||t===!1}Et.boolean=oA;function i_(t){return typeof t=="string"||t instanceof String}Et.string=i_;function sA(t){return typeof t=="number"||t instanceof Number}Et.number=sA;function aA(t){return t instanceof Error}Et.error=aA;function o_(t){return typeof t=="function"}Et.func=o_;function s_(t){return Array.isArray(t)}Et.array=s_;function cA(t){return s_(t)&&t.every(e=>i_(e))}Et.stringArray=cA;function uA(t,e){return Array.isArray(t)&&t.every(e)}Et.typedArray=uA;function lA(t){return t&&o_(t.then)}Et.thenable=lA});var go=I(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.stringArray=Vt.array=Vt.func=Vt.error=Vt.number=Vt.string=Vt.boolean=void 0;function dA(t){return t===!0||t===!1}Vt.boolean=dA;function a_(t){return typeof t=="string"||t instanceof String}Vt.string=a_;function fA(t){return typeof t=="number"||t instanceof Number}Vt.number=fA;function hA(t){return t instanceof Error}Vt.error=hA;function gA(t){return typeof t=="function"}Vt.func=gA;function c_(t){return Array.isArray(t)}Vt.array=c_;function pA(t){return c_(t)&&t.every(e=>a_(e))}Vt.stringArray=pA});var Rf=I(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Message=ce.NotificationType9=ce.NotificationType8=ce.NotificationType7=ce.NotificationType6=ce.NotificationType5=ce.NotificationType4=ce.NotificationType3=ce.NotificationType2=ce.NotificationType1=ce.NotificationType0=ce.NotificationType=ce.RequestType9=ce.RequestType8=ce.RequestType7=ce.RequestType6=ce.RequestType5=ce.RequestType4=ce.RequestType3=ce.RequestType2=ce.RequestType1=ce.RequestType=ce.RequestType0=ce.AbstractMessageSignature=ce.ParameterStructures=ce.ResponseError=ce.ErrorCodes=void 0;var Oi=go(),rf;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(rf||(ce.ErrorCodes=rf={}));var of=class t extends Error{constructor(e,n,i){super(n),this.code=Oi.number(e)?e:rf.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ce.ResponseError=of;var fn=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ce.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var ut=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ce.AbstractMessageSignature=ut;var sf=class extends ut{constructor(e){super(e,0)}};ce.RequestType0=sf;var af=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType=af;var cf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType1=cf;var uf=class extends ut{constructor(e){super(e,2)}};ce.RequestType2=uf;var lf=class extends ut{constructor(e){super(e,3)}};ce.RequestType3=lf;var df=class extends ut{constructor(e){super(e,4)}};ce.RequestType4=df;var ff=class extends ut{constructor(e){super(e,5)}};ce.RequestType5=ff;var hf=class extends ut{constructor(e){super(e,6)}};ce.RequestType6=hf;var gf=class extends ut{constructor(e){super(e,7)}};ce.RequestType7=gf;var pf=class extends ut{constructor(e){super(e,8)}};ce.RequestType8=pf;var mf=class extends ut{constructor(e){super(e,9)}};ce.RequestType9=mf;var bf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType=bf;var _f=class extends ut{constructor(e){super(e,0)}};ce.NotificationType0=_f;var vf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType1=vf;var yf=class extends ut{constructor(e){super(e,2)}};ce.NotificationType2=yf;var wf=class extends ut{constructor(e){super(e,3)}};ce.NotificationType3=wf;var Sf=class extends ut{constructor(e){super(e,4)}};ce.NotificationType4=Sf;var xf=class extends ut{constructor(e){super(e,5)}};ce.NotificationType5=xf;var Pf=class extends ut{constructor(e){super(e,6)}};ce.NotificationType6=Pf;var Cf=class extends ut{constructor(e){super(e,7)}};ce.NotificationType7=Cf;var kf=class extends ut{constructor(e){super(e,8)}};ce.NotificationType8=kf;var Tf=class extends ut{constructor(e){super(e,9)}};ce.NotificationType9=Tf;var u_;(function(t){function e(s){let c=s;return c&&Oi.string(c.method)&&(Oi.string(c.id)||Oi.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&Oi.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(Oi.string(c.id)||Oi.number(c.id)||c.id===null)}t.isResponse=i})(u_||(ce.Message=u_={}))});var Ff=I(ri=>{"use strict";var l_;Object.defineProperty(ri,"__esModule",{value:!0});ri.LRUCache=ri.LinkedMap=ri.Touch=void 0;var Gt;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Gt||(ri.Touch=Gt={}));var _c=class{constructor(){this[l_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Gt.None){let i=this._map.get(e);if(i)return n!==Gt.None&&this.touch(i,n),i.value}set(e,n,i=Gt.None){let s=this._map.get(e);if(s)s.value=n,i!==Gt.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Gt.None:this.addItemLast(s);break;case Gt.First:this.addItemFirst(s);break;case Gt.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(l_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Gt.First&&n!==Gt.Last)){if(n===Gt.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Gt.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};ri.LinkedMap=_c;var Df=class extends _c{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Gt.AsNew){return super.get(e,n)}peek(e){return super.get(e,Gt.None)}set(e,n){return super.set(e,n,Gt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ri.LRUCache=Df});var f_=I(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.Disposable=void 0;var d_;(function(t){function e(n){return{dispose:n}}t.create=e})(d_||(vc.Disposable=d_={}))});var ii=I(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Ef;function If(){if(Ef===void 0)throw new Error("No runtime abstraction layer installed");return Ef}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ef=n}t.install=e})(If||(If={}));Mf.default=If});var mo=I(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.Emitter=po.Event=void 0;var mA=ii(),h_;(function(t){let e={dispose(){}};t.None=function(){return e}})(h_||(po.Event=h_={}));var Af=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Af),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};po.Emitter=yc;yc._noop=function(){}});var xc=I(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.CancellationTokenSource=bo.CancellationToken=void 0;var bA=ii(),_A=go(),Nf=mo(),wc;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Nf.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Nf.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||_A.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(wc||(bo.CancellationToken=wc={}));var vA=Object.freeze(function(t,e){let n=(0,bA.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),Sc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?vA:(this._emitter||(this._emitter=new Nf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},qf=class{get token(){return this._token||(this._token=new Sc),this._token}cancel(){this._token?this._token.cancel():this._token=wc.Cancelled}dispose(){this._token?this._token instanceof Sc&&this._token.dispose():this._token=wc.None}};bo.CancellationTokenSource=qf});var g_=I(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.SharedArrayReceiverStrategy=_o.SharedArraySenderStrategy=void 0;var yA=xc(),ks;(function(t){t.Continue=0,t.Cancelled=1})(ks||(ks={}));var Of=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=ks.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,ks.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};_o.SharedArraySenderStrategy=Of;var Lf=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===ks.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Bf=class{constructor(e){this.token=new Lf(e)}cancel(){}dispose(){}},Uf=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new yA.CancellationTokenSource:new Bf(n)}};_o.SharedArrayReceiverStrategy=Uf});var Wf=I(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.Semaphore=void 0;var wA=ii(),$f=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,wA.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};Pc.Semaphore=$f});var m_=I(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.ReadableStreamMessageReader=oi.AbstractMessageReader=oi.MessageReader=void 0;var zf=ii(),vo=go(),jf=mo(),SA=Wf(),p_;(function(t){function e(n){let i=n;return i&&vo.func(i.listen)&&vo.func(i.dispose)&&vo.func(i.onError)&&vo.func(i.onClose)&&vo.func(i.onPartialMessage)}t.is=e})(p_||(oi.MessageReader=p_={}));var Cc=class{constructor(){this.errorEmitter=new jf.Emitter,this.closeEmitter=new jf.Emitter,this.partialMessageEmitter=new jf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${vo.string(e.message)?e.message:"unknown"}`)}};oi.AbstractMessageReader=Cc;var Hf;(function(t){function e(n){let i,s,c,u=new Map,d,f=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let m of n.contentDecoders)u.set(m.name,m);if(n.contentTypeDecoder!==void 0&&(d=n.contentTypeDecoder,f.set(d.name,d)),n.contentTypeDecoders!==void 0)for(let m of n.contentTypeDecoders)f.set(m.name,m)}return d===void 0&&(d=(0,zf.default)().applicationJson.decoder,f.set(d.name,d)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:d,contentTypeDecoders:f}}t.fromOptions=e})(Hf||(Hf={}));var Vf=class extends Cc{constructor(e,n){super(),this.readable=e,this.options=Hf.fromOptions(n),this.buffer=(0,zf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new SA.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. -${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,zf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};oi.ReadableStreamMessageReader=Vf});var w_=I(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.WriteableStreamMessageWriter=si.AbstractMessageWriter=si.MessageWriter=void 0;var b_=ii(),Ts=go(),xA=Wf(),__=mo(),PA="Content-Length: ",v_=`\r -`,y_;(function(t){function e(n){let i=n;return i&&Ts.func(i.dispose)&&Ts.func(i.onClose)&&Ts.func(i.onError)&&Ts.func(i.write)}t.is=e})(y_||(si.MessageWriter=y_={}));var kc=class{constructor(){this.errorEmitter=new __.Emitter,this.closeEmitter=new __.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${Ts.string(e.message)?e.message:"unknown"}`)}};si.AbstractMessageWriter=kc;var Gf;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,b_.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,b_.default)().applicationJson.encoder}}t.fromOptions=e})(Gf||(Gf={}));var Qf=class extends kc{constructor(e,n){super(),this.writable=e,this.options=Gf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new xA.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let s=[];return s.push(PA,i.byteLength.toString(),v_),s.push(v_),this.doWrite(e,s,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(s){return this.handleError(s,e),Promise.reject(s)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};si.WriteableStreamMessageWriter=Qf});var S_=I(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.AbstractMessageBuffer=void 0;var CA=13,kA=10,TA=`\r +"use strict";var XM=Object.create;var pc=Object.defineProperty;var YM=Object.getOwnPropertyDescriptor;var ZM=Object.getOwnPropertyNames;var eA=Object.getPrototypeOf,tA=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),nA=(t,e)=>{for(var n in e)pc(t,n,{get:e[n],enumerable:!0})},t_=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ZM(e))!tA.call(t,s)&&s!==n&&pc(t,s,{get:()=>e[s],enumerable:!(i=YM(e,s))||i.enumerable});return t};var gt=(t,e,n)=>(n=t!=null?XM(eA(t)):{},t_(e||!t||!t.__esModule?pc(n,"default",{value:t,enumerable:!0}):n,t)),rA=t=>t_(pc({},"__esModule",{value:!0}),t);var bc=I(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.thenable=Et.typedArray=Et.stringArray=Et.array=Et.func=Et.error=Et.number=Et.string=Et.boolean=void 0;function oA(t){return t===!0||t===!1}Et.boolean=oA;function o_(t){return typeof t=="string"||t instanceof String}Et.string=o_;function sA(t){return typeof t=="number"||t instanceof Number}Et.number=sA;function aA(t){return t instanceof Error}Et.error=aA;function s_(t){return typeof t=="function"}Et.func=s_;function a_(t){return Array.isArray(t)}Et.array=a_;function cA(t){return a_(t)&&t.every(e=>o_(e))}Et.stringArray=cA;function uA(t,e){return Array.isArray(t)&&t.every(e)}Et.typedArray=uA;function lA(t){return t&&s_(t.then)}Et.thenable=lA});var go=I(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.stringArray=Vt.array=Vt.func=Vt.error=Vt.number=Vt.string=Vt.boolean=void 0;function dA(t){return t===!0||t===!1}Vt.boolean=dA;function c_(t){return typeof t=="string"||t instanceof String}Vt.string=c_;function fA(t){return typeof t=="number"||t instanceof Number}Vt.number=fA;function hA(t){return t instanceof Error}Vt.error=hA;function gA(t){return typeof t=="function"}Vt.func=gA;function u_(t){return Array.isArray(t)}Vt.array=u_;function pA(t){return u_(t)&&t.every(e=>c_(e))}Vt.stringArray=pA});var Rf=I(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Message=ce.NotificationType9=ce.NotificationType8=ce.NotificationType7=ce.NotificationType6=ce.NotificationType5=ce.NotificationType4=ce.NotificationType3=ce.NotificationType2=ce.NotificationType1=ce.NotificationType0=ce.NotificationType=ce.RequestType9=ce.RequestType8=ce.RequestType7=ce.RequestType6=ce.RequestType5=ce.RequestType4=ce.RequestType3=ce.RequestType2=ce.RequestType1=ce.RequestType=ce.RequestType0=ce.AbstractMessageSignature=ce.ParameterStructures=ce.ResponseError=ce.ErrorCodes=void 0;var Oi=go(),rf;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(rf||(ce.ErrorCodes=rf={}));var of=class t extends Error{constructor(e,n,i){super(n),this.code=Oi.number(e)?e:rf.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ce.ResponseError=of;var fn=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ce.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var ut=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ce.AbstractMessageSignature=ut;var sf=class extends ut{constructor(e){super(e,0)}};ce.RequestType0=sf;var af=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType=af;var cf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType1=cf;var uf=class extends ut{constructor(e){super(e,2)}};ce.RequestType2=uf;var lf=class extends ut{constructor(e){super(e,3)}};ce.RequestType3=lf;var df=class extends ut{constructor(e){super(e,4)}};ce.RequestType4=df;var ff=class extends ut{constructor(e){super(e,5)}};ce.RequestType5=ff;var hf=class extends ut{constructor(e){super(e,6)}};ce.RequestType6=hf;var gf=class extends ut{constructor(e){super(e,7)}};ce.RequestType7=gf;var pf=class extends ut{constructor(e){super(e,8)}};ce.RequestType8=pf;var mf=class extends ut{constructor(e){super(e,9)}};ce.RequestType9=mf;var bf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType=bf;var _f=class extends ut{constructor(e){super(e,0)}};ce.NotificationType0=_f;var vf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType1=vf;var yf=class extends ut{constructor(e){super(e,2)}};ce.NotificationType2=yf;var wf=class extends ut{constructor(e){super(e,3)}};ce.NotificationType3=wf;var Sf=class extends ut{constructor(e){super(e,4)}};ce.NotificationType4=Sf;var xf=class extends ut{constructor(e){super(e,5)}};ce.NotificationType5=xf;var Pf=class extends ut{constructor(e){super(e,6)}};ce.NotificationType6=Pf;var Cf=class extends ut{constructor(e){super(e,7)}};ce.NotificationType7=Cf;var kf=class extends ut{constructor(e){super(e,8)}};ce.NotificationType8=kf;var Tf=class extends ut{constructor(e){super(e,9)}};ce.NotificationType9=Tf;var l_;(function(t){function e(s){let c=s;return c&&Oi.string(c.method)&&(Oi.string(c.id)||Oi.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&Oi.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(Oi.string(c.id)||Oi.number(c.id)||c.id===null)}t.isResponse=i})(l_||(ce.Message=l_={}))});var Ff=I(ri=>{"use strict";var d_;Object.defineProperty(ri,"__esModule",{value:!0});ri.LRUCache=ri.LinkedMap=ri.Touch=void 0;var Gt;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Gt||(ri.Touch=Gt={}));var _c=class{constructor(){this[d_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Gt.None){let i=this._map.get(e);if(i)return n!==Gt.None&&this.touch(i,n),i.value}set(e,n,i=Gt.None){let s=this._map.get(e);if(s)s.value=n,i!==Gt.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Gt.None:this.addItemLast(s);break;case Gt.First:this.addItemFirst(s);break;case Gt.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(d_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Gt.First&&n!==Gt.Last)){if(n===Gt.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Gt.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};ri.LinkedMap=_c;var Df=class extends _c{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Gt.AsNew){return super.get(e,n)}peek(e){return super.get(e,Gt.None)}set(e,n){return super.set(e,n,Gt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ri.LRUCache=Df});var h_=I(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.Disposable=void 0;var f_;(function(t){function e(n){return{dispose:n}}t.create=e})(f_||(vc.Disposable=f_={}))});var ii=I(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Ef;function If(){if(Ef===void 0)throw new Error("No runtime abstraction layer installed");return Ef}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ef=n}t.install=e})(If||(If={}));Mf.default=If});var mo=I(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.Emitter=po.Event=void 0;var mA=ii(),g_;(function(t){let e={dispose(){}};t.None=function(){return e}})(g_||(po.Event=g_={}));var Af=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Af),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};po.Emitter=yc;yc._noop=function(){}});var xc=I(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.CancellationTokenSource=bo.CancellationToken=void 0;var bA=ii(),_A=go(),Nf=mo(),wc;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Nf.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Nf.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||_A.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(wc||(bo.CancellationToken=wc={}));var vA=Object.freeze(function(t,e){let n=(0,bA.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),Sc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?vA:(this._emitter||(this._emitter=new Nf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},qf=class{get token(){return this._token||(this._token=new Sc),this._token}cancel(){this._token?this._token.cancel():this._token=wc.Cancelled}dispose(){this._token?this._token instanceof Sc&&this._token.dispose():this._token=wc.None}};bo.CancellationTokenSource=qf});var p_=I(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.SharedArrayReceiverStrategy=_o.SharedArraySenderStrategy=void 0;var yA=xc(),Cs;(function(t){t.Continue=0,t.Cancelled=1})(Cs||(Cs={}));var Of=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=Cs.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,Cs.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};_o.SharedArraySenderStrategy=Of;var Lf=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===Cs.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Bf=class{constructor(e){this.token=new Lf(e)}cancel(){}dispose(){}},Uf=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new yA.CancellationTokenSource:new Bf(n)}};_o.SharedArrayReceiverStrategy=Uf});var Wf=I(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.Semaphore=void 0;var wA=ii(),$f=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,wA.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};Pc.Semaphore=$f});var b_=I(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.ReadableStreamMessageReader=oi.AbstractMessageReader=oi.MessageReader=void 0;var zf=ii(),vo=go(),jf=mo(),SA=Wf(),m_;(function(t){function e(n){let i=n;return i&&vo.func(i.listen)&&vo.func(i.dispose)&&vo.func(i.onError)&&vo.func(i.onClose)&&vo.func(i.onPartialMessage)}t.is=e})(m_||(oi.MessageReader=m_={}));var Cc=class{constructor(){this.errorEmitter=new jf.Emitter,this.closeEmitter=new jf.Emitter,this.partialMessageEmitter=new jf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${vo.string(e.message)?e.message:"unknown"}`)}};oi.AbstractMessageReader=Cc;var Hf;(function(t){function e(n){let i,s,c,u=new Map,d,f=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let m of n.contentDecoders)u.set(m.name,m);if(n.contentTypeDecoder!==void 0&&(d=n.contentTypeDecoder,f.set(d.name,d)),n.contentTypeDecoders!==void 0)for(let m of n.contentTypeDecoders)f.set(m.name,m)}return d===void 0&&(d=(0,zf.default)().applicationJson.decoder,f.set(d.name,d)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:d,contentTypeDecoders:f}}t.fromOptions=e})(Hf||(Hf={}));var Vf=class extends Cc{constructor(e,n){super(),this.readable=e,this.options=Hf.fromOptions(n),this.buffer=(0,zf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new SA.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. +${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,zf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};oi.ReadableStreamMessageReader=Vf});var S_=I(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.WriteableStreamMessageWriter=si.AbstractMessageWriter=si.MessageWriter=void 0;var __=ii(),ks=go(),xA=Wf(),v_=mo(),PA="Content-Length: ",y_=`\r +`,w_;(function(t){function e(n){let i=n;return i&&ks.func(i.dispose)&&ks.func(i.onClose)&&ks.func(i.onError)&&ks.func(i.write)}t.is=e})(w_||(si.MessageWriter=w_={}));var kc=class{constructor(){this.errorEmitter=new v_.Emitter,this.closeEmitter=new v_.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${ks.string(e.message)?e.message:"unknown"}`)}};si.AbstractMessageWriter=kc;var Gf;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,__.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,__.default)().applicationJson.encoder}}t.fromOptions=e})(Gf||(Gf={}));var Qf=class extends kc{constructor(e,n){super(),this.writable=e,this.options=Gf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new xA.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let s=[];return s.push(PA,i.byteLength.toString(),y_),s.push(y_),this.doWrite(e,s,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(s){return this.handleError(s,e),Promise.reject(s)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};si.WriteableStreamMessageWriter=Qf});var x_=I(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.AbstractMessageBuffer=void 0;var CA=13,kA=10,TA=`\r `,Kf=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let n=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let n=0,i=0,s=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};Tc.AbstractMessageBuffer=Kf});var T_=I(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.createMessageConnection=Pe.ConnectionOptions=Pe.MessageStrategy=Pe.CancellationStrategy=Pe.CancellationSenderStrategy=Pe.CancellationReceiverStrategy=Pe.RequestCancellationReceiverStrategy=Pe.IdCancellationReceiverStrategy=Pe.ConnectionStrategy=Pe.ConnectionError=Pe.ConnectionErrors=Pe.LogTraceNotification=Pe.SetTraceNotification=Pe.TraceFormat=Pe.TraceValues=Pe.Trace=Pe.NullLogger=Pe.ProgressType=Pe.ProgressToken=void 0;var x_=ii(),_t=go(),he=Rf(),P_=Ff(),Rs=mo(),Jf=xc(),Es;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(Es||(Es={}));var Xf;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(Xf||(Pe.ProgressToken=Xf={}));var Ds;(function(t){t.type=new he.NotificationType("$/progress")})(Ds||(Ds={}));var Yf=class{constructor(){}};Pe.ProgressType=Yf;var Zf;(function(t){function e(n){return _t.func(n)}t.is=e})(Zf||(Zf={}));Pe.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(Pe.Trace=He={}));var C_;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(C_||(Pe.TraceValues=C_={}));(function(t){function e(i){if(!_t.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(Pe.Trace=He={}));var Tn;(function(t){t.Text="text",t.JSON="json"})(Tn||(Pe.TraceFormat=Tn={}));(function(t){function e(n){return _t.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Tn||(Pe.TraceFormat=Tn={}));var eh;(function(t){t.type=new he.NotificationType("$/setTrace")})(eh||(Pe.SetTraceNotification=eh={}));var Rc;(function(t){t.type=new he.NotificationType("$/logTrace")})(Rc||(Pe.LogTraceNotification=Rc={}));var Fs;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(Fs||(Pe.ConnectionErrors=Fs={}));var yo=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Pe.ConnectionError=yo;var th;(function(t){function e(n){let i=n;return i&&_t.func(i.cancelUndispatched)}t.is=e})(th||(Pe.ConnectionStrategy=th={}));var Dc;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(Dc||(Pe.IdCancellationReceiverStrategy=Dc={}));var nh;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(nh||(Pe.RequestCancellationReceiverStrategy=nh={}));var Fc;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new Jf.CancellationTokenSource}});function e(n){return Dc.is(n)||nh.is(n)}t.is=e})(Fc||(Pe.CancellationReceiverStrategy=Fc={}));var Ec;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Es.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&_t.func(i.sendCancellation)&&_t.func(i.cleanup)}t.is=e})(Ec||(Pe.CancellationSenderStrategy=Ec={}));var Ic;(function(t){t.Message=Object.freeze({receiver:Fc.Message,sender:Ec.Message});function e(n){let i=n;return i&&Fc.is(i.receiver)&&Ec.is(i.sender)}t.is=e})(Ic||(Pe.CancellationStrategy=Ic={}));var Mc;(function(t){function e(n){let i=n;return i&&_t.func(i.handleMessage)}t.is=e})(Mc||(Pe.MessageStrategy=Mc={}));var k_;(function(t){function e(n){let i=n;return i&&(Ic.is(i.cancellationStrategy)||th.is(i.connectionStrategy)||Mc.is(i.messageStrategy))}t.is=e})(k_||(Pe.ConnectionOptions=k_={}));var Zn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Zn||(Zn={}));function RA(t,e,n,i){let s=n!==void 0?n:Pe.NullLogger,c=0,u=0,d=0,f="2.0",m,v=new Map,x,D=new Map,N=new Map,A,L=new P_.LinkedMap,B=new Map,K=new Set,F=new Map,P=He.Off,U=Tn.Text,te,ve=Zn.New,Be=new Rs.Emitter,Je=new Rs.Emitter,Dt=new Rs.Emitter,Se=new Rs.Emitter,X=new Rs.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Ic.Message;function se(C){if(C===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+C.toString()}function re(C){return C===null?"res-unknown-"+(++d).toString():"res-"+C.toString()}function Re(){return"not-"+(++u).toString()}function ge(C,H){he.Message.isRequest(H)?C.set(se(H.id),H):he.Message.isResponse(H)?C.set(re(H.id),H):C.set(Re(),H)}function me(C){}function St(){return ve===Zn.Listening}function We(){return ve===Zn.Closed}function je(){return ve===Zn.Disposed}function bn(){(ve===Zn.New||ve===Zn.Listening)&&(ve=Zn.Closed,Je.fire(void 0))}function wr(C){Be.fire([C,void 0,void 0])}function Vn(C){Be.fire(C)}t.onClose(bn),t.onError(wr),e.onClose(bn),e.onError(Vn);function lr(){A||L.size===0||(A=(0,x_.default)().timer.setImmediate(()=>{A=void 0,dr()}))}function Pi(C){he.Message.isRequest(C)?Ki(C):he.Message.isNotification(C)?xr(C):he.Message.isResponse(C)?Sr(C):Pr(C)}function dr(){if(L.size===0)return;let C=L.shift();try{let H=i?.messageStrategy;Mc.is(H)?H.handleMessage(C,Pi):Pi(C)}finally{lr()}}let fr=C=>{try{if(he.Message.isNotification(C)&&C.method===Es.type.method){let H=C.params.id,Z=se(H),ie=L.get(Z);if(he.Message.isRequest(ie)){let Le=i?.connectionStrategy,Ge=Le&&Le.cancelUndispatched?Le.cancelUndispatched(ie,me):void 0;if(Ge&&(Ge.error!==void 0||Ge.result!==void 0)){L.delete(Z),F.delete(H),Ge.id=ie.id,Bt(Ge,C.method,Date.now()),e.write(Ge).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=F.get(H);if(Ue!==void 0){Ue.cancel(),Hr(C);return}else K.add(H)}ge(L,C)}finally{lr()}};function Ki(C){if(je())return;function H(De,Qe,Ne){let at={jsonrpc:f,id:C.id};De instanceof he.ResponseError?at.error=De.toJson():at.result=De===void 0?null:De,Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function Z(De,Qe,Ne){let at={jsonrpc:f,id:C.id,error:De.toJson()};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function ie(De,Qe,Ne){De===void 0&&(De=null);let at={jsonrpc:f,id:C.id,result:De};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}Ci(C);let Ue=v.get(C.method),Le,Ge;Ue&&(Le=Ue.type,Ge=Ue.handler);let tt=Date.now();if(Ge||m){let De=C.id??String(Date.now()),Qe=Dc.is(z.receiver)?z.receiver.createCancellationTokenSource(De):z.receiver.createCancellationTokenSource(C);C.id!==null&&K.has(C.id)&&Qe.cancel(),C.id!==null&&F.set(De,Qe);try{let Ne;if(Ge)if(C.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines ${Le.numberOfParams} params but received none.`),C.method,tt);return}Ne=Ge(Qe.token)}else if(Array.isArray(C.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by name but received parameters by position`),C.method,tt);return}Ne=Ge(...C.params,Qe.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by position but received parameters by name`),C.method,tt);return}Ne=Ge(C.params,Qe.token)}else m&&(Ne=m(C.method,C.params,Qe.token));let at=Ne;Ne?at.then?at.then(Ft=>{F.delete(De),H(Ft,C.method,tt)},Ft=>{F.delete(De),Ft instanceof he.ResponseError?Z(Ft,C.method,tt):Ft&&_t.string(Ft.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ft.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}):(F.delete(De),H(Ne,C.method,tt)):(F.delete(De),ie(Ne,C.method,tt))}catch(Ne){F.delete(De),Ne instanceof he.ResponseError?H(Ne,C.method,tt):Ne&&_t.string(Ne.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ne.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${C.method}`),C.method,tt)}function Sr(C){if(!je())if(C.id===null)C.error?s.error(`Received response message without id: Error is: -${JSON.stringify(C.error,void 0,4)}`):s.error("Received response message without id. No further error information provided.");else{let H=C.id,Z=B.get(H);if(gr(C,Z),Z!==void 0){B.delete(H);try{if(C.error){let ie=C.error;Z.reject(new he.ResponseError(ie.code,ie.message,ie.data))}else if(C.result!==void 0)Z.resolve(C.result);else throw new Error("Should never happen.")}catch(ie){ie.message?s.error(`Response handler '${Z.method}' failed with message: ${ie.message}`):s.error(`Response handler '${Z.method}' failed unexpectedly.`)}}}}function xr(C){if(je())return;let H,Z;if(C.method===Es.type.method){let ie=C.params.id;K.delete(ie),Hr(C);return}else{let ie=D.get(C.method);ie&&(Z=ie.handler,H=ie.type)}if(Z||x)try{if(Hr(C),Z)if(C.params===void 0)H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received none.`),Z();else if(Array.isArray(C.params)){let ie=C.params;C.method===Ds.type.method&&ie.length===2&&Xf.is(ie[0])?Z({token:ie[0],value:ie[1]}):(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines parameters by name but received parameters by position`),H.numberOfParams!==C.params.length&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received ${ie.length} arguments`)),Z(...ie))}else H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&s.error(`Notification ${C.method} defines parameters by position but received parameters by name`),Z(C.params);else x&&x(C.method,C.params)}catch(ie){ie.message?s.error(`Notification handler '${C.method}' failed with message: ${ie.message}`):s.error(`Notification handler '${C.method}' failed unexpectedly.`)}else Dt.fire(C)}function Pr(C){if(!C){s.error("Received empty message.");return}s.error(`Received message which is neither a response nor a notification message: +${v}`);let D=v.substr(0,x),N=v.substr(x+1).trim();d.set(e?D.toLowerCase():D,N)}return d}tryReadBody(e){if(!(this._totalLengththis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};Tc.AbstractMessageBuffer=Kf});var R_=I(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.createMessageConnection=Ce.ConnectionOptions=Ce.MessageStrategy=Ce.CancellationStrategy=Ce.CancellationSenderStrategy=Ce.CancellationReceiverStrategy=Ce.RequestCancellationReceiverStrategy=Ce.IdCancellationReceiverStrategy=Ce.ConnectionStrategy=Ce.ConnectionError=Ce.ConnectionErrors=Ce.LogTraceNotification=Ce.SetTraceNotification=Ce.TraceFormat=Ce.TraceValues=Ce.Trace=Ce.NullLogger=Ce.ProgressType=Ce.ProgressToken=void 0;var P_=ii(),_t=go(),he=Rf(),C_=Ff(),Ts=mo(),Jf=xc(),Fs;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(Fs||(Fs={}));var Xf;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(Xf||(Ce.ProgressToken=Xf={}));var Rs;(function(t){t.type=new he.NotificationType("$/progress")})(Rs||(Rs={}));var Yf=class{constructor(){}};Ce.ProgressType=Yf;var Zf;(function(t){function e(n){return _t.func(n)}t.is=e})(Zf||(Zf={}));Ce.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(Ce.Trace=He={}));var k_;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(k_||(Ce.TraceValues=k_={}));(function(t){function e(i){if(!_t.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(Ce.Trace=He={}));var Tn;(function(t){t.Text="text",t.JSON="json"})(Tn||(Ce.TraceFormat=Tn={}));(function(t){function e(n){return _t.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Tn||(Ce.TraceFormat=Tn={}));var eh;(function(t){t.type=new he.NotificationType("$/setTrace")})(eh||(Ce.SetTraceNotification=eh={}));var Rc;(function(t){t.type=new he.NotificationType("$/logTrace")})(Rc||(Ce.LogTraceNotification=Rc={}));var Ds;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(Ds||(Ce.ConnectionErrors=Ds={}));var yo=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Ce.ConnectionError=yo;var th;(function(t){function e(n){let i=n;return i&&_t.func(i.cancelUndispatched)}t.is=e})(th||(Ce.ConnectionStrategy=th={}));var Dc;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(Dc||(Ce.IdCancellationReceiverStrategy=Dc={}));var nh;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(nh||(Ce.RequestCancellationReceiverStrategy=nh={}));var Fc;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new Jf.CancellationTokenSource}});function e(n){return Dc.is(n)||nh.is(n)}t.is=e})(Fc||(Ce.CancellationReceiverStrategy=Fc={}));var Ec;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Fs.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&_t.func(i.sendCancellation)&&_t.func(i.cleanup)}t.is=e})(Ec||(Ce.CancellationSenderStrategy=Ec={}));var Ic;(function(t){t.Message=Object.freeze({receiver:Fc.Message,sender:Ec.Message});function e(n){let i=n;return i&&Fc.is(i.receiver)&&Ec.is(i.sender)}t.is=e})(Ic||(Ce.CancellationStrategy=Ic={}));var Mc;(function(t){function e(n){let i=n;return i&&_t.func(i.handleMessage)}t.is=e})(Mc||(Ce.MessageStrategy=Mc={}));var T_;(function(t){function e(n){let i=n;return i&&(Ic.is(i.cancellationStrategy)||th.is(i.connectionStrategy)||Mc.is(i.messageStrategy))}t.is=e})(T_||(Ce.ConnectionOptions=T_={}));var Zn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Zn||(Zn={}));function RA(t,e,n,i){let s=n!==void 0?n:Ce.NullLogger,c=0,u=0,d=0,f="2.0",m,v=new Map,x,D=new Map,N=new Map,A,L=new C_.LinkedMap,B=new Map,K=new Set,F=new Map,P=He.Off,U=Tn.Text,te,ve=Zn.New,Be=new Ts.Emitter,Je=new Ts.Emitter,Dt=new Ts.Emitter,xe=new Ts.Emitter,X=new Ts.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Ic.Message;function se(C){if(C===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+C.toString()}function re(C){return C===null?"res-unknown-"+(++d).toString():"res-"+C.toString()}function De(){return"not-"+(++u).toString()}function pe(C,H){he.Message.isRequest(H)?C.set(se(H.id),H):he.Message.isResponse(H)?C.set(re(H.id),H):C.set(De(),H)}function me(C){}function St(){return ve===Zn.Listening}function We(){return ve===Zn.Closed}function je(){return ve===Zn.Disposed}function bn(){(ve===Zn.New||ve===Zn.Listening)&&(ve=Zn.Closed,Je.fire(void 0))}function wr(C){Be.fire([C,void 0,void 0])}function Vn(C){Be.fire(C)}t.onClose(bn),t.onError(wr),e.onClose(bn),e.onError(Vn);function lr(){A||L.size===0||(A=(0,P_.default)().timer.setImmediate(()=>{A=void 0,dr()}))}function Pi(C){he.Message.isRequest(C)?Ki(C):he.Message.isNotification(C)?xr(C):he.Message.isResponse(C)?Sr(C):Pr(C)}function dr(){if(L.size===0)return;let C=L.shift();try{let H=i?.messageStrategy;Mc.is(H)?H.handleMessage(C,Pi):Pi(C)}finally{lr()}}let fr=C=>{try{if(he.Message.isNotification(C)&&C.method===Fs.type.method){let H=C.params.id,Z=se(H),ie=L.get(Z);if(he.Message.isRequest(ie)){let Le=i?.connectionStrategy,Ge=Le&&Le.cancelUndispatched?Le.cancelUndispatched(ie,me):void 0;if(Ge&&(Ge.error!==void 0||Ge.result!==void 0)){L.delete(Z),F.delete(H),Ge.id=ie.id,Bt(Ge,C.method,Date.now()),e.write(Ge).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=F.get(H);if(Ue!==void 0){Ue.cancel(),Hr(C);return}else K.add(H)}pe(L,C)}finally{lr()}};function Ki(C){if(je())return;function H(Fe,Qe,Ne){let at={jsonrpc:f,id:C.id};Fe instanceof he.ResponseError?at.error=Fe.toJson():at.result=Fe===void 0?null:Fe,Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function Z(Fe,Qe,Ne){let at={jsonrpc:f,id:C.id,error:Fe.toJson()};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function ie(Fe,Qe,Ne){Fe===void 0&&(Fe=null);let at={jsonrpc:f,id:C.id,result:Fe};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}Ci(C);let Ue=v.get(C.method),Le,Ge;Ue&&(Le=Ue.type,Ge=Ue.handler);let tt=Date.now();if(Ge||m){let Fe=C.id??String(Date.now()),Qe=Dc.is(z.receiver)?z.receiver.createCancellationTokenSource(Fe):z.receiver.createCancellationTokenSource(C);C.id!==null&&K.has(C.id)&&Qe.cancel(),C.id!==null&&F.set(Fe,Qe);try{let Ne;if(Ge)if(C.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines ${Le.numberOfParams} params but received none.`),C.method,tt);return}Ne=Ge(Qe.token)}else if(Array.isArray(C.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by name but received parameters by position`),C.method,tt);return}Ne=Ge(...C.params,Qe.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by position but received parameters by name`),C.method,tt);return}Ne=Ge(C.params,Qe.token)}else m&&(Ne=m(C.method,C.params,Qe.token));let at=Ne;Ne?at.then?at.then(Ft=>{F.delete(Fe),H(Ft,C.method,tt)},Ft=>{F.delete(Fe),Ft instanceof he.ResponseError?Z(Ft,C.method,tt):Ft&&_t.string(Ft.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ft.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}):(F.delete(Fe),H(Ne,C.method,tt)):(F.delete(Fe),ie(Ne,C.method,tt))}catch(Ne){F.delete(Fe),Ne instanceof he.ResponseError?H(Ne,C.method,tt):Ne&&_t.string(Ne.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ne.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${C.method}`),C.method,tt)}function Sr(C){if(!je())if(C.id===null)C.error?s.error(`Received response message without id: Error is: +${JSON.stringify(C.error,void 0,4)}`):s.error("Received response message without id. No further error information provided.");else{let H=C.id,Z=B.get(H);if(gr(C,Z),Z!==void 0){B.delete(H);try{if(C.error){let ie=C.error;Z.reject(new he.ResponseError(ie.code,ie.message,ie.data))}else if(C.result!==void 0)Z.resolve(C.result);else throw new Error("Should never happen.")}catch(ie){ie.message?s.error(`Response handler '${Z.method}' failed with message: ${ie.message}`):s.error(`Response handler '${Z.method}' failed unexpectedly.`)}}}}function xr(C){if(je())return;let H,Z;if(C.method===Fs.type.method){let ie=C.params.id;K.delete(ie),Hr(C);return}else{let ie=D.get(C.method);ie&&(Z=ie.handler,H=ie.type)}if(Z||x)try{if(Hr(C),Z)if(C.params===void 0)H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received none.`),Z();else if(Array.isArray(C.params)){let ie=C.params;C.method===Rs.type.method&&ie.length===2&&Xf.is(ie[0])?Z({token:ie[0],value:ie[1]}):(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines parameters by name but received parameters by position`),H.numberOfParams!==C.params.length&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received ${ie.length} arguments`)),Z(...ie))}else H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&s.error(`Notification ${C.method} defines parameters by position but received parameters by name`),Z(C.params);else x&&x(C.method,C.params)}catch(ie){ie.message?s.error(`Notification handler '${C.method}' failed with message: ${ie.message}`):s.error(`Notification handler '${C.method}' failed unexpectedly.`)}else Dt.fire(C)}function Pr(C){if(!C){s.error("Received empty message.");return}s.error(`Received message which is neither a response nor a notification message: ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z=H.id,ie=B.get(Z);ie&&ie.reject(new Error("The received response has neither a result nor an error property."))}}function mt(C){if(C!=null)switch(P){case He.Verbose:return JSON.stringify(C,null,4);case He.Compact:return JSON.stringify(C);default:return}}function hr(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} `),te.log(`Sending request '${C.method} - (${C.id})'.`,H)}else xt("send-request",C)}function Ji(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} @@ -34,14 +34,14 @@ ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z `:C.error===void 0&&(Z=`No result returned. -`)),H){let ie=C.error?` Request failed: ${C.error.message} (${C.error.code}).`:"";te.log(`Received response '${H.method} - (${C.id})' in ${Date.now()-H.timerStart}ms.${ie}`,Z)}else te.log(`Received response ${C.id} without active response promise.`,Z)}else xt("receive-response",C)}function xt(C,H){if(!te||P===He.Off)return;let Z={isLSPMessage:!0,type:C,message:H,timestamp:Date.now()};te.log(Z)}function sn(){if(We())throw new yo(Fs.Closed,"Connection is closed.");if(je())throw new yo(Fs.Disposed,"Connection is disposed.")}function Cr(){if(St())throw new yo(Fs.AlreadyListening,"Connection is already listening")}function Xi(){if(!St())throw new Error("Call listen() first.")}function jt(C){return C===void 0?null:C}function ki(C){if(C!==null)return C}function Gn(C){return C!=null&&!Array.isArray(C)&&typeof C=="object"}function _n(C,H){switch(C){case he.ParameterStructures.auto:return Gn(H)?ki(H):[jt(H)];case he.ParameterStructures.byName:if(!Gn(H))throw new Error("Received parameters by name but param is not an object literal.");return ki(H);case he.ParameterStructures.byPosition:return[jt(H)];default:throw new Error(`Unknown parameter structure ${C.toString()}`)}}function kr(C,H){let Z,ie=C.numberOfParams;switch(ie){case 0:Z=void 0;break;case 1:Z=_n(C.parameterStructures,H[0]);break;default:Z=[];for(let Ue=0;Ue{sn();let Z,ie;if(_t.string(C)){Z=C;let Le=H[0],Ge=0,tt=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Ge=1,tt=Le);let De=H.length,Qe=De-Ge;switch(Qe){case 0:ie=void 0;break;case 1:ie=_n(tt,H[Ge]);break;default:if(tt===he.ParameterStructures.byName)throw new Error(`Received ${Qe} parameters for 'by Name' notification parameter structure.`);ie=H.slice(Ge,De).map(Ne=>jt(Ne));break}}else{let Le=H;Z=C.method,ie=kr(C,Le)}let Ue={jsonrpc:f,method:Z,params:ie};return Ji(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(C,H)=>{sn();let Z;return _t.func(C)?x=C:H&&(_t.string(C)?(Z=C,D.set(C,{type:void 0,handler:H})):(Z=C.method,D.set(C.method,{type:C,handler:H}))),{dispose:()=>{Z!==void 0?D.delete(Z):x=void 0}}},onProgress:(C,H,Z)=>{if(N.has(H))throw new Error(`Progress handler for token ${H} already registered`);return N.set(H,Z),{dispose:()=>{N.delete(H)}}},sendProgress:(C,H,Z)=>vn.sendNotification(Ds.type,{token:H,value:Z}),onUnhandledProgress:Se.event,sendRequest:(C,...H)=>{sn(),Xi();let Z,ie,Ue;if(_t.string(C)){Z=C;let De=H[0],Qe=H[H.length-1],Ne=0,at=he.ParameterStructures.auto;he.ParameterStructures.is(De)&&(Ne=1,at=De);let Ft=H.length;Jf.CancellationToken.is(Qe)&&(Ft=Ft-1,Ue=Qe);let Yt=Ft-Ne;switch(Yt){case 0:ie=void 0;break;case 1:ie=_n(at,H[Ne]);break;default:if(at===he.ParameterStructures.byName)throw new Error(`Received ${Yt} parameters for 'by Name' request parameter structure.`);ie=H.slice(Ne,Ft).map(Yi=>jt(Yi));break}}else{let De=H;Z=C.method,ie=kr(C,De);let Qe=C.numberOfParams;Ue=Jf.CancellationToken.is(De[Qe])?De[Qe]:void 0}let Le=c++,Ge;Ue&&(Ge=Ue.onCancellationRequested(()=>{let De=z.sender.sendCancellation(vn,Le);return De===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):De.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let tt={jsonrpc:f,id:Le,method:Z,params:ie};return hr(tt),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(tt),new Promise(async(De,Qe)=>{let Ne=Yt=>{De(Yt),z.sender.cleanup(Le),Ge?.dispose()},at=Yt=>{Qe(Yt),z.sender.cleanup(Le),Ge?.dispose()},Ft={method:Z,timerStart:Date.now(),resolve:Ne,reject:at};try{await e.write(tt),B.set(Le,Ft)}catch(Yt){throw s.error("Sending request failed."),Ft.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Yt.message?Yt.message:"Unknown reason")),Yt}})},onRequest:(C,H)=>{sn();let Z=null;return Zf.is(C)?(Z=void 0,m=C):_t.string(C)?(Z=null,H!==void 0&&(Z=C,v.set(C,{handler:H,type:void 0}))):H!==void 0&&(Z=C.method,v.set(C.method,{type:C,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?v.delete(Z):m=void 0)}}},hasPendingResponse:()=>B.size>0,trace:async(C,H,Z)=>{let ie=!1,Ue=Tn.Text;Z!==void 0&&(_t.boolean(Z)?ie=Z:(ie=Z.sendNotification||!1,Ue=Z.traceFormat||Tn.Text)),P=C,U=Ue,P===He.Off?te=void 0:te=H,ie&&!We()&&!je()&&await vn.sendNotification(eh.type,{value:He.toString(C)})},onError:Be.event,onClose:Je.event,onUnhandledNotification:Dt.event,onDispose:X.event,end:()=>{e.end()},dispose:()=>{if(je())return;ve=Zn.Disposed,X.fire(void 0);let C=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of B.values())H.reject(C);B=new Map,F=new Map,K=new Set,L=new P_.LinkedMap,_t.func(e.dispose)&&e.dispose(),_t.func(t.dispose)&&t.dispose()},listen:()=>{sn(),Cr(),ve=Zn.Listening,t.listen(fr)},inspect:()=>{(0,x_.default)().console.log("inspect")}};return vn.onNotification(Rc.type,C=>{if(P===He.Off||!te)return;let H=P===He.Verbose||P===He.Compact;te.log(C.message,H?C.verbose:void 0)}),vn.onNotification(Ds.type,C=>{let H=N.get(C.token);H?H(C.value):Se.fire(C)}),vn}Pe.createMessageConnection=RA});var Ac=I(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var rt=Rf();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return rt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return rt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return rt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return rt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return rt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return rt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return rt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return rt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return rt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return rt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return rt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return rt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return rt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return rt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return rt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return rt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return rt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return rt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return rt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return rt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return rt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return rt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return rt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return rt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return rt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return rt.ParameterStructures}});var rh=Ff();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return rh.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return rh.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return rh.Touch}});var DA=f_();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return DA.Disposable}});var R_=mo();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return R_.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return R_.Emitter}});var D_=xc();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return D_.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return D_.CancellationToken}});var F_=g_();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return F_.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return F_.SharedArrayReceiverStrategy}});var ih=m_();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return ih.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return ih.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return ih.ReadableStreamMessageReader}});var oh=w_();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return oh.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return oh.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return oh.WriteableStreamMessageWriter}});var FA=S_();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return FA.AbstractMessageBuffer}});var $t=T_();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return $t.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return $t.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return $t.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return $t.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return $t.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return $t.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return $t.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return $t.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return $t.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return $t.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return $t.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return $t.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return $t.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return $t.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return $t.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return $t.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return $t.MessageStrategy}});var EA=ii();j.RAL=EA.default});var M_=I(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var E_=require("util"),qr=Ac(),Nc=class t extends qr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new E_.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};Nc.emptyBuffer=Buffer.allocUnsafe(0);var sh=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),qr.Disposable.create(()=>this.stream.off("data",e))}},ah=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},I_=Object.freeze({messageBuffer:Object.freeze({create:t=>new Nc(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new E_.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new sh(t),asWritableStream:t=>new ah(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function ch(){return I_}(function(t){function e(){qr.RAL.install(I_)}t.install=e})(ch||(ch={}));uh.default=ch});var Ui=I(Oe=>{"use strict";var IA=Oe&&Oe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),MA=Oe&&Oe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&IA(e,t,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var wo=M_();wo.default.install();var A_=require("path"),AA=require("os"),NA=require("crypto"),Lc=require("net"),Rn=Ac();MA(Ac(),Oe);var lh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Rn.Disposable.create(()=>this.process.off("message",e))}};Oe.IPCMessageReader=lh;var dh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=dh;var fh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.onData=new Rn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};Oe.PortMessageReader=fh;var hh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.PortMessageWriter=hh;var Li=class extends Rn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,wo.default)().stream.asReadableStream(e),n)}};Oe.SocketMessageReader=Li;var Bi=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,wo.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Bi;var qc=class extends Rn.ReadableStreamMessageReader{constructor(e,n){super((0,wo.default)().stream.asReadableStream(e),n)}};Oe.StreamMessageReader=qc;var Oc=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,wo.default)().stream.asWritableStream(e),n)}};Oe.StreamMessageWriter=Oc;var N_=process.env.XDG_RUNTIME_DIR,qA=new Map([["linux",107],["darwin",103]]);function OA(){let t=(0,NA.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;N_?e=A_.join(N_,`vscode-ipc-${t}.sock`):e=A_.join(AA.tmpdir(),`vscode-${t}.sock`);let n=qA.get(process.platform);return n!==void 0&&e.length>n&&(0,wo.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}Oe.generateRandomPipeName=OA;function LA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Li(d,e),new Bi(d,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientPipeTransport=LA;function BA(t,e="utf-8"){let n=(0,Lc.createConnection)(t);return[new Li(n,e),new Bi(n,e)]}Oe.createServerPipeTransport=BA;function UA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Li(d,e),new Bi(d,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientSocketTransport=UA;function $A(t,e="utf-8"){let n=(0,Lc.createConnection)(t,"127.0.0.1");return[new Li(n,e),new Bi(n,e)]}Oe.createServerSocketTransport=$A;function WA(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function jA(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function zA(t,e,n,i){n||(n=Rn.NullLogger);let s=WA(t)?new qc(t):t,c=jA(e)?new Oc(e):e;return Rn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Rn.createMessageConnection)(s,c,n,i)}Oe.createMessageConnection=zA});var gh=I((P2,q_)=>{"use strict";q_.exports=Ui()});var Uc=I((O_,Bc)=>{"use strict";(function(t){if(typeof Bc=="object"&&typeof Bc.exports=="object"){var e=t(require,O_);e!==void 0&&(Bc.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function k(R){return typeof R=="string"}p.is=k})(n||(e.DocumentUri=n={}));var i;(function(p){function k(R){return typeof R=="string"}p.is=k})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(c||(e.uinteger=c={}));var u;(function(p){function k(y,g){return y===Number.MAX_VALUE&&(y=c.MAX_VALUE),g===Number.MAX_VALUE&&(g=c.MAX_VALUE),{line:y,character:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.line)&&q.uinteger(g.character)}p.is=R})(u||(e.Position=u={}));var d;(function(p){function k(y,g,O,G){if(q.uinteger(y)&&q.uinteger(g)&&q.uinteger(O)&&q.uinteger(G))return{start:u.create(y,g),end:u.create(O,G)};if(u.is(y)&&u.is(g))return{start:y,end:g};throw new Error("Range#create called with invalid arguments[".concat(y,", ").concat(g,", ").concat(O,", ").concat(G,"]"))}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&u.is(g.start)&&u.is(g.end)}p.is=R})(d||(e.Range=d={}));var f;(function(p){function k(y,g){return{uri:y,range:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&(q.string(g.uri)||q.undefined(g.uri))}p.is=R})(f||(e.Location=f={}));var m;(function(p){function k(y,g,O,G){return{targetUri:y,targetRange:g,targetSelectionRange:O,originSelectionRange:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.targetRange)&&q.string(g.targetUri)&&d.is(g.targetSelectionRange)&&(d.is(g.originSelectionRange)||q.undefined(g.originSelectionRange))}p.is=R})(m||(e.LocationLink=m={}));var v;(function(p){function k(y,g,O,G){return{red:y,green:g,blue:O,alpha:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.numberRange(g.red,0,1)&&q.numberRange(g.green,0,1)&&q.numberRange(g.blue,0,1)&&q.numberRange(g.alpha,0,1)}p.is=R})(v||(e.Color=v={}));var x;(function(p){function k(y,g){return{range:y,color:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&v.is(g.color)}p.is=R})(x||(e.ColorInformation=x={}));var D;(function(p){function k(y,g,O){return{label:y,textEdit:g,additionalTextEdits:O}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.undefined(g.textEdit)||te.is(g))&&(q.undefined(g.additionalTextEdits)||q.typedArray(g.additionalTextEdits,te.is))}p.is=R})(D||(e.ColorPresentation=D={}));var N;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(N||(e.FoldingRangeKind=N={}));var A;(function(p){function k(y,g,O,G,be,ft){var Xe={startLine:y,endLine:g};return q.defined(O)&&(Xe.startCharacter=O),q.defined(G)&&(Xe.endCharacter=G),q.defined(be)&&(Xe.kind=be),q.defined(ft)&&(Xe.collapsedText=ft),Xe}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.startLine)&&q.uinteger(g.startLine)&&(q.undefined(g.startCharacter)||q.uinteger(g.startCharacter))&&(q.undefined(g.endCharacter)||q.uinteger(g.endCharacter))&&(q.undefined(g.kind)||q.string(g.kind))}p.is=R})(A||(e.FoldingRange=A={}));var L;(function(p){function k(y,g){return{location:y,message:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&f.is(g.location)&&q.string(g.message)}p.is=R})(L||(e.DiagnosticRelatedInformation=L={}));var B;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(B||(e.DiagnosticSeverity=B={}));var K;(function(p){p.Unnecessary=1,p.Deprecated=2})(K||(e.DiagnosticTag=K={}));var F;(function(p){function k(R){var y=R;return q.objectLiteral(y)&&q.string(y.href)}p.is=k})(F||(e.CodeDescription=F={}));var P;(function(p){function k(y,g,O,G,be,ft){var Xe={range:y,message:g};return q.defined(O)&&(Xe.severity=O),q.defined(G)&&(Xe.code=G),q.defined(be)&&(Xe.source=be),q.defined(ft)&&(Xe.relatedInformation=ft),Xe}p.create=k;function R(y){var g,O=y;return q.defined(O)&&d.is(O.range)&&q.string(O.message)&&(q.number(O.severity)||q.undefined(O.severity))&&(q.integer(O.code)||q.string(O.code)||q.undefined(O.code))&&(q.undefined(O.codeDescription)||q.string((g=O.codeDescription)===null||g===void 0?void 0:g.href))&&(q.string(O.source)||q.undefined(O.source))&&(q.undefined(O.relatedInformation)||q.typedArray(O.relatedInformation,L.is))}p.is=R})(P||(e.Diagnostic=P={}));var U;(function(p){function k(y,g){for(var O=[],G=2;G0&&(be.arguments=O),be}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.title)&&q.string(g.command)}p.is=R})(U||(e.Command=U={}));var te;(function(p){function k(O,G){return{range:O,newText:G}}p.replace=k;function R(O,G){return{range:{start:O,end:O},newText:G}}p.insert=R;function y(O){return{range:O,newText:""}}p.del=y;function g(O){var G=O;return q.objectLiteral(G)&&q.string(G.newText)&&d.is(G.range)}p.is=g})(te||(e.TextEdit=te={}));var ve;(function(p){function k(y,g,O){var G={label:y};return g!==void 0&&(G.needsConfirmation=g),O!==void 0&&(G.description=O),G}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.boolean(g.needsConfirmation)||g.needsConfirmation===void 0)&&(q.string(g.description)||g.description===void 0)}p.is=R})(ve||(e.ChangeAnnotation=ve={}));var Be;(function(p){function k(R){var y=R;return q.string(y)}p.is=k})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Je;(function(p){function k(O,G,be){return{range:O,newText:G,annotationId:be}}p.replace=k;function R(O,G,be){return{range:{start:O,end:O},newText:G,annotationId:be}}p.insert=R;function y(O,G){return{range:O,newText:"",annotationId:G}}p.del=y;function g(O){var G=O;return te.is(G)&&(ve.is(G.annotationId)||Be.is(G.annotationId))}p.is=g})(Je||(e.AnnotatedTextEdit=Je={}));var Dt;(function(p){function k(y,g){return{textDocument:y,edits:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&We.is(g.textDocument)&&Array.isArray(g.edits)}p.is=R})(Dt||(e.TextDocumentEdit=Dt={}));var Se;(function(p){function k(y,g,O){var G={kind:"create",uri:y};return g!==void 0&&(g.overwrite!==void 0||g.ignoreIfExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="create"&&q.string(g.uri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(Se||(e.CreateFile=Se={}));var X;(function(p){function k(y,g,O,G){var be={kind:"rename",oldUri:y,newUri:g};return O!==void 0&&(O.overwrite!==void 0||O.ignoreIfExists!==void 0)&&(be.options=O),G!==void 0&&(be.annotationId=G),be}p.create=k;function R(y){var g=y;return g&&g.kind==="rename"&&q.string(g.oldUri)&&q.string(g.newUri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(X||(e.RenameFile=X={}));var z;(function(p){function k(y,g,O){var G={kind:"delete",uri:y};return g!==void 0&&(g.recursive!==void 0||g.ignoreIfNotExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="delete"&&q.string(g.uri)&&(g.options===void 0||(g.options.recursive===void 0||q.boolean(g.options.recursive))&&(g.options.ignoreIfNotExists===void 0||q.boolean(g.options.ignoreIfNotExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var se;(function(p){function k(R){var y=R;return y&&(y.changes!==void 0||y.documentChanges!==void 0)&&(y.documentChanges===void 0||y.documentChanges.every(function(g){return q.string(g.kind)?Se.is(g)||X.is(g)||z.is(g):Dt.is(g)}))}p.is=k})(se||(e.WorkspaceEdit=se={}));var re=function(){function p(k,R){this.edits=k,this.changeAnnotations=R}return p.prototype.insert=function(k,R,y){var g,O;if(y===void 0?g=te.insert(k,R):Be.is(y)?(O=y,g=Je.insert(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.insert(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.replace=function(k,R,y){var g,O;if(y===void 0?g=te.replace(k,R):Be.is(y)?(O=y,g=Je.replace(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.replace(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.delete=function(k,R){var y,g;if(R===void 0?y=te.del(k):Be.is(R)?(g=R,y=Je.del(k,R)):(this.assertChangeAnnotations(this.changeAnnotations),g=this.changeAnnotations.manage(R),y=Je.del(k,g)),this.edits.push(y),g!==void 0)return g},p.prototype.add=function(k){this.edits.push(k)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(k){if(k===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),Re=function(){function p(k){this._annotations=k===void 0?Object.create(null):k,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(k,R){var y;if(Be.is(k)?y=k:(y=this.nextId(),R=k),this._annotations[y]!==void 0)throw new Error("Id ".concat(y," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(y));return this._annotations[y]=R,this._size++,y},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(k){var R=this;this._textEditChanges=Object.create(null),k!==void 0?(this._workspaceEdit=k,k.documentChanges?(this._changeAnnotations=new Re(k.changeAnnotations),k.changeAnnotations=this._changeAnnotations.all(),k.documentChanges.forEach(function(y){if(Dt.is(y)){var g=new re(y.edits,R._changeAnnotations);R._textEditChanges[y.textDocument.uri]=g}})):k.changes&&Object.keys(k.changes).forEach(function(y){var g=new re(k.changes[y]);R._textEditChanges[y]=g})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(k){if(We.is(k)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:k.uri,version:k.version},y=this._textEditChanges[R.uri];if(!y){var g=[],O={textDocument:R,edits:g};this._workspaceEdit.documentChanges.push(O),y=new re(g,this._changeAnnotations),this._textEditChanges[R.uri]=y}return y}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var y=this._textEditChanges[k];if(!y){var g=[];this._workspaceEdit.changes[k]=g,y=new re(g),this._textEditChanges[k]=y}return y}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Re,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=Se.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=Se.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p.prototype.renameFile=function(k,R,y,g){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var O;ve.is(y)||Be.is(y)?O=y:g=y;var G,be;if(O===void 0?G=X.create(k,R,g):(be=Be.is(O)?O:this._changeAnnotations.manage(O),G=X.create(k,R,g,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=z.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=z.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p}();e.WorkspaceChange=ge;var me;(function(p){function k(y){return{uri:y}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)}p.is=R})(me||(e.TextDocumentIdentifier=me={}));var St;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.integer(g.version)}p.is=R})(St||(e.VersionedTextDocumentIdentifier=St={}));var We;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&(g.version===null||q.integer(g.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function k(y,g,O,G){return{uri:y,languageId:g,version:O,text:G}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.string(g.languageId)&&q.integer(g.version)&&q.string(g.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function k(R){var y=R;return y===p.PlainText||y===p.Markdown}p.is=k})(bn||(e.MarkupKind=bn={}));var wr;(function(p){function k(R){var y=R;return q.objectLiteral(R)&&bn.is(y.kind)&&q.string(y.value)}p.is=k})(wr||(e.MarkupContent=wr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(e.CompletionItemKind=Vn={}));var lr;(function(p){p.PlainText=1,p.Snippet=2})(lr||(e.InsertTextFormat=lr={}));var Pi;(function(p){p.Deprecated=1})(Pi||(e.CompletionItemTag=Pi={}));var dr;(function(p){function k(y,g,O){return{newText:y,insert:g,replace:O}}p.create=k;function R(y){var g=y;return g&&q.string(g.newText)&&d.is(g.insert)&&d.is(g.replace)}p.is=R})(dr||(e.InsertReplaceEdit=dr={}));var fr;(function(p){p.asIs=1,p.adjustIndentation=2})(fr||(e.InsertTextMode=fr={}));var Ki;(function(p){function k(R){var y=R;return y&&(q.string(y.detail)||y.detail===void 0)&&(q.string(y.description)||y.description===void 0)}p.is=k})(Ki||(e.CompletionItemLabelDetails=Ki={}));var Sr;(function(p){function k(R){return{label:R}}p.create=k})(Sr||(e.CompletionItem=Sr={}));var xr;(function(p){function k(R,y){return{items:R||[],isIncomplete:!!y}}p.create=k})(xr||(e.CompletionList=xr={}));var Pr;(function(p){function k(y){return y.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=k;function R(y){var g=y;return q.string(g)||q.objectLiteral(g)&&q.string(g.language)&&q.string(g.value)}p.is=R})(Pr||(e.MarkedString=Pr={}));var mt;(function(p){function k(R){var y=R;return!!y&&q.objectLiteral(y)&&(wr.is(y.contents)||Pr.is(y.contents)||q.typedArray(y.contents,Pr.is))&&(R.range===void 0||d.is(R.range))}p.is=k})(mt||(e.Hover=mt={}));var hr;(function(p){function k(R,y){return y?{label:R,documentation:y}:{label:R}}p.create=k})(hr||(e.ParameterInformation=hr={}));var Ji;(function(p){function k(R,y){for(var g=[],O=2;O{sn();let Z,ie;if(_t.string(C)){Z=C;let Le=H[0],Ge=0,tt=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Ge=1,tt=Le);let Fe=H.length,Qe=Fe-Ge;switch(Qe){case 0:ie=void 0;break;case 1:ie=_n(tt,H[Ge]);break;default:if(tt===he.ParameterStructures.byName)throw new Error(`Received ${Qe} parameters for 'by Name' notification parameter structure.`);ie=H.slice(Ge,Fe).map(Ne=>jt(Ne));break}}else{let Le=H;Z=C.method,ie=kr(C,Le)}let Ue={jsonrpc:f,method:Z,params:ie};return Ji(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(C,H)=>{sn();let Z;return _t.func(C)?x=C:H&&(_t.string(C)?(Z=C,D.set(C,{type:void 0,handler:H})):(Z=C.method,D.set(C.method,{type:C,handler:H}))),{dispose:()=>{Z!==void 0?D.delete(Z):x=void 0}}},onProgress:(C,H,Z)=>{if(N.has(H))throw new Error(`Progress handler for token ${H} already registered`);return N.set(H,Z),{dispose:()=>{N.delete(H)}}},sendProgress:(C,H,Z)=>vn.sendNotification(Rs.type,{token:H,value:Z}),onUnhandledProgress:xe.event,sendRequest:(C,...H)=>{sn(),Xi();let Z,ie,Ue;if(_t.string(C)){Z=C;let Fe=H[0],Qe=H[H.length-1],Ne=0,at=he.ParameterStructures.auto;he.ParameterStructures.is(Fe)&&(Ne=1,at=Fe);let Ft=H.length;Jf.CancellationToken.is(Qe)&&(Ft=Ft-1,Ue=Qe);let Yt=Ft-Ne;switch(Yt){case 0:ie=void 0;break;case 1:ie=_n(at,H[Ne]);break;default:if(at===he.ParameterStructures.byName)throw new Error(`Received ${Yt} parameters for 'by Name' request parameter structure.`);ie=H.slice(Ne,Ft).map(Yi=>jt(Yi));break}}else{let Fe=H;Z=C.method,ie=kr(C,Fe);let Qe=C.numberOfParams;Ue=Jf.CancellationToken.is(Fe[Qe])?Fe[Qe]:void 0}let Le=c++,Ge;Ue&&(Ge=Ue.onCancellationRequested(()=>{let Fe=z.sender.sendCancellation(vn,Le);return Fe===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):Fe.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let tt={jsonrpc:f,id:Le,method:Z,params:ie};return hr(tt),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(tt),new Promise(async(Fe,Qe)=>{let Ne=Yt=>{Fe(Yt),z.sender.cleanup(Le),Ge?.dispose()},at=Yt=>{Qe(Yt),z.sender.cleanup(Le),Ge?.dispose()},Ft={method:Z,timerStart:Date.now(),resolve:Ne,reject:at};try{await e.write(tt),B.set(Le,Ft)}catch(Yt){throw s.error("Sending request failed."),Ft.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Yt.message?Yt.message:"Unknown reason")),Yt}})},onRequest:(C,H)=>{sn();let Z=null;return Zf.is(C)?(Z=void 0,m=C):_t.string(C)?(Z=null,H!==void 0&&(Z=C,v.set(C,{handler:H,type:void 0}))):H!==void 0&&(Z=C.method,v.set(C.method,{type:C,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?v.delete(Z):m=void 0)}}},hasPendingResponse:()=>B.size>0,trace:async(C,H,Z)=>{let ie=!1,Ue=Tn.Text;Z!==void 0&&(_t.boolean(Z)?ie=Z:(ie=Z.sendNotification||!1,Ue=Z.traceFormat||Tn.Text)),P=C,U=Ue,P===He.Off?te=void 0:te=H,ie&&!We()&&!je()&&await vn.sendNotification(eh.type,{value:He.toString(C)})},onError:Be.event,onClose:Je.event,onUnhandledNotification:Dt.event,onDispose:X.event,end:()=>{e.end()},dispose:()=>{if(je())return;ve=Zn.Disposed,X.fire(void 0);let C=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of B.values())H.reject(C);B=new Map,F=new Map,K=new Set,L=new C_.LinkedMap,_t.func(e.dispose)&&e.dispose(),_t.func(t.dispose)&&t.dispose()},listen:()=>{sn(),Cr(),ve=Zn.Listening,t.listen(fr)},inspect:()=>{(0,P_.default)().console.log("inspect")}};return vn.onNotification(Rc.type,C=>{if(P===He.Off||!te)return;let H=P===He.Verbose||P===He.Compact;te.log(C.message,H?C.verbose:void 0)}),vn.onNotification(Rs.type,C=>{let H=N.get(C.token);H?H(C.value):xe.fire(C)}),vn}Ce.createMessageConnection=RA});var Ac=I(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var rt=Rf();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return rt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return rt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return rt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return rt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return rt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return rt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return rt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return rt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return rt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return rt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return rt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return rt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return rt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return rt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return rt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return rt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return rt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return rt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return rt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return rt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return rt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return rt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return rt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return rt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return rt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return rt.ParameterStructures}});var rh=Ff();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return rh.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return rh.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return rh.Touch}});var DA=h_();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return DA.Disposable}});var D_=mo();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return D_.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return D_.Emitter}});var F_=xc();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return F_.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return F_.CancellationToken}});var E_=p_();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return E_.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return E_.SharedArrayReceiverStrategy}});var ih=b_();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return ih.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return ih.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return ih.ReadableStreamMessageReader}});var oh=S_();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return oh.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return oh.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return oh.WriteableStreamMessageWriter}});var FA=x_();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return FA.AbstractMessageBuffer}});var $t=R_();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return $t.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return $t.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return $t.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return $t.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return $t.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return $t.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return $t.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return $t.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return $t.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return $t.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return $t.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return $t.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return $t.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return $t.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return $t.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return $t.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return $t.MessageStrategy}});var EA=ii();j.RAL=EA.default});var A_=I(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var I_=require("util"),qr=Ac(),Nc=class t extends qr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new I_.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};Nc.emptyBuffer=Buffer.allocUnsafe(0);var sh=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),qr.Disposable.create(()=>this.stream.off("data",e))}},ah=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},M_=Object.freeze({messageBuffer:Object.freeze({create:t=>new Nc(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new I_.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new sh(t),asWritableStream:t=>new ah(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function ch(){return M_}(function(t){function e(){qr.RAL.install(M_)}t.install=e})(ch||(ch={}));uh.default=ch});var Ui=I(Oe=>{"use strict";var IA=Oe&&Oe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),MA=Oe&&Oe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&IA(e,t,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var wo=A_();wo.default.install();var N_=require("path"),AA=require("os"),NA=require("crypto"),Lc=require("net"),Rn=Ac();MA(Ac(),Oe);var lh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Rn.Disposable.create(()=>this.process.off("message",e))}};Oe.IPCMessageReader=lh;var dh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=dh;var fh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.onData=new Rn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};Oe.PortMessageReader=fh;var hh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.PortMessageWriter=hh;var Li=class extends Rn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,wo.default)().stream.asReadableStream(e),n)}};Oe.SocketMessageReader=Li;var Bi=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,wo.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Bi;var qc=class extends Rn.ReadableStreamMessageReader{constructor(e,n){super((0,wo.default)().stream.asReadableStream(e),n)}};Oe.StreamMessageReader=qc;var Oc=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,wo.default)().stream.asWritableStream(e),n)}};Oe.StreamMessageWriter=Oc;var q_=process.env.XDG_RUNTIME_DIR,qA=new Map([["linux",107],["darwin",103]]);function OA(){let t=(0,NA.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;q_?e=N_.join(q_,`vscode-ipc-${t}.sock`):e=N_.join(AA.tmpdir(),`vscode-${t}.sock`);let n=qA.get(process.platform);return n!==void 0&&e.length>n&&(0,wo.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}Oe.generateRandomPipeName=OA;function LA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Li(d,e),new Bi(d,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientPipeTransport=LA;function BA(t,e="utf-8"){let n=(0,Lc.createConnection)(t);return[new Li(n,e),new Bi(n,e)]}Oe.createServerPipeTransport=BA;function UA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Li(d,e),new Bi(d,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientSocketTransport=UA;function $A(t,e="utf-8"){let n=(0,Lc.createConnection)(t,"127.0.0.1");return[new Li(n,e),new Bi(n,e)]}Oe.createServerSocketTransport=$A;function WA(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function jA(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function zA(t,e,n,i){n||(n=Rn.NullLogger);let s=WA(t)?new qc(t):t,c=jA(e)?new Oc(e):e;return Rn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Rn.createMessageConnection)(s,c,n,i)}Oe.createMessageConnection=zA});var gh=I((x2,O_)=>{"use strict";O_.exports=Ui()});var Uc=I((L_,Bc)=>{"use strict";(function(t){if(typeof Bc=="object"&&typeof Bc.exports=="object"){var e=t(require,L_);e!==void 0&&(Bc.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function k(R){return typeof R=="string"}p.is=k})(n||(e.DocumentUri=n={}));var i;(function(p){function k(R){return typeof R=="string"}p.is=k})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(c||(e.uinteger=c={}));var u;(function(p){function k(y,g){return y===Number.MAX_VALUE&&(y=c.MAX_VALUE),g===Number.MAX_VALUE&&(g=c.MAX_VALUE),{line:y,character:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.line)&&q.uinteger(g.character)}p.is=R})(u||(e.Position=u={}));var d;(function(p){function k(y,g,O,G){if(q.uinteger(y)&&q.uinteger(g)&&q.uinteger(O)&&q.uinteger(G))return{start:u.create(y,g),end:u.create(O,G)};if(u.is(y)&&u.is(g))return{start:y,end:g};throw new Error("Range#create called with invalid arguments[".concat(y,", ").concat(g,", ").concat(O,", ").concat(G,"]"))}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&u.is(g.start)&&u.is(g.end)}p.is=R})(d||(e.Range=d={}));var f;(function(p){function k(y,g){return{uri:y,range:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&(q.string(g.uri)||q.undefined(g.uri))}p.is=R})(f||(e.Location=f={}));var m;(function(p){function k(y,g,O,G){return{targetUri:y,targetRange:g,targetSelectionRange:O,originSelectionRange:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.targetRange)&&q.string(g.targetUri)&&d.is(g.targetSelectionRange)&&(d.is(g.originSelectionRange)||q.undefined(g.originSelectionRange))}p.is=R})(m||(e.LocationLink=m={}));var v;(function(p){function k(y,g,O,G){return{red:y,green:g,blue:O,alpha:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.numberRange(g.red,0,1)&&q.numberRange(g.green,0,1)&&q.numberRange(g.blue,0,1)&&q.numberRange(g.alpha,0,1)}p.is=R})(v||(e.Color=v={}));var x;(function(p){function k(y,g){return{range:y,color:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&v.is(g.color)}p.is=R})(x||(e.ColorInformation=x={}));var D;(function(p){function k(y,g,O){return{label:y,textEdit:g,additionalTextEdits:O}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.undefined(g.textEdit)||te.is(g))&&(q.undefined(g.additionalTextEdits)||q.typedArray(g.additionalTextEdits,te.is))}p.is=R})(D||(e.ColorPresentation=D={}));var N;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(N||(e.FoldingRangeKind=N={}));var A;(function(p){function k(y,g,O,G,be,ft){var Xe={startLine:y,endLine:g};return q.defined(O)&&(Xe.startCharacter=O),q.defined(G)&&(Xe.endCharacter=G),q.defined(be)&&(Xe.kind=be),q.defined(ft)&&(Xe.collapsedText=ft),Xe}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.startLine)&&q.uinteger(g.startLine)&&(q.undefined(g.startCharacter)||q.uinteger(g.startCharacter))&&(q.undefined(g.endCharacter)||q.uinteger(g.endCharacter))&&(q.undefined(g.kind)||q.string(g.kind))}p.is=R})(A||(e.FoldingRange=A={}));var L;(function(p){function k(y,g){return{location:y,message:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&f.is(g.location)&&q.string(g.message)}p.is=R})(L||(e.DiagnosticRelatedInformation=L={}));var B;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(B||(e.DiagnosticSeverity=B={}));var K;(function(p){p.Unnecessary=1,p.Deprecated=2})(K||(e.DiagnosticTag=K={}));var F;(function(p){function k(R){var y=R;return q.objectLiteral(y)&&q.string(y.href)}p.is=k})(F||(e.CodeDescription=F={}));var P;(function(p){function k(y,g,O,G,be,ft){var Xe={range:y,message:g};return q.defined(O)&&(Xe.severity=O),q.defined(G)&&(Xe.code=G),q.defined(be)&&(Xe.source=be),q.defined(ft)&&(Xe.relatedInformation=ft),Xe}p.create=k;function R(y){var g,O=y;return q.defined(O)&&d.is(O.range)&&q.string(O.message)&&(q.number(O.severity)||q.undefined(O.severity))&&(q.integer(O.code)||q.string(O.code)||q.undefined(O.code))&&(q.undefined(O.codeDescription)||q.string((g=O.codeDescription)===null||g===void 0?void 0:g.href))&&(q.string(O.source)||q.undefined(O.source))&&(q.undefined(O.relatedInformation)||q.typedArray(O.relatedInformation,L.is))}p.is=R})(P||(e.Diagnostic=P={}));var U;(function(p){function k(y,g){for(var O=[],G=2;G0&&(be.arguments=O),be}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.title)&&q.string(g.command)}p.is=R})(U||(e.Command=U={}));var te;(function(p){function k(O,G){return{range:O,newText:G}}p.replace=k;function R(O,G){return{range:{start:O,end:O},newText:G}}p.insert=R;function y(O){return{range:O,newText:""}}p.del=y;function g(O){var G=O;return q.objectLiteral(G)&&q.string(G.newText)&&d.is(G.range)}p.is=g})(te||(e.TextEdit=te={}));var ve;(function(p){function k(y,g,O){var G={label:y};return g!==void 0&&(G.needsConfirmation=g),O!==void 0&&(G.description=O),G}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.boolean(g.needsConfirmation)||g.needsConfirmation===void 0)&&(q.string(g.description)||g.description===void 0)}p.is=R})(ve||(e.ChangeAnnotation=ve={}));var Be;(function(p){function k(R){var y=R;return q.string(y)}p.is=k})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Je;(function(p){function k(O,G,be){return{range:O,newText:G,annotationId:be}}p.replace=k;function R(O,G,be){return{range:{start:O,end:O},newText:G,annotationId:be}}p.insert=R;function y(O,G){return{range:O,newText:"",annotationId:G}}p.del=y;function g(O){var G=O;return te.is(G)&&(ve.is(G.annotationId)||Be.is(G.annotationId))}p.is=g})(Je||(e.AnnotatedTextEdit=Je={}));var Dt;(function(p){function k(y,g){return{textDocument:y,edits:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&We.is(g.textDocument)&&Array.isArray(g.edits)}p.is=R})(Dt||(e.TextDocumentEdit=Dt={}));var xe;(function(p){function k(y,g,O){var G={kind:"create",uri:y};return g!==void 0&&(g.overwrite!==void 0||g.ignoreIfExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="create"&&q.string(g.uri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(xe||(e.CreateFile=xe={}));var X;(function(p){function k(y,g,O,G){var be={kind:"rename",oldUri:y,newUri:g};return O!==void 0&&(O.overwrite!==void 0||O.ignoreIfExists!==void 0)&&(be.options=O),G!==void 0&&(be.annotationId=G),be}p.create=k;function R(y){var g=y;return g&&g.kind==="rename"&&q.string(g.oldUri)&&q.string(g.newUri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(X||(e.RenameFile=X={}));var z;(function(p){function k(y,g,O){var G={kind:"delete",uri:y};return g!==void 0&&(g.recursive!==void 0||g.ignoreIfNotExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="delete"&&q.string(g.uri)&&(g.options===void 0||(g.options.recursive===void 0||q.boolean(g.options.recursive))&&(g.options.ignoreIfNotExists===void 0||q.boolean(g.options.ignoreIfNotExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var se;(function(p){function k(R){var y=R;return y&&(y.changes!==void 0||y.documentChanges!==void 0)&&(y.documentChanges===void 0||y.documentChanges.every(function(g){return q.string(g.kind)?xe.is(g)||X.is(g)||z.is(g):Dt.is(g)}))}p.is=k})(se||(e.WorkspaceEdit=se={}));var re=function(){function p(k,R){this.edits=k,this.changeAnnotations=R}return p.prototype.insert=function(k,R,y){var g,O;if(y===void 0?g=te.insert(k,R):Be.is(y)?(O=y,g=Je.insert(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.insert(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.replace=function(k,R,y){var g,O;if(y===void 0?g=te.replace(k,R):Be.is(y)?(O=y,g=Je.replace(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.replace(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.delete=function(k,R){var y,g;if(R===void 0?y=te.del(k):Be.is(R)?(g=R,y=Je.del(k,R)):(this.assertChangeAnnotations(this.changeAnnotations),g=this.changeAnnotations.manage(R),y=Je.del(k,g)),this.edits.push(y),g!==void 0)return g},p.prototype.add=function(k){this.edits.push(k)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(k){if(k===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),De=function(){function p(k){this._annotations=k===void 0?Object.create(null):k,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(k,R){var y;if(Be.is(k)?y=k:(y=this.nextId(),R=k),this._annotations[y]!==void 0)throw new Error("Id ".concat(y," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(y));return this._annotations[y]=R,this._size++,y},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),pe=function(){function p(k){var R=this;this._textEditChanges=Object.create(null),k!==void 0?(this._workspaceEdit=k,k.documentChanges?(this._changeAnnotations=new De(k.changeAnnotations),k.changeAnnotations=this._changeAnnotations.all(),k.documentChanges.forEach(function(y){if(Dt.is(y)){var g=new re(y.edits,R._changeAnnotations);R._textEditChanges[y.textDocument.uri]=g}})):k.changes&&Object.keys(k.changes).forEach(function(y){var g=new re(k.changes[y]);R._textEditChanges[y]=g})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(k){if(We.is(k)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:k.uri,version:k.version},y=this._textEditChanges[R.uri];if(!y){var g=[],O={textDocument:R,edits:g};this._workspaceEdit.documentChanges.push(O),y=new re(g,this._changeAnnotations),this._textEditChanges[R.uri]=y}return y}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var y=this._textEditChanges[k];if(!y){var g=[];this._workspaceEdit.changes[k]=g,y=new re(g),this._textEditChanges[k]=y}return y}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new De,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=xe.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=xe.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p.prototype.renameFile=function(k,R,y,g){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var O;ve.is(y)||Be.is(y)?O=y:g=y;var G,be;if(O===void 0?G=X.create(k,R,g):(be=Be.is(O)?O:this._changeAnnotations.manage(O),G=X.create(k,R,g,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=z.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=z.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p}();e.WorkspaceChange=pe;var me;(function(p){function k(y){return{uri:y}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)}p.is=R})(me||(e.TextDocumentIdentifier=me={}));var St;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.integer(g.version)}p.is=R})(St||(e.VersionedTextDocumentIdentifier=St={}));var We;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&(g.version===null||q.integer(g.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function k(y,g,O,G){return{uri:y,languageId:g,version:O,text:G}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.string(g.languageId)&&q.integer(g.version)&&q.string(g.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function k(R){var y=R;return y===p.PlainText||y===p.Markdown}p.is=k})(bn||(e.MarkupKind=bn={}));var wr;(function(p){function k(R){var y=R;return q.objectLiteral(R)&&bn.is(y.kind)&&q.string(y.value)}p.is=k})(wr||(e.MarkupContent=wr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(e.CompletionItemKind=Vn={}));var lr;(function(p){p.PlainText=1,p.Snippet=2})(lr||(e.InsertTextFormat=lr={}));var Pi;(function(p){p.Deprecated=1})(Pi||(e.CompletionItemTag=Pi={}));var dr;(function(p){function k(y,g,O){return{newText:y,insert:g,replace:O}}p.create=k;function R(y){var g=y;return g&&q.string(g.newText)&&d.is(g.insert)&&d.is(g.replace)}p.is=R})(dr||(e.InsertReplaceEdit=dr={}));var fr;(function(p){p.asIs=1,p.adjustIndentation=2})(fr||(e.InsertTextMode=fr={}));var Ki;(function(p){function k(R){var y=R;return y&&(q.string(y.detail)||y.detail===void 0)&&(q.string(y.description)||y.description===void 0)}p.is=k})(Ki||(e.CompletionItemLabelDetails=Ki={}));var Sr;(function(p){function k(R){return{label:R}}p.create=k})(Sr||(e.CompletionItem=Sr={}));var xr;(function(p){function k(R,y){return{items:R||[],isIncomplete:!!y}}p.create=k})(xr||(e.CompletionList=xr={}));var Pr;(function(p){function k(y){return y.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=k;function R(y){var g=y;return q.string(g)||q.objectLiteral(g)&&q.string(g.language)&&q.string(g.value)}p.is=R})(Pr||(e.MarkedString=Pr={}));var mt;(function(p){function k(R){var y=R;return!!y&&q.objectLiteral(y)&&(wr.is(y.contents)||Pr.is(y.contents)||q.typedArray(y.contents,Pr.is))&&(R.range===void 0||d.is(R.range))}p.is=k})(mt||(e.Hover=mt={}));var hr;(function(p){function k(R,y){return y?{label:R,documentation:y}:{label:R}}p.create=k})(hr||(e.ParameterInformation=hr={}));var Ji;(function(p){function k(R,y){for(var g=[],O=2;O=0;an--){var yn=ft[an],Qn=O.offsetAt(yn.range.start),Ie=O.offsetAt(yn.range.end);if(Ie<=Xe)be=be.substring(0,Qn)+yn.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Xe=Qn}return be}p.applyEdits=y;function g(O,G){if(O.length<=1)return O;var be=O.length/2|0,ft=O.slice(0,be),Xe=O.slice(be);g(ft,G),g(Xe,G);for(var an=0,yn=0,Qn=0;an0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),y=0,g=R.length;if(g===0)return u.create(0,k);for(;yk?g=O:y=O+1}var G=y-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var y=R[k.line],g=k.line+1"u"}p.undefined=y;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Vr,Zi){return k.call(Ie)==="[object Number]"&&Vr<=Ie&&Ie<=Zi}p.numberRange=be;function ft(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ft;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Vr){return Array.isArray(Ie)&&Ie.every(Vr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var So=Ui(),L_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(L_||(hn.MessageDirection=L_={}));var ph=class{constructor(e){this.method=e}};hn.RegistrationType=ph;var mh=class extends So.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=mh;var bh=class extends So.RequestType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolRequestType=bh;var _h=class extends So.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=_h;var vh=class extends So.NotificationType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolNotificationType=vh});var $c=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function HA(t){return t===!0||t===!1}It.boolean=HA;function B_(t){return typeof t=="string"||t instanceof String}It.string=B_;function VA(t){return typeof t=="number"||t instanceof Number}It.number=VA;function GA(t){return t instanceof Error}It.error=GA;function QA(t){return typeof t=="function"}It.func=QA;function U_(t){return Array.isArray(t)}It.array=U_;function KA(t){return U_(t)&&t.every(e=>B_(e))}It.stringArray=KA;function JA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=JA;function XA(t){return t!==null&&typeof t=="object"}It.objectLiteral=XA});var j_=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ImplementationRequest=void 0;var $_=pt(),W_;(function(t){t.method="textDocument/implementation",t.messageDirection=$_.MessageDirection.clientToServer,t.type=new $_.ProtocolRequestType(t.method)})(W_||(Wc.ImplementationRequest=W_={}))});var V_=I(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.TypeDefinitionRequest=void 0;var z_=pt(),H_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=z_.MessageDirection.clientToServer,t.type=new z_.ProtocolRequestType(t.method)})(H_||(jc.TypeDefinitionRequest=H_={}))});var K_=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.DidChangeWorkspaceFoldersNotification=xo.WorkspaceFoldersRequest=void 0;var zc=pt(),G_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(G_||(xo.WorkspaceFoldersRequest=G_={}));var Q_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolNotificationType(t.method)})(Q_||(xo.DidChangeWorkspaceFoldersNotification=Q_={}))});var Y_=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.ConfigurationRequest=void 0;var J_=pt(),X_;(function(t){t.method="workspace/configuration",t.messageDirection=J_.MessageDirection.serverToClient,t.type=new J_.ProtocolRequestType(t.method)})(X_||(Hc.ConfigurationRequest=X_={}))});var tv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.ColorPresentationRequest=Po.DocumentColorRequest=void 0;var Vc=pt(),Z_;(function(t){t.method="textDocument/documentColor",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(Z_||(Po.DocumentColorRequest=Z_={}));var ev;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(ev||(Po.ColorPresentationRequest=ev={}))});var iv=I(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.FoldingRangeRefreshRequest=Co.FoldingRangeRequest=void 0;var Gc=pt(),nv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolRequestType(t.method)})(nv||(Co.FoldingRangeRequest=nv={}));var rv;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType0(t.method)})(rv||(Co.FoldingRangeRefreshRequest=rv={}))});var av=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DeclarationRequest=void 0;var ov=pt(),sv;(function(t){t.method="textDocument/declaration",t.messageDirection=ov.MessageDirection.clientToServer,t.type=new ov.ProtocolRequestType(t.method)})(sv||(Qc.DeclarationRequest=sv={}))});var lv=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.SelectionRangeRequest=void 0;var cv=pt(),uv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=cv.MessageDirection.clientToServer,t.type=new cv.ProtocolRequestType(t.method)})(uv||(Kc.SelectionRangeRequest=uv={}))});var gv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.WorkDoneProgressCancelNotification=ai.WorkDoneProgressCreateRequest=ai.WorkDoneProgress=void 0;var YA=Ui(),Jc=pt(),dv;(function(t){t.type=new YA.ProgressType;function e(n){return n===t.type}t.is=e})(dv||(ai.WorkDoneProgress=dv={}));var fv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType(t.method)})(fv||(ai.WorkDoneProgressCreateRequest=fv={}));var hv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolNotificationType(t.method)})(hv||(ai.WorkDoneProgressCancelNotification=hv={}))});var _v=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.CallHierarchyOutgoingCallsRequest=ci.CallHierarchyIncomingCallsRequest=ci.CallHierarchyPrepareRequest=void 0;var ko=pt(),pv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(pv||(ci.CallHierarchyPrepareRequest=pv={}));var mv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(mv||(ci.CallHierarchyIncomingCallsRequest=mv={}));var bv;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(bv||(ci.CallHierarchyOutgoingCallsRequest=bv={}))});var Pv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Or=pt(),vv;(function(t){t.Relative="relative"})(vv||(gn.TokenFormat=vv={}));var Is;(function(t){t.method="textDocument/semanticTokens",t.type=new Or.RegistrationType(t.method)})(Is||(gn.SemanticTokensRegistrationType=Is={}));var yv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(yv||(gn.SemanticTokensRequest=yv={}));var wv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(wv||(gn.SemanticTokensDeltaRequest=wv={}));var Sv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(Sv||(gn.SemanticTokensRangeRequest=Sv={}));var xv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=Or.MessageDirection.serverToClient,t.type=new Or.ProtocolRequestType0(t.method)})(xv||(gn.SemanticTokensRefreshRequest=xv={}))});var Tv=I(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.ShowDocumentRequest=void 0;var Cv=pt(),kv;(function(t){t.method="window/showDocument",t.messageDirection=Cv.MessageDirection.serverToClient,t.type=new Cv.ProtocolRequestType(t.method)})(kv||(Xc.ShowDocumentRequest=kv={}))});var Fv=I(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.LinkedEditingRangeRequest=void 0;var Rv=pt(),Dv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Rv.MessageDirection.clientToServer,t.type=new Rv.ProtocolRequestType(t.method)})(Dv||(Yc.LinkedEditingRangeRequest=Dv={}))});var Lv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Ev;(function(t){t.file="file",t.folder="folder"})(Ev||(Qt.FileOperationPatternKind=Ev={}));var Iv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Iv||(Qt.WillCreateFilesRequest=Iv={}));var Mv;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Mv||(Qt.DidCreateFilesNotification=Mv={}));var Av;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Av||(Qt.WillRenameFilesRequest=Av={}));var Nv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Nv||(Qt.DidRenameFilesNotification=Nv={}));var qv;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(qv||(Qt.DidDeleteFilesNotification=qv={}));var Ov;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Ov||(Qt.WillDeleteFilesRequest=Ov={}))});var jv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.MonikerRequest=ui.MonikerKind=ui.UniquenessLevel=void 0;var Bv=pt(),Uv;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(Uv||(ui.UniquenessLevel=Uv={}));var $v;(function(t){t.$import="import",t.$export="export",t.local="local"})($v||(ui.MonikerKind=$v={}));var Wv;(function(t){t.method="textDocument/moniker",t.messageDirection=Bv.MessageDirection.clientToServer,t.type=new Bv.ProtocolRequestType(t.method)})(Wv||(ui.MonikerRequest=Wv={}))});var Gv=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.TypeHierarchySubtypesRequest=li.TypeHierarchySupertypesRequest=li.TypeHierarchyPrepareRequest=void 0;var To=pt(),zv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(zv||(li.TypeHierarchyPrepareRequest=zv={}));var Hv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Hv||(li.TypeHierarchySupertypesRequest=Hv={}));var Vv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Vv||(li.TypeHierarchySubtypesRequest=Vv={}))});var Jv=I(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.InlineValueRefreshRequest=Ro.InlineValueRequest=void 0;var Zc=pt(),Qv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Zc.MessageDirection.clientToServer,t.type=new Zc.ProtocolRequestType(t.method)})(Qv||(Ro.InlineValueRequest=Qv={}));var Kv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Zc.MessageDirection.serverToClient,t.type=new Zc.ProtocolRequestType0(t.method)})(Kv||(Ro.InlineValueRefreshRequest=Kv={}))});var ey=I(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.InlayHintRefreshRequest=di.InlayHintResolveRequest=di.InlayHintRequest=void 0;var Do=pt(),Xv;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Xv||(di.InlayHintRequest=Xv={}));var Yv;(function(t){t.method="inlayHint/resolve",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Yv||(di.InlayHintResolveRequest=Yv={}));var Zv;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(Zv||(di.InlayHintRefreshRequest=Zv={}))});var ay=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var sy=Ui(),ZA=$c(),Fo=pt(),ty;(function(t){function e(n){let i=n;return i&&ZA.boolean(i.retriggerRequest)}t.is=e})(ty||(Un.DiagnosticServerCancellationData=ty={}));var ny;(function(t){t.Full="full",t.Unchanged="unchanged"})(ny||(Un.DocumentDiagnosticReportKind=ny={}));var ry;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(ry||(Un.DocumentDiagnosticRequest=ry={}));var iy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new sy.ProgressType})(iy||(Un.WorkspaceDiagnosticRequest=iy={}));var oy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Fo.MessageDirection.serverToClient,t.type=new Fo.ProtocolRequestType0(t.method)})(oy||(Un.DiagnosticRefreshRequest=oy={}))});var gy=I(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.DidCloseNotebookDocumentNotification=wt.DidSaveNotebookDocumentNotification=wt.DidChangeNotebookDocumentNotification=wt.NotebookCellArrayChange=wt.DidOpenNotebookDocumentNotification=wt.NotebookDocumentSyncRegistrationType=wt.NotebookDocument=wt.NotebookCell=wt.ExecutionSummary=wt.NotebookCellKind=void 0;var Ms=Uc(),er=$c(),_r=pt(),yh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(yh||(wt.NotebookCellKind=yh={}));var wh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Ms.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(wh||(wt.ExecutionSummary=wh={}));var eu;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&yh.is(u.kind)&&Ms.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.InlineCompletionRequest=void 0;var py=pt(),my;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=py.MessageDirection.clientToServer,t.type=new py.ProtocolRequestType(t.method)})(my||(tu.InlineCompletionRequest=my={}))});var Fw=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),_y=Uc(),Lt=$c(),eN=j_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return eN.ImplementationRequest}});var tN=V_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return tN.TypeDefinitionRequest}});var kw=K_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return kw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return kw.DidChangeWorkspaceFoldersNotification}});var nN=Y_();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return nN.ConfigurationRequest}});var Tw=tv();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Tw.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Tw.ColorPresentationRequest}});var Rw=iv();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Rw.FoldingRangeRefreshRequest}});var rN=av();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return rN.DeclarationRequest}});var iN=lv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return iN.SelectionRangeRequest}});var kh=gv();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return kh.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return kh.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return kh.WorkDoneProgressCancelNotification}});var Th=_v();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var Io=Pv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Io.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Io.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Io.SemanticTokensRegistrationType}});var oN=Tv();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return oN.ShowDocumentRequest}});var sN=Fv();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return sN.LinkedEditingRangeRequest}});var $i=Lv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return $i.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return $i.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return $i.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return $i.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return $i.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return $i.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return $i.WillDeleteFilesRequest}});var Rh=jv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Rh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Rh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Rh.MonikerRequest}});var Dh=Gv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySupertypesRequest}});var Dw=Jv();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Dw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Dw.InlineValueRefreshRequest}});var Fh=ey();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Fh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Fh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Fh.InlayHintRefreshRequest}});var As=ay();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return As.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return As.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return As.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return As.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return As.DiagnosticRefreshRequest}});var vr=gy();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return vr.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return vr.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return vr.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return vr.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return vr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return vr.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidCloseNotebookDocumentNotification}});var aN=by();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return aN.InlineCompletionRequest}});var Sh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(Sh||(w.TextDocumentFilter=Sh={}));var xh;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(xh||(w.NotebookDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||xh.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ph||(w.NotebookCellTextDocumentFilter=Ph={}));var Ch;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!Sh.is(i)&&!Ph.is(i))return!1;return!0}t.is=e})(Ch||(w.DocumentSelector=Ch={}));var vy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(vy||(w.RegistrationRequest=vy={}));var yy;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(yy||(w.UnregistrationRequest=yy={}));var wy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(wy||(w.ResourceOperationKind=wy={}));var Sy;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(Sy||(w.FailureHandlingKind=Sy={}));var xy;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(xy||(w.PositionEncodingKind=xy={}));var Py;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Py||(w.StaticRegistrationOptions=Py={}));var Cy;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Ch.is(i.documentSelector))}t.is=e})(Cy||(w.TextDocumentRegistrationOptions=Cy={}));var ky;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(ky||(w.WorkDoneProgressOptions=ky={}));var Ty;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ty||(w.InitializeRequest=Ty={}));var Ry;(function(t){t.unknownProtocolVersion=1})(Ry||(w.InitializeErrorCodes=Ry={}));var Dy;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Dy||(w.InitializedNotification=Dy={}));var Fy;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Fy||(w.ShutdownRequest=Fy={}));var Ey;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Ey||(w.ExitNotification=Ey={}));var Iy;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Iy||(w.DidChangeConfigurationNotification=Iy={}));var My;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(My||(w.MessageType=My={}));var Ay;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ay||(w.ShowMessageNotification=Ay={}));var Ny;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Ny||(w.ShowMessageRequest=Ny={}));var qy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(qy||(w.LogMessageNotification=qy={}));var Oy;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Oy||(w.TelemetryEventNotification=Oy={}));var Ly;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Ly||(w.TextDocumentSyncKind=Ly={}));var By;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(By||(w.DidOpenTextDocumentNotification=By={}));var Uy;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(Uy||(w.TextDocumentContentChangeEvent=Uy={}));var $y;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})($y||(w.DidChangeTextDocumentNotification=$y={}));var Wy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Wy||(w.DidCloseTextDocumentNotification=Wy={}));var jy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidSaveTextDocumentNotification=jy={}));var zy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(zy||(w.TextDocumentSaveReason=zy={}));var Hy;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Hy||(w.WillSaveTextDocumentNotification=Hy={}));var Vy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Vy||(w.WillSaveTextDocumentWaitUntilRequest=Vy={}));var Gy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Gy||(w.DidChangeWatchedFilesNotification=Gy={}));var Qy;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Qy||(w.FileChangeType=Qy={}));var Ky;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(_y.URI.is(i.baseUri)||_y.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Ky||(w.RelativePattern=Ky={}));var Jy;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Jy||(w.WatchKind=Jy={}));var Xy;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Xy||(w.PublishDiagnosticsNotification=Xy={}));var Yy;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Yy||(w.CompletionTriggerKind=Yy={}));var Zy;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Zy||(w.CompletionRequest=Zy={}));var ew;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ew||(w.CompletionResolveRequest=ew={}));var tw;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(tw||(w.HoverRequest=tw={}));var nw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(nw||(w.SignatureHelpTriggerKind=nw={}));var rw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(rw||(w.SignatureHelpRequest=rw={}));var iw;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.DefinitionRequest=iw={}));var ow;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.ReferencesRequest=ow={}));var sw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(sw||(w.DocumentHighlightRequest=sw={}));var aw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.DocumentSymbolRequest=aw={}));var cw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.CodeActionRequest=cw={}));var uw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.CodeActionResolveRequest=uw={}));var lw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.WorkspaceSymbolRequest=lw={}));var dw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.WorkspaceSymbolResolveRequest=dw={}));var fw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.CodeLensRequest=fw={}));var hw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeLensResolveRequest=hw={}));var gw;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(gw||(w.CodeLensRefreshRequest=gw={}));var pw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(pw||(w.DocumentLinkRequest=pw={}));var mw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.DocumentLinkResolveRequest=mw={}));var bw;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.DocumentFormattingRequest=bw={}));var _w;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(_w||(w.DocumentRangeFormattingRequest=_w={}));var vw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentRangesFormattingRequest=vw={}));var yw;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentOnTypeFormattingRequest=yw={}));var ww;(function(t){t.Identifier=1})(ww||(w.PrepareSupportDefaultBehavior=ww={}));var Sw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Sw||(w.RenameRequest=Sw={}));var xw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.PrepareRenameRequest=xw={}));var Pw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.ExecuteCommandRequest=Pw={}));var Cw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(Cw||(w.ApplyWorkspaceEditRequest=Cw={}))});var Iw=I(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.createProtocolConnection=void 0;var Ew=Ui();function cN(t,e,n,i){return Ew.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Ew.createMessageConnection)(t,e,n,i)}nu.createProtocolConnection=cN});var Aw=I(pn=>{"use strict";var uN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),ru=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&uN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;ru(Ui(),pn);ru(Uc(),pn);ru(pt(),pn);ru(Fw(),pn);var lN=Iw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return lN.createProtocolConnection}});var Mw;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Mw||(pn.LSPErrorCodes=Mw={}))});var kt=I(yr=>{"use strict";var dN=yr&&yr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Nw=yr&&yr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&dN(e,t,n)};Object.defineProperty(yr,"__esModule",{value:!0});yr.createProtocolConnection=void 0;var fN=gh();Nw(gh(),yr);Nw(Aw(),yr);function hN(t,e,n,i){return(0,fN.createMessageConnection)(t,e,n,i)}yr.createProtocolConnection=hN});var Eh=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var Ns=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},qs=class t extends Ns{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};qs._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];qs._timeHighBits=["8","9","a","b"];$n.empty=new Ns("00000000-0000-0000-0000-000000000000");function qw(){return new qs}$n.v4=qw;var gN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ow(t){return gN.test(t)}$n.isUUID=Ow;function pN(t){if(!Ow(t))throw new Error("invalid uuid");return new Ns(t)}$n.parse=pN;function mN(){return qw().asHex()}$n.generateUuid=mN});var Lw=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.attachPartialResult=hi.ProgressFeature=hi.attachWorkDone=void 0;var fi=kt(),bN=Eh(),Wi=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,{kind:"end"})}};Wi.Instances=new Map;var iu=class extends Wi{constructor(e,n){super(e,n),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Os=class{constructor(){}begin(){}report(){}done(){}},ou=class extends Os{constructor(){super(),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function _N(t,e){if(e===void 0||e.workDoneToken===void 0)return new Os;let n=e.workDoneToken;return delete e.workDoneToken,new Wi(t,n)}hi.attachWorkDone=_N;var vN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(fi.WorkDoneProgressCancelNotification.type,n=>{let i=Wi.Instances.get(n.token);(i instanceof iu||i instanceof ou)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new Os:new Wi(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,bN.generateUuid)();return this.connection.sendRequest(fi.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new iu(this.connection,e))}else return Promise.resolve(new ou)}};hi.ProgressFeature=vN;var Ih;(function(t){t.type=new fi.ProgressType})(Ih||(Ih={}));var Mh=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Ih.type,this._token,e)}};function yN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Mh(t,n)}hi.attachPartialResult=yN});var Bw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.ConfigurationFeature=void 0;var wN=kt(),SN=bc(),xN=t=>class extends t{getConfiguration(e){return e?SN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(wN.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};su.ConfigurationFeature=xN});var Uw=I(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.WorkspaceFoldersFeature=void 0;var au=kt(),PN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new au.Emitter,this.connection.onNotification(au.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(au.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(au.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};cu.WorkspaceFoldersFeature=PN});var $w=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.CallHierarchyFeature=void 0;var Ah=kt(),CN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Ah.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Ah.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Ah.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};uu.CallHierarchyFeature=CN});var qh=I(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.SemanticTokensBuilder=gi.SemanticTokensDiff=gi.SemanticTokensFeature=void 0;var lu=kt(),kN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(lu.SemanticTokensRefreshRequest.type),on:e=>{let n=lu.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=lu.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=lu.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gi.SemanticTokensFeature=kN;var du=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new du(this._prevData,this._data).computeDiff()}:this.build()}};gi.SemanticTokensBuilder=Nh});var Ww=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.ShowDocumentFeature=void 0;var TN=kt(),RN=t=>class extends t{showDocument(e){return this.connection.sendRequest(TN.ShowDocumentRequest.type,e)}};fu.ShowDocumentFeature=RN});var jw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.FileOperationsFeature=void 0;var Mo=kt(),DN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Mo.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Mo.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Mo.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Mo.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Mo.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Mo.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};hu.FileOperationsFeature=DN});var zw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.LinkedEditingRangeFeature=void 0;var FN=kt(),EN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(FN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};gu.LinkedEditingRangeFeature=EN});var Hw=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.TypeHierarchyFeature=void 0;var Oh=kt(),IN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};pu.TypeHierarchyFeature=IN});var Gw=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.InlineValueFeature=void 0;var Vw=kt(),MN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Vw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Vw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};mu.InlineValueFeature=MN});var Kw=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.FoldingRangeFeature=void 0;var Qw=kt(),AN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Qw.FoldingRangeRefreshRequest.type),on:e=>{let n=Qw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};bu.FoldingRangeFeature=AN});var Jw=I(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.InlayHintFeature=void 0;var Lh=kt(),NN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Lh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Lh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Lh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};_u.InlayHintFeature=NN});var Xw=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.DiagnosticFeature=void 0;var Ls=kt(),qN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Ls.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Ls.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Ls.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.WorkspaceDiagnosticRequest.partialResult,n)))}}};vu.DiagnosticFeature=qN});var Uh=I(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.TextDocuments=void 0;var ji=kt(),Bh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new ji.Emitter,this._onDidOpen=new ji.Emitter,this._onDidClose=new ji.Emitter,this._onDidSave=new ji.Emitter,this._onWillSave=new ji.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=ji.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),ji.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};yu.TextDocuments=Bh});var Wh=I(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.NotebookDocuments=Ao.NotebookSyncFeature=void 0;var Wn=kt(),Yw=Uh(),ON=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Ao.NotebookSyncFeature=ON;var wu=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};wu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $h=class{constructor(e){e instanceof Yw.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new Yw.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new wu,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],v=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),v.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of v)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Ao.NotebookDocuments=$h});var Zw=I(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.MonikerFeature=void 0;var LN=kt(),BN=t=>class extends t{get moniker(){return{on:e=>{let n=LN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Su.MonikerFeature=BN});var Qh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=bc(),zh=Eh(),we=Lw(),UN=Bw(),$N=Uw(),WN=$w(),jN=qh(),zN=Ww(),HN=jw(),VN=zw(),GN=Hw(),QN=Gw(),KN=Kw(),JN=Jw(),XN=Xw(),YN=Wh(),ZN=Zw();function jh(t){if(t!==null)return t}var Hh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Hh;var xu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Vh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}},eS=(0,zN.ShowDocumentFeature)((0,we.ProgressFeature)(Vh)),tS;(function(t){function e(){return new Pu}t.create=e})(tS||($e.BulkRegistration=tS={}));var Pu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=zh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},nS;(function(t){function e(){return new Bs(void 0,[])}t.create=e})(nS||($e.BulkUnregistration=nS={}));var Bs=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Cu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof Pu?this.registerMany(e):e instanceof Bs?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=zh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=zh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Bs(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},rS=(0,HN.FileOperationsFeature)((0,$N.WorkspaceFoldersFeature)((0,UN.ConfigurationFeature)(Gh))),ku=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Tu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Ru=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Ru;var iS=(0,KN.FoldingRangeFeature)((0,ZN.MonikerFeature)((0,XN.DiagnosticFeature)((0,JN.InlayHintFeature)((0,QN.InlineValueFeature)((0,GN.TypeHierarchyFeature)((0,VN.LinkedEditingRangeFeature)((0,jN.SemanticTokensFeature)((0,WN.CallHierarchyFeature)(Ru))))))))),Du=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Du;var oS=(0,YN.NotebookSyncFeature)(Du);function sS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=sS;function aS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=aS;function cS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=cS;function uS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=uS;function lS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=hS;function eq(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,sS),tracer:n(t.tracer,e.tracer,cS),telemetry:n(t.telemetry,e.telemetry,aS),client:n(t.client,e.client,uS),window:n(t.window,e.window,lS),workspace:n(t.workspace,e.workspace,dS),languages:n(t.languages,e.languages,fS),notebooks:n(t.notebooks,e.notebooks,hS)}}$e.combineFeatures=eq;function tq(t,e,n){let i=n&&n.console?new(n.console(xu)):new xu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(ku)):new ku,u=n&&n.telemetry?new(n.telemetry(Tu)):new Tu,d=n&&n.client?new(n.client(Cu)):new Cu,f=n&&n.window?new(n.window(eS)):new eS,m=n&&n.workspace?new(n.workspace(rS)):new rS,v=n&&n.languages?new(n.languages(iS)):new iS,x=n&&n.notebooks?new(n.notebooks(oS)):new oS,D=[i,c,u,d,f,m,v,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return v},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=tq});var gS=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var nq=require("url"),tr=require("path"),Kh=require("fs"),Zh=require("child_process");function rq(t){let e=nq.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=rq;function Jh(){return process.platform==="win32"}function Fu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(v=>m[v]=f[v]),e&&Kh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let v=(0,Zh.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(v.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}v.on("error",D=>{d(D)}),v.on("message",D=>{D.c==="r"&&(v.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};v.send(x)}catch(v){d(v)}})}mn.resolve=Fu;function Xh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Jh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,Zh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Jh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Xh;function iq(t){let e="yarn",n={encoding:"utf8"};Jh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,Zh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=iq;var Yh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Kh.existsSync(__filename.toUpperCase())||!Kh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Yh||(mn.FileSystem=Yh={}));function oq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Fu(e,n,n,i).then(s=>Yh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Fu(e,Xh(i),t,i))):Fu(e,Xh(i),t,i)}mn.resolveModulePath=oq});var eg=I((Iz,pS)=>{"use strict";pS.exports=kt()});var mS=I(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.InlineCompletionFeature=void 0;var sq=kt(),aq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(sq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Eu.InlineCompletionFeature=aq});var vS=I(Kt=>{"use strict";var cq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),_S=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var uq=qh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return uq.SemanticTokensBuilder}});var lq=mS();_S(kt(),Kt);var dq=Uh();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return dq.TextDocuments}});var fq=Wh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return fq.NotebookDocuments}});_S(Qh(),Kt);var bS;(function(t){t.all={__brand:"features",languages:lq.InlineCompletionFeature}})(bS||(Kt.ProposedFeatures=bS={}))});var ng=I(zn=>{"use strict";var hq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),xS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&hq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var yS=require("node:util"),tg=bc(),gq=Qh(),Us=gS(),zi=eg();xS(eg(),zn);xS(vS(),zn);var wS;(function(t){t.uriToFilePath=Us.uriToFilePath,t.resolveGlobalNodePath=Us.resolveGlobalNodePath,t.resolveGlobalYarnPath=Us.resolveGlobalYarnPath,t.resolve=Us.resolve,t.resolveModulePath=Us.resolveModulePath})(wS||(zn.Files=wS={}));var SS;function Iu(){if(SS!==void 0)try{SS.end()}catch{}}var No=!1,PS;function pq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(PS=setInterval(()=>{try{process.kill(i,0)}catch{Iu(),process.exit(No?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;tg.number(e)&&PS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(No?0:1)}},3e3)},get shutdownReceived(){return No},set shutdownReceived(t){No=t},exit:t=>{Iu(),process.exit(t)}};function bq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),zi.ConnectionStrategy.is(t)||zi.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),_q(c,u,d,s)}zn.createConnection=bq;function _q(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,v=process.argv.slice(2);for(let x=0;x{Iu(),process.exit(No?0:1)}),f.on("close",()=>{Iu(),process.exit(No?0:1)})}let d=f=>{let m=(0,zi.createProtocolConnection)(t,e,f,n);return s&&vq(f),m};return(0,gq.createConnection)(d,mq,i)}function vq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,yS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,yS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} -${c}`)},console.warn=function(...s){t.warn(e(s))}}});var kS=I((Oz,CS)=>{"use strict";CS.exports=ng()});var IS=I((Yz,ES)=>{"use strict";function Cq(){this.__data__=[],this.size=0}ES.exports=Cq});var sg=I((Zz,MS)=>{"use strict";function kq(t,e){return t===e||t!==t&&e!==e}MS.exports=kq});var Ws=I((eH,AS)=>{"use strict";var Tq=sg();function Rq(t,e){for(var n=t.length;n--;)if(Tq(t[n][0],e))return n;return-1}AS.exports=Rq});var qS=I((tH,NS)=>{"use strict";var Dq=Ws(),Fq=Array.prototype,Eq=Fq.splice;function Iq(t){var e=this.__data__,n=Dq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Eq.call(e,n,1),--this.size,!0}NS.exports=Iq});var LS=I((nH,OS)=>{"use strict";var Mq=Ws();function Aq(t){var e=this.__data__,n=Mq(e,t);return n<0?void 0:e[n][1]}OS.exports=Aq});var US=I((rH,BS)=>{"use strict";var Nq=Ws();function qq(t){return Nq(this.__data__,t)>-1}BS.exports=qq});var WS=I((iH,$S)=>{"use strict";var Oq=Ws();function Lq(t,e){var n=this.__data__,i=Oq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}$S.exports=Lq});var js=I((oH,jS)=>{"use strict";var Bq=IS(),Uq=qS(),$q=LS(),Wq=US(),jq=WS();function qo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var zq=js();function Hq(){this.__data__=new zq,this.size=0}zS.exports=Hq});var GS=I((aH,VS)=>{"use strict";function Vq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}VS.exports=Vq});var KS=I((cH,QS)=>{"use strict";function Gq(t){return this.__data__.get(t)}QS.exports=Gq});var XS=I((uH,JS)=>{"use strict";function Qq(t){return this.__data__.has(t)}JS.exports=Qq});var ag=I((lH,YS)=>{"use strict";var Kq=typeof global=="object"&&global&&global.Object===Object&&global;YS.exports=Kq});var nr=I((dH,ZS)=>{"use strict";var Jq=ag(),Xq=typeof self=="object"&&self&&self.Object===Object&&self,Yq=Jq||Xq||Function("return this")();ZS.exports=Yq});var Ou=I((fH,ex)=>{"use strict";var Zq=nr(),e1=Zq.Symbol;ex.exports=e1});var ix=I((hH,rx)=>{"use strict";var tx=Ou(),nx=Object.prototype,t1=nx.hasOwnProperty,n1=nx.toString,zs=tx?tx.toStringTag:void 0;function r1(t){var e=t1.call(t,zs),n=t[zs];try{t[zs]=void 0;var i=!0}catch{}var s=n1.call(t);return i&&(e?t[zs]=n:delete t[zs]),s}rx.exports=r1});var sx=I((gH,ox)=>{"use strict";var i1=Object.prototype,o1=i1.toString;function s1(t){return o1.call(t)}ox.exports=s1});var Hs=I((pH,ux)=>{"use strict";var ax=Ou(),a1=ix(),c1=sx(),u1="[object Null]",l1="[object Undefined]",cx=ax?ax.toStringTag:void 0;function d1(t){return t==null?t===void 0?l1:u1:cx&&cx in Object(t)?a1(t):c1(t)}ux.exports=d1});var Oo=I((mH,lx)=>{"use strict";function f1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}lx.exports=f1});var cg=I((bH,dx)=>{"use strict";var h1=Hs(),g1=Oo(),p1="[object AsyncFunction]",m1="[object Function]",b1="[object GeneratorFunction]",_1="[object Proxy]";function v1(t){if(!g1(t))return!1;var e=h1(t);return e==m1||e==b1||e==p1||e==_1}dx.exports=v1});var hx=I((_H,fx)=>{"use strict";var y1=nr(),w1=y1["__core-js_shared__"];fx.exports=w1});var mx=I((vH,px)=>{"use strict";var ug=hx(),gx=function(){var t=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function S1(t){return!!gx&&gx in t}px.exports=S1});var lg=I((yH,bx)=>{"use strict";var x1=Function.prototype,P1=x1.toString;function C1(t){if(t!=null){try{return P1.call(t)}catch{}try{return t+""}catch{}}return""}bx.exports=C1});var vx=I((wH,_x)=>{"use strict";var k1=cg(),T1=mx(),R1=Oo(),D1=lg(),F1=/[\\^$.*+?()[\]{}|]/g,E1=/^\[object .+?Constructor\]$/,I1=Function.prototype,M1=Object.prototype,A1=I1.toString,N1=M1.hasOwnProperty,q1=RegExp("^"+A1.call(N1).replace(F1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O1(t){if(!R1(t)||T1(t))return!1;var e=k1(t)?q1:E1;return e.test(D1(t))}_x.exports=O1});var wx=I((SH,yx)=>{"use strict";function L1(t,e){return t?.[e]}yx.exports=L1});var mi=I((xH,Sx)=>{"use strict";var B1=vx(),U1=wx();function $1(t,e){var n=U1(t,e);return B1(n)?n:void 0}Sx.exports=$1});var Lu=I((PH,xx)=>{"use strict";var W1=mi(),j1=nr(),z1=W1(j1,"Map");xx.exports=z1});var Vs=I((CH,Px)=>{"use strict";var H1=mi(),V1=H1(Object,"create");Px.exports=V1});var Tx=I((kH,kx)=>{"use strict";var Cx=Vs();function G1(){this.__data__=Cx?Cx(null):{},this.size=0}kx.exports=G1});var Dx=I((TH,Rx)=>{"use strict";function Q1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Rx.exports=Q1});var Ex=I((RH,Fx)=>{"use strict";var K1=Vs(),J1="__lodash_hash_undefined__",X1=Object.prototype,Y1=X1.hasOwnProperty;function Z1(t){var e=this.__data__;if(K1){var n=e[t];return n===J1?void 0:n}return Y1.call(e,t)?e[t]:void 0}Fx.exports=Z1});var Mx=I((DH,Ix)=>{"use strict";var eO=Vs(),tO=Object.prototype,nO=tO.hasOwnProperty;function rO(t){var e=this.__data__;return eO?e[t]!==void 0:nO.call(e,t)}Ix.exports=rO});var Nx=I((FH,Ax)=>{"use strict";var iO=Vs(),oO="__lodash_hash_undefined__";function sO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=iO&&e===void 0?oO:e,this}Ax.exports=sO});var Ox=I((EH,qx)=>{"use strict";var aO=Tx(),cO=Dx(),uO=Ex(),lO=Mx(),dO=Nx();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Lx=Ox(),fO=js(),hO=Lu();function gO(){this.size=0,this.__data__={hash:new Lx,map:new(hO||fO),string:new Lx}}Bx.exports=gO});var Wx=I((MH,$x)=>{"use strict";function pO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}$x.exports=pO});var Gs=I((AH,jx)=>{"use strict";var mO=Wx();function bO(t,e){var n=t.__data__;return mO(e)?n[typeof e=="string"?"string":"hash"]:n.map}jx.exports=bO});var Hx=I((NH,zx)=>{"use strict";var _O=Gs();function vO(t){var e=_O(this,t).delete(t);return this.size-=e?1:0,e}zx.exports=vO});var Gx=I((qH,Vx)=>{"use strict";var yO=Gs();function wO(t){return yO(this,t).get(t)}Vx.exports=wO});var Kx=I((OH,Qx)=>{"use strict";var SO=Gs();function xO(t){return SO(this,t).has(t)}Qx.exports=xO});var Xx=I((LH,Jx)=>{"use strict";var PO=Gs();function CO(t,e){var n=PO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}Jx.exports=CO});var Zx=I((BH,Yx)=>{"use strict";var kO=Ux(),TO=Hx(),RO=Gx(),DO=Kx(),FO=Xx();function Bo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var EO=js(),IO=Lu(),MO=Zx(),AO=200;function NO(t,e){var n=this.__data__;if(n instanceof EO){var i=n.__data__;if(!IO||i.length{"use strict";var qO=js(),OO=HS(),LO=GS(),BO=KS(),UO=XS(),$O=tP();function Uo(t){var e=this.__data__=new qO(t);this.size=e.size}Uo.prototype.clear=OO;Uo.prototype.delete=LO;Uo.prototype.get=BO;Uo.prototype.has=UO;Uo.prototype.set=$O;nP.exports=Uo});var oP=I((WH,iP)=>{"use strict";function WO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var jO=mi(),zO=function(){try{var t=jO(Object,"defineProperty");return t({},"",{}),t}catch{}}();sP.exports=zO});var dg=I((zH,uP)=>{"use strict";var cP=aP();function HO(t,e,n){e=="__proto__"&&cP?cP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}uP.exports=HO});var fg=I((HH,lP)=>{"use strict";var VO=dg(),GO=sg(),QO=Object.prototype,KO=QO.hasOwnProperty;function JO(t,e,n){var i=t[e];(!(KO.call(t,e)&&GO(i,n))||n===void 0&&!(e in t))&&VO(t,e,n)}lP.exports=JO});var Qs=I((VH,dP)=>{"use strict";var XO=fg(),YO=dg();function ZO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function eL(t,e){for(var n=-1,i=Array(t);++n{"use strict";function tL(t){return t!=null&&typeof t=="object"}gP.exports=tL});var mP=I((KH,pP)=>{"use strict";var nL=Hs(),rL=$o(),iL="[object Arguments]";function oL(t){return rL(t)&&nL(t)==iL}pP.exports=oL});var yP=I((JH,vP)=>{"use strict";var bP=mP(),sL=$o(),_P=Object.prototype,aL=_P.hasOwnProperty,cL=_P.propertyIsEnumerable,uL=bP(function(){return arguments}())?bP:function(t){return sL(t)&&aL.call(t,"callee")&&!cL.call(t,"callee")};vP.exports=uL});var Bu=I((XH,wP)=>{"use strict";var lL=Array.isArray;wP.exports=lL});var xP=I((YH,SP)=>{"use strict";function dL(){return!1}SP.exports=dL});var hg=I((Ks,Wo)=>{"use strict";var fL=nr(),hL=xP(),kP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,PP=kP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,gL=PP&&PP.exports===kP,CP=gL?fL.Buffer:void 0,pL=CP?CP.isBuffer:void 0,mL=pL||hL;Wo.exports=mL});var RP=I((ZH,TP)=>{"use strict";var bL=9007199254740991,_L=/^(?:0|[1-9]\d*)$/;function vL(t,e){var n=typeof t;return e=e??bL,!!e&&(n=="number"||n!="symbol"&&_L.test(t))&&t>-1&&t%1==0&&t{"use strict";var yL=9007199254740991;function wL(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=yL}DP.exports=wL});var EP=I((tV,FP)=>{"use strict";var SL=Hs(),xL=gg(),PL=$o(),CL="[object Arguments]",kL="[object Array]",TL="[object Boolean]",RL="[object Date]",DL="[object Error]",FL="[object Function]",EL="[object Map]",IL="[object Number]",ML="[object Object]",AL="[object RegExp]",NL="[object Set]",qL="[object String]",OL="[object WeakMap]",LL="[object ArrayBuffer]",BL="[object DataView]",UL="[object Float32Array]",$L="[object Float64Array]",WL="[object Int8Array]",jL="[object Int16Array]",zL="[object Int32Array]",HL="[object Uint8Array]",VL="[object Uint8ClampedArray]",GL="[object Uint16Array]",QL="[object Uint32Array]",lt={};lt[UL]=lt[$L]=lt[WL]=lt[jL]=lt[zL]=lt[HL]=lt[VL]=lt[GL]=lt[QL]=!0;lt[CL]=lt[kL]=lt[LL]=lt[TL]=lt[BL]=lt[RL]=lt[DL]=lt[FL]=lt[EL]=lt[IL]=lt[ML]=lt[AL]=lt[NL]=lt[qL]=lt[OL]=!1;function KL(t){return PL(t)&&xL(t.length)&&!!lt[SL(t)]}FP.exports=KL});var Uu=I((nV,IP)=>{"use strict";function JL(t){return function(e){return t(e)}}IP.exports=JL});var $u=I((Js,jo)=>{"use strict";var XL=ag(),MP=typeof Js=="object"&&Js&&!Js.nodeType&&Js,Xs=MP&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,YL=Xs&&Xs.exports===MP,pg=YL&&XL.process,ZL=function(){try{var t=Xs&&Xs.require&&Xs.require("util").types;return t||pg&&pg.binding&&pg.binding("util")}catch{}}();jo.exports=ZL});var OP=I((rV,qP)=>{"use strict";var eB=EP(),tB=Uu(),AP=$u(),NP=AP&&AP.isTypedArray,nB=NP?tB(NP):eB;qP.exports=nB});var mg=I((iV,LP)=>{"use strict";var rB=hP(),iB=yP(),oB=Bu(),sB=hg(),aB=RP(),cB=OP(),uB=Object.prototype,lB=uB.hasOwnProperty;function dB(t,e){var n=oB(t),i=!n&&iB(t),s=!n&&!i&&sB(t),c=!n&&!i&&!s&&cB(t),u=n||i||s||c,d=u?rB(t.length,String):[],f=d.length;for(var m in t)(e||lB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||aB(m,f)))&&d.push(m);return d}LP.exports=dB});var Wu=I((oV,BP)=>{"use strict";var fB=Object.prototype;function hB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||fB;return t===n}BP.exports=hB});var bg=I((sV,UP)=>{"use strict";function gB(t,e){return function(n){return t(e(n))}}UP.exports=gB});var WP=I((aV,$P)=>{"use strict";var pB=bg(),mB=pB(Object.keys,Object);$P.exports=mB});var zP=I((cV,jP)=>{"use strict";var bB=Wu(),_B=WP(),vB=Object.prototype,yB=vB.hasOwnProperty;function wB(t){if(!bB(t))return _B(t);var e=[];for(var n in Object(t))yB.call(t,n)&&n!="constructor"&&e.push(n);return e}jP.exports=wB});var _g=I((uV,HP)=>{"use strict";var SB=cg(),xB=gg();function PB(t){return t!=null&&xB(t.length)&&!SB(t)}HP.exports=PB});var ju=I((lV,VP)=>{"use strict";var CB=mg(),kB=zP(),TB=_g();function RB(t){return TB(t)?CB(t):kB(t)}VP.exports=RB});var QP=I((dV,GP)=>{"use strict";var DB=Qs(),FB=ju();function EB(t,e){return t&&DB(e,FB(e),t)}GP.exports=EB});var JP=I((fV,KP)=>{"use strict";function IB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}KP.exports=IB});var YP=I((hV,XP)=>{"use strict";var MB=Oo(),AB=Wu(),NB=JP(),qB=Object.prototype,OB=qB.hasOwnProperty;function LB(t){if(!MB(t))return NB(t);var e=AB(t),n=[];for(var i in t)i=="constructor"&&(e||!OB.call(t,i))||n.push(i);return n}XP.exports=LB});var zu=I((gV,ZP)=>{"use strict";var BB=mg(),UB=YP(),$B=_g();function WB(t){return $B(t)?BB(t,!0):UB(t)}ZP.exports=WB});var tC=I((pV,eC)=>{"use strict";var jB=Qs(),zB=zu();function HB(t,e){return t&&jB(e,zB(e),t)}eC.exports=HB});var sC=I((Ys,zo)=>{"use strict";var VB=nr(),oC=typeof Ys=="object"&&Ys&&!Ys.nodeType&&Ys,nC=oC&&typeof zo=="object"&&zo&&!zo.nodeType&&zo,GB=nC&&nC.exports===oC,rC=GB?VB.Buffer:void 0,iC=rC?rC.allocUnsafe:void 0;function QB(t,e){if(e)return t.slice();var n=t.length,i=iC?iC(n):new t.constructor(n);return t.copy(i),i}zo.exports=QB});var cC=I((mV,aC)=>{"use strict";function KB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function JB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function XB(){return[]}dC.exports=XB});var Hu=I((vV,hC)=>{"use strict";var YB=lC(),ZB=vg(),eU=Object.prototype,tU=eU.propertyIsEnumerable,fC=Object.getOwnPropertySymbols,nU=fC?function(t){return t==null?[]:(t=Object(t),YB(fC(t),function(e){return tU.call(t,e)}))}:ZB;hC.exports=nU});var pC=I((yV,gC)=>{"use strict";var rU=Qs(),iU=Hu();function oU(t,e){return rU(t,iU(t),e)}gC.exports=oU});var yg=I((wV,mC)=>{"use strict";function sU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var aU=bg(),cU=aU(Object.getPrototypeOf,Object);bC.exports=cU});var Sg=I((xV,_C)=>{"use strict";var uU=yg(),lU=wg(),dU=Hu(),fU=vg(),hU=Object.getOwnPropertySymbols,gU=hU?function(t){for(var e=[];t;)uU(e,dU(t)),t=lU(t);return e}:fU;_C.exports=gU});var yC=I((PV,vC)=>{"use strict";var pU=Qs(),mU=Sg();function bU(t,e){return pU(t,mU(t),e)}vC.exports=bU});var xg=I((CV,wC)=>{"use strict";var _U=yg(),vU=Bu();function yU(t,e,n){var i=e(t);return vU(t)?i:_U(i,n(t))}wC.exports=yU});var xC=I((kV,SC)=>{"use strict";var wU=xg(),SU=Hu(),xU=ju();function PU(t){return wU(t,xU,SU)}SC.exports=PU});var CC=I((TV,PC)=>{"use strict";var CU=xg(),kU=Sg(),TU=zu();function RU(t){return CU(t,TU,kU)}PC.exports=RU});var TC=I((RV,kC)=>{"use strict";var DU=mi(),FU=nr(),EU=DU(FU,"DataView");kC.exports=EU});var DC=I((DV,RC)=>{"use strict";var IU=mi(),MU=nr(),AU=IU(MU,"Promise");RC.exports=AU});var EC=I((FV,FC)=>{"use strict";var NU=mi(),qU=nr(),OU=NU(qU,"Set");FC.exports=OU});var MC=I((EV,IC)=>{"use strict";var LU=mi(),BU=nr(),UU=LU(BU,"WeakMap");IC.exports=UU});var Vu=I((IV,UC)=>{"use strict";var Pg=TC(),Cg=Lu(),kg=DC(),Tg=EC(),Rg=MC(),BC=Hs(),Ho=lg(),AC="[object Map]",$U="[object Object]",NC="[object Promise]",qC="[object Set]",OC="[object WeakMap]",LC="[object DataView]",WU=Ho(Pg),jU=Ho(Cg),zU=Ho(kg),HU=Ho(Tg),VU=Ho(Rg),Hi=BC;(Pg&&Hi(new Pg(new ArrayBuffer(1)))!=LC||Cg&&Hi(new Cg)!=AC||kg&&Hi(kg.resolve())!=NC||Tg&&Hi(new Tg)!=qC||Rg&&Hi(new Rg)!=OC)&&(Hi=function(t){var e=BC(t),n=e==$U?t.constructor:void 0,i=n?Ho(n):"";if(i)switch(i){case WU:return LC;case jU:return AC;case zU:return NC;case HU:return qC;case VU:return OC}return e});UC.exports=Hi});var WC=I((MV,$C)=>{"use strict";var GU=Object.prototype,QU=GU.hasOwnProperty;function KU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&QU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}$C.exports=KU});var zC=I((AV,jC)=>{"use strict";var JU=nr(),XU=JU.Uint8Array;jC.exports=XU});var Gu=I((NV,VC)=>{"use strict";var HC=zC();function YU(t){var e=new t.constructor(t.byteLength);return new HC(e).set(new HC(t)),e}VC.exports=YU});var QC=I((qV,GC)=>{"use strict";var ZU=Gu();function e$(t,e){var n=e?ZU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}GC.exports=e$});var JC=I((OV,KC)=>{"use strict";var t$=/\w*$/;function n$(t){var e=new t.constructor(t.source,t$.exec(t));return e.lastIndex=t.lastIndex,e}KC.exports=n$});var tk=I((LV,ek)=>{"use strict";var XC=Ou(),YC=XC?XC.prototype:void 0,ZC=YC?YC.valueOf:void 0;function r$(t){return ZC?Object(ZC.call(t)):{}}ek.exports=r$});var rk=I((BV,nk)=>{"use strict";var i$=Gu();function o$(t,e){var n=e?i$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}nk.exports=o$});var ok=I((UV,ik)=>{"use strict";var s$=Gu(),a$=QC(),c$=JC(),u$=tk(),l$=rk(),d$="[object Boolean]",f$="[object Date]",h$="[object Map]",g$="[object Number]",p$="[object RegExp]",m$="[object Set]",b$="[object String]",_$="[object Symbol]",v$="[object ArrayBuffer]",y$="[object DataView]",w$="[object Float32Array]",S$="[object Float64Array]",x$="[object Int8Array]",P$="[object Int16Array]",C$="[object Int32Array]",k$="[object Uint8Array]",T$="[object Uint8ClampedArray]",R$="[object Uint16Array]",D$="[object Uint32Array]";function F$(t,e,n){var i=t.constructor;switch(e){case v$:return s$(t);case d$:case f$:return new i(+t);case y$:return a$(t,n);case w$:case S$:case x$:case P$:case C$:case k$:case T$:case R$:case D$:return l$(t,n);case h$:return new i;case g$:case b$:return new i(t);case p$:return c$(t);case m$:return new i;case _$:return u$(t)}}ik.exports=F$});var ck=I(($V,ak)=>{"use strict";var E$=Oo(),sk=Object.create,I$=function(){function t(){}return function(e){if(!E$(e))return{};if(sk)return sk(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();ak.exports=I$});var lk=I((WV,uk)=>{"use strict";var M$=ck(),A$=wg(),N$=Wu();function q$(t){return typeof t.constructor=="function"&&!N$(t)?M$(A$(t)):{}}uk.exports=q$});var fk=I((jV,dk)=>{"use strict";var O$=Vu(),L$=$o(),B$="[object Map]";function U$(t){return L$(t)&&O$(t)==B$}dk.exports=U$});var mk=I((zV,pk)=>{"use strict";var $$=fk(),W$=Uu(),hk=$u(),gk=hk&&hk.isMap,j$=gk?W$(gk):$$;pk.exports=j$});var _k=I((HV,bk)=>{"use strict";var z$=Vu(),H$=$o(),V$="[object Set]";function G$(t){return H$(t)&&z$(t)==V$}bk.exports=G$});var Sk=I((VV,wk)=>{"use strict";var Q$=_k(),K$=Uu(),vk=$u(),yk=vk&&vk.isSet,J$=yk?K$(yk):Q$;wk.exports=J$});var Tk=I((GV,kk)=>{"use strict";var X$=rP(),Y$=oP(),Z$=fg(),eW=QP(),tW=tC(),nW=sC(),rW=cC(),iW=pC(),oW=yC(),sW=xC(),aW=CC(),cW=Vu(),uW=WC(),lW=ok(),dW=lk(),fW=Bu(),hW=hg(),gW=mk(),pW=Oo(),mW=Sk(),bW=ju(),_W=zu(),vW=1,yW=2,wW=4,xk="[object Arguments]",SW="[object Array]",xW="[object Boolean]",PW="[object Date]",CW="[object Error]",Pk="[object Function]",kW="[object GeneratorFunction]",TW="[object Map]",RW="[object Number]",Ck="[object Object]",DW="[object RegExp]",FW="[object Set]",EW="[object String]",IW="[object Symbol]",MW="[object WeakMap]",AW="[object ArrayBuffer]",NW="[object DataView]",qW="[object Float32Array]",OW="[object Float64Array]",LW="[object Int8Array]",BW="[object Int16Array]",UW="[object Int32Array]",$W="[object Uint8Array]",WW="[object Uint8ClampedArray]",jW="[object Uint16Array]",zW="[object Uint32Array]",it={};it[xk]=it[SW]=it[AW]=it[NW]=it[xW]=it[PW]=it[qW]=it[OW]=it[LW]=it[BW]=it[UW]=it[TW]=it[RW]=it[Ck]=it[DW]=it[FW]=it[EW]=it[IW]=it[$W]=it[WW]=it[jW]=it[zW]=!0;it[CW]=it[Pk]=it[MW]=!1;function Qu(t,e,n,i,s,c){var u,d=e&vW,f=e&yW,m=e&wW;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!pW(t))return t;var v=fW(t);if(v){if(u=uW(t),!d)return rW(t,u)}else{var x=cW(t),D=x==Pk||x==kW;if(hW(t))return nW(t,d);if(x==Ck||x==xk||D&&!s){if(u=f||D?{}:dW(t),!d)return f?oW(t,tW(u,t)):iW(t,eW(u,t))}else{if(!it[x])return s?t:{};u=lW(t,x,d)}}c||(c=new X$);var N=c.get(t);if(N)return N;c.set(t,u),mW(t)?t.forEach(function(B){u.add(Qu(B,e,n,B,t,c))}):gW(t)&&t.forEach(function(B,K){u.set(K,Qu(B,e,n,K,t,c))});var A=m?f?aW:sW:f?_W:bW,L=v?void 0:A(t);return Y$(L||t,function(B,K){L&&(K=B,B=t[K]),Z$(u,K,Qu(B,e,n,K,t,c))}),u}kk.exports=Qu});var Dk=I((QV,Rk)=>{"use strict";var HW=Tk(),VW=1,GW=4;function QW(t){return HW(t,VW|GW)}Rk.exports=QW});var Ek=I((Fk,Ku)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Ku=="object"&&Ku.exports?Ku.exports=e():t.log=e()})(Fk,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+Se)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(Se,X){return P=Je(Se),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(Se){F=Je(Se),ve()||B.setLevel(Se,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(Se){B.setLevel(B.levels.TRACE,Se)},B.disableAll=function(Se){B.setLevel(B.levels.SILENT,Se)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var Se in s)s[Se].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Go=I((Vo,na)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,v=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",Se=800,X=16,z=1,se=2,re=3,Re=1/0,ge=9007199254740991,me=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,wr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",lr="[object Array]",Pi="[object AsyncFunction]",dr="[object Boolean]",fr="[object Date]",Ki="[object DOMException]",Sr="[object Error]",xr="[object Function]",Pr="[object GeneratorFunction]",mt="[object Map]",hr="[object Number]",Ji="[object Null]",Bt="[object Object]",Ci="[object Promise]",Hr="[object Proxy]",gr="[object RegExp]",xt="[object Set]",sn="[object String]",Cr="[object Symbol]",Xi="[object Undefined]",jt="[object WeakMap]",ki="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",tt=/\b__p \+= '';/g,De=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(at.source),Yi=/<%-([\s\S]+?)%>/g,xa=/<%([\s\S]+?)%>/g,ls=/<%=([\s\S]+?)%>/g,Pa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ca=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ft=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Vr=/^0o[0-7]+$/i,Zi=/^(?:0|[1-9]\d*)$/,ka=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ta=/($^)/,jT=/['\n\r\u2028\u2029\\]/g,Ra="\\ud800-\\udfff",zT="\\u0300-\\u036f",HT="\\ufe20-\\ufe2f",VT="\\u20d0-\\u20ff",Dp=zT+HT+VT,Fp="\\u2700-\\u27bf",Ep="a-z\\xdf-\\xf6\\xf8-\\xff",GT="\\xac\\xb1\\xd7\\xf7",QT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",KT="\\u2000-\\u206f",JT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ip="A-Z\\xc0-\\xd6\\xd8-\\xde",Mp="\\ufe0e\\ufe0f",Ap=GT+QT+KT+JT,Vl="['\u2019]",XT="["+Ra+"]",Np="["+Ap+"]",Da="["+Dp+"]",qp="\\d+",YT="["+Fp+"]",Op="["+Ep+"]",Lp="[^"+Ra+Ap+qp+Fp+Ep+Ip+"]",Gl="\\ud83c[\\udffb-\\udfff]",ZT="(?:"+Da+"|"+Gl+")",Bp="[^"+Ra+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",eo="["+Ip+"]",Up="\\u200d",$p="(?:"+Op+"|"+Lp+")",eR="(?:"+eo+"|"+Lp+")",Wp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",jp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",zp=ZT+"?",Hp="["+Mp+"]?",tR="(?:"+Up+"(?:"+[Bp,Ql,Kl].join("|")+")"+Hp+zp+")*",nR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Vp=Hp+zp+tR,iR="(?:"+[YT,Ql,Kl].join("|")+")"+Vp,oR="(?:"+[Bp+Da+"?",Da,Ql,Kl,XT].join("|")+")",sR=RegExp(Vl,"g"),aR=RegExp(Da,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+oR+Vp,"g"),cR=RegExp([eo+"?"+Op+"+"+Wp+"(?="+[Np,eo,"$"].join("|")+")",eR+"+"+jp+"(?="+[Np,eo+$p,"$"].join("|")+")",eo+"?"+$p+"+"+Wp,eo+"+"+jp,rR,nR,qp,iR].join("|"),"g"),uR=RegExp("["+Up+Ra+Dp+Mp+"]"),lR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,dR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],fR=-1,ct={};ct[kr]=ct[vn]=ct[C]=ct[H]=ct[Z]=ct[ie]=ct[Ue]=ct[Le]=ct[Ge]=!0,ct[Vn]=ct[lr]=ct[Gn]=ct[dr]=ct[_n]=ct[fr]=ct[Sr]=ct[xr]=ct[mt]=ct[hr]=ct[Bt]=ct[gr]=ct[xt]=ct[sn]=ct[jt]=!1;var nt={};nt[Vn]=nt[lr]=nt[Gn]=nt[_n]=nt[dr]=nt[fr]=nt[kr]=nt[vn]=nt[C]=nt[H]=nt[Z]=nt[mt]=nt[hr]=nt[Bt]=nt[gr]=nt[xt]=nt[sn]=nt[Cr]=nt[ie]=nt[Ue]=nt[Le]=nt[Ge]=!0,nt[Sr]=nt[xr]=nt[jt]=!1;var hR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},gR={"&":"&","<":"<",">":">",'"':""","'":"'"},pR={"&":"&","<":"<",">":">",""":'"',"'":"'"},mR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},bR=parseFloat,_R=parseInt,Gp=typeof global=="object"&&global&&global.Object===Object&&global,vR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Gp||vR||Function("return this")(),Xl=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,Ti=Xl&&typeof na=="object"&&na&&!na.nodeType&&na,Qp=Ti&&Ti.exports===Xl,Yl=Qp&&Gp.process,En=function(){try{var E=Ti&&Ti.require&&Ti.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Kp=En&&En.isArrayBuffer,Jp=En&&En.isDate,Xp=En&&En.isMap,Yp=En&&En.isRegExp,Zp=En&&En.isSet,em=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function yR(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function cm(E,W){for(var $=E.length;$--&&to(W,E[$],0)>-1;);return $}function DR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var FR=rd(hR),ER=rd(gR);function IR(E){return"\\"+mR[E]}function MR(E,W){return E==null?t:E[W]}function no(E){return uR.test(E)}function AR(E){return lR.test(E)}function NR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function um(E,W){return function($){return E(W($))}}function Kr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function SD(r,o){var a=this.__data__,l=Ga(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}Tr.prototype.clear=_D,Tr.prototype.delete=vD,Tr.prototype.get=yD,Tr.prototype.has=wD,Tr.prototype.set=SD;function Rr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&v,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=xe(r);if(Q){if(S=k0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==xr||J==Pr;if(ni(r))return Hm(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:lb(r),!T)return M?p0(r,LD(S,r)):g0(r,wm(S,r))}else{if(!nt[J])return h?r:{};S=T0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),Bb(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):Ob(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,ke=Q?t:de(r);return In(ke||r,function(fe,Me){ke&&(Me=fe,fe=r[Me]),bs(S,Me,Nn(fe,o,a,Me,r,_))}),S}function BD(r){var o=Ot(r);return function(a){return Sm(a,r,o)}}function Sm(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function xm(r,o,a){if(typeof r!="function")throw new Mn(s);return Ps(function(){r.apply(t,a)},o)}function _s(r,o,a,l){var h=-1,_=Fa,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=ht(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ds,S=!1,o=new Fi(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:Ce(l),l<0&&(l+=h),l=a>l?0:$b(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Qr(h,T):l||(h[h.length]=T)}return h}var gd=Xm(),km=Xm(!0);function pr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&km(r,o,Ot)}function Ka(r,o){return Gr(o,function(a){return Mr(r[a])})}function Ii(r,o){o=ei(o,r);for(var a=0,l=o.length;r!=null&&ao}function WD(r,o){return r!=null&&Ke.call(r,o)}function jD(r,o){return r!=null&&o in Ye(r)}function zD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Fi(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&Ua.call(T,M,1),Ua.call(r,M,1);return r}function Om(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Ir(h)?Ua.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+ja(bm()*(o-r+1))}function r0(r,o,a,l){for(var h=-1,_=At(Wa((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=ja(o/2),o&&(r+=r);while(o);return a}function Fe(r,o){return Ud(hb(r,o,dn),r+"")}function i0(r){return ym(ho(r))}function o0(r,o){var a=ho(r);return sc(a,Ei(o,0,a.length))}function ws(r,o,a,l){if(!bt(r))return r;o=ei(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=br(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Ir(o[h+1])?[]:{})}bs(T,M,V),T=T[M]}return r}var Lm=za?function(r,o){return za.set(r,o),r}:dn,s0=$a?function(r,o){return $a(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function a0(r){return sc(ho(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:v0(r);if(V)return Ia(V);S=!1,h=ds,M=new Fi}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=ei(o,r),r=gb(r,o),r==null||delete r[br(On(o))]}function $m(r,o,a,l){return ws(r,o,a(Ii(r,o)),l)}function Ya(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var zm=JR||function(r){return qt.clearTimeout(r)};function Hm(r,o){if(o)return r.slice();var a=r.length,l=fm?fm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new La(o).set(new La(r)),o}function l0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function d0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function f0(r){return ms?Ye(ms.call(r)):{}}function Vm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Gm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Qm(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function eb(r){return Er(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&ic(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Fi:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(y,`{ +`&&g++}y&&R.length>0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),y=0,g=R.length;if(g===0)return u.create(0,k);for(;yk?g=O:y=O+1}var G=y-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var y=R[k.line],g=k.line+1"u"}p.undefined=y;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Vr,Zi){return k.call(Ie)==="[object Number]"&&Vr<=Ie&&Ie<=Zi}p.numberRange=be;function ft(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ft;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Vr){return Array.isArray(Ie)&&Ie.every(Vr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var So=Ui(),B_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(B_||(hn.MessageDirection=B_={}));var ph=class{constructor(e){this.method=e}};hn.RegistrationType=ph;var mh=class extends So.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=mh;var bh=class extends So.RequestType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolRequestType=bh;var _h=class extends So.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=_h;var vh=class extends So.NotificationType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolNotificationType=vh});var $c=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function HA(t){return t===!0||t===!1}It.boolean=HA;function U_(t){return typeof t=="string"||t instanceof String}It.string=U_;function VA(t){return typeof t=="number"||t instanceof Number}It.number=VA;function GA(t){return t instanceof Error}It.error=GA;function QA(t){return typeof t=="function"}It.func=QA;function $_(t){return Array.isArray(t)}It.array=$_;function KA(t){return $_(t)&&t.every(e=>U_(e))}It.stringArray=KA;function JA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=JA;function XA(t){return t!==null&&typeof t=="object"}It.objectLiteral=XA});var z_=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ImplementationRequest=void 0;var W_=pt(),j_;(function(t){t.method="textDocument/implementation",t.messageDirection=W_.MessageDirection.clientToServer,t.type=new W_.ProtocolRequestType(t.method)})(j_||(Wc.ImplementationRequest=j_={}))});var G_=I(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.TypeDefinitionRequest=void 0;var H_=pt(),V_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=H_.MessageDirection.clientToServer,t.type=new H_.ProtocolRequestType(t.method)})(V_||(jc.TypeDefinitionRequest=V_={}))});var J_=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.DidChangeWorkspaceFoldersNotification=xo.WorkspaceFoldersRequest=void 0;var zc=pt(),Q_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(Q_||(xo.WorkspaceFoldersRequest=Q_={}));var K_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolNotificationType(t.method)})(K_||(xo.DidChangeWorkspaceFoldersNotification=K_={}))});var Z_=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.ConfigurationRequest=void 0;var X_=pt(),Y_;(function(t){t.method="workspace/configuration",t.messageDirection=X_.MessageDirection.serverToClient,t.type=new X_.ProtocolRequestType(t.method)})(Y_||(Hc.ConfigurationRequest=Y_={}))});var nv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.ColorPresentationRequest=Po.DocumentColorRequest=void 0;var Vc=pt(),ev;(function(t){t.method="textDocument/documentColor",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(ev||(Po.DocumentColorRequest=ev={}));var tv;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(tv||(Po.ColorPresentationRequest=tv={}))});var ov=I(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.FoldingRangeRefreshRequest=Co.FoldingRangeRequest=void 0;var Gc=pt(),rv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolRequestType(t.method)})(rv||(Co.FoldingRangeRequest=rv={}));var iv;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType0(t.method)})(iv||(Co.FoldingRangeRefreshRequest=iv={}))});var cv=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DeclarationRequest=void 0;var sv=pt(),av;(function(t){t.method="textDocument/declaration",t.messageDirection=sv.MessageDirection.clientToServer,t.type=new sv.ProtocolRequestType(t.method)})(av||(Qc.DeclarationRequest=av={}))});var dv=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.SelectionRangeRequest=void 0;var uv=pt(),lv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=uv.MessageDirection.clientToServer,t.type=new uv.ProtocolRequestType(t.method)})(lv||(Kc.SelectionRangeRequest=lv={}))});var pv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.WorkDoneProgressCancelNotification=ai.WorkDoneProgressCreateRequest=ai.WorkDoneProgress=void 0;var YA=Ui(),Jc=pt(),fv;(function(t){t.type=new YA.ProgressType;function e(n){return n===t.type}t.is=e})(fv||(ai.WorkDoneProgress=fv={}));var hv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType(t.method)})(hv||(ai.WorkDoneProgressCreateRequest=hv={}));var gv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolNotificationType(t.method)})(gv||(ai.WorkDoneProgressCancelNotification=gv={}))});var vv=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.CallHierarchyOutgoingCallsRequest=ci.CallHierarchyIncomingCallsRequest=ci.CallHierarchyPrepareRequest=void 0;var ko=pt(),mv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(mv||(ci.CallHierarchyPrepareRequest=mv={}));var bv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(bv||(ci.CallHierarchyIncomingCallsRequest=bv={}));var _v;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(_v||(ci.CallHierarchyOutgoingCallsRequest=_v={}))});var Cv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Or=pt(),yv;(function(t){t.Relative="relative"})(yv||(gn.TokenFormat=yv={}));var Es;(function(t){t.method="textDocument/semanticTokens",t.type=new Or.RegistrationType(t.method)})(Es||(gn.SemanticTokensRegistrationType=Es={}));var wv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(wv||(gn.SemanticTokensRequest=wv={}));var Sv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(Sv||(gn.SemanticTokensDeltaRequest=Sv={}));var xv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(xv||(gn.SemanticTokensRangeRequest=xv={}));var Pv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=Or.MessageDirection.serverToClient,t.type=new Or.ProtocolRequestType0(t.method)})(Pv||(gn.SemanticTokensRefreshRequest=Pv={}))});var Rv=I(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.ShowDocumentRequest=void 0;var kv=pt(),Tv;(function(t){t.method="window/showDocument",t.messageDirection=kv.MessageDirection.serverToClient,t.type=new kv.ProtocolRequestType(t.method)})(Tv||(Xc.ShowDocumentRequest=Tv={}))});var Ev=I(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.LinkedEditingRangeRequest=void 0;var Dv=pt(),Fv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Dv.MessageDirection.clientToServer,t.type=new Dv.ProtocolRequestType(t.method)})(Fv||(Yc.LinkedEditingRangeRequest=Fv={}))});var Bv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Iv;(function(t){t.file="file",t.folder="folder"})(Iv||(Qt.FileOperationPatternKind=Iv={}));var Mv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Mv||(Qt.WillCreateFilesRequest=Mv={}));var Av;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Av||(Qt.DidCreateFilesNotification=Av={}));var Nv;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Nv||(Qt.WillRenameFilesRequest=Nv={}));var qv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(qv||(Qt.DidRenameFilesNotification=qv={}));var Ov;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Ov||(Qt.DidDeleteFilesNotification=Ov={}));var Lv;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Lv||(Qt.WillDeleteFilesRequest=Lv={}))});var zv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.MonikerRequest=ui.MonikerKind=ui.UniquenessLevel=void 0;var Uv=pt(),$v;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})($v||(ui.UniquenessLevel=$v={}));var Wv;(function(t){t.$import="import",t.$export="export",t.local="local"})(Wv||(ui.MonikerKind=Wv={}));var jv;(function(t){t.method="textDocument/moniker",t.messageDirection=Uv.MessageDirection.clientToServer,t.type=new Uv.ProtocolRequestType(t.method)})(jv||(ui.MonikerRequest=jv={}))});var Qv=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.TypeHierarchySubtypesRequest=li.TypeHierarchySupertypesRequest=li.TypeHierarchyPrepareRequest=void 0;var To=pt(),Hv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Hv||(li.TypeHierarchyPrepareRequest=Hv={}));var Vv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Vv||(li.TypeHierarchySupertypesRequest=Vv={}));var Gv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Gv||(li.TypeHierarchySubtypesRequest=Gv={}))});var Xv=I(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.InlineValueRefreshRequest=Ro.InlineValueRequest=void 0;var Zc=pt(),Kv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Zc.MessageDirection.clientToServer,t.type=new Zc.ProtocolRequestType(t.method)})(Kv||(Ro.InlineValueRequest=Kv={}));var Jv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Zc.MessageDirection.serverToClient,t.type=new Zc.ProtocolRequestType0(t.method)})(Jv||(Ro.InlineValueRefreshRequest=Jv={}))});var ty=I(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.InlayHintRefreshRequest=di.InlayHintResolveRequest=di.InlayHintRequest=void 0;var Do=pt(),Yv;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Yv||(di.InlayHintRequest=Yv={}));var Zv;(function(t){t.method="inlayHint/resolve",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Zv||(di.InlayHintResolveRequest=Zv={}));var ey;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(ey||(di.InlayHintRefreshRequest=ey={}))});var cy=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var ay=Ui(),ZA=$c(),Fo=pt(),ny;(function(t){function e(n){let i=n;return i&&ZA.boolean(i.retriggerRequest)}t.is=e})(ny||(Un.DiagnosticServerCancellationData=ny={}));var ry;(function(t){t.Full="full",t.Unchanged="unchanged"})(ry||(Un.DocumentDiagnosticReportKind=ry={}));var iy;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new ay.ProgressType})(iy||(Un.DocumentDiagnosticRequest=iy={}));var oy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new ay.ProgressType})(oy||(Un.WorkspaceDiagnosticRequest=oy={}));var sy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Fo.MessageDirection.serverToClient,t.type=new Fo.ProtocolRequestType0(t.method)})(sy||(Un.DiagnosticRefreshRequest=sy={}))});var py=I(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.DidCloseNotebookDocumentNotification=wt.DidSaveNotebookDocumentNotification=wt.DidChangeNotebookDocumentNotification=wt.NotebookCellArrayChange=wt.DidOpenNotebookDocumentNotification=wt.NotebookDocumentSyncRegistrationType=wt.NotebookDocument=wt.NotebookCell=wt.ExecutionSummary=wt.NotebookCellKind=void 0;var Is=Uc(),er=$c(),_r=pt(),yh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(yh||(wt.NotebookCellKind=yh={}));var wh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Is.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(wh||(wt.ExecutionSummary=wh={}));var eu;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&yh.is(u.kind)&&Is.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.InlineCompletionRequest=void 0;var my=pt(),by;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=my.MessageDirection.clientToServer,t.type=new my.ProtocolRequestType(t.method)})(by||(tu.InlineCompletionRequest=by={}))});var Ew=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),vy=Uc(),Lt=$c(),eN=z_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return eN.ImplementationRequest}});var tN=G_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return tN.TypeDefinitionRequest}});var Tw=J_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Tw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Tw.DidChangeWorkspaceFoldersNotification}});var nN=Z_();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return nN.ConfigurationRequest}});var Rw=nv();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Rw.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Rw.ColorPresentationRequest}});var Dw=ov();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Dw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Dw.FoldingRangeRefreshRequest}});var rN=cv();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return rN.DeclarationRequest}});var iN=dv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return iN.SelectionRangeRequest}});var kh=pv();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return kh.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return kh.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return kh.WorkDoneProgressCancelNotification}});var Th=vv();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var Io=Cv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Io.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Io.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Io.SemanticTokensRegistrationType}});var oN=Rv();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return oN.ShowDocumentRequest}});var sN=Ev();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return sN.LinkedEditingRangeRequest}});var $i=Bv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return $i.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return $i.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return $i.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return $i.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return $i.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return $i.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return $i.WillDeleteFilesRequest}});var Rh=zv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Rh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Rh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Rh.MonikerRequest}});var Dh=Qv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySupertypesRequest}});var Fw=Xv();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Fw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Fw.InlineValueRefreshRequest}});var Fh=ty();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Fh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Fh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Fh.InlayHintRefreshRequest}});var Ms=cy();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Ms.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Ms.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Ms.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Ms.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Ms.DiagnosticRefreshRequest}});var vr=py();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return vr.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return vr.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return vr.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return vr.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return vr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return vr.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidCloseNotebookDocumentNotification}});var aN=_y();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return aN.InlineCompletionRequest}});var Sh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(Sh||(w.TextDocumentFilter=Sh={}));var xh;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(xh||(w.NotebookDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||xh.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ph||(w.NotebookCellTextDocumentFilter=Ph={}));var Ch;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!Sh.is(i)&&!Ph.is(i))return!1;return!0}t.is=e})(Ch||(w.DocumentSelector=Ch={}));var yy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(yy||(w.RegistrationRequest=yy={}));var wy;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(wy||(w.UnregistrationRequest=wy={}));var Sy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(Sy||(w.ResourceOperationKind=Sy={}));var xy;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(xy||(w.FailureHandlingKind=xy={}));var Py;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(Py||(w.PositionEncodingKind=Py={}));var Cy;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Cy||(w.StaticRegistrationOptions=Cy={}));var ky;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Ch.is(i.documentSelector))}t.is=e})(ky||(w.TextDocumentRegistrationOptions=ky={}));var Ty;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(Ty||(w.WorkDoneProgressOptions=Ty={}));var Ry;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ry||(w.InitializeRequest=Ry={}));var Dy;(function(t){t.unknownProtocolVersion=1})(Dy||(w.InitializeErrorCodes=Dy={}));var Fy;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Fy||(w.InitializedNotification=Fy={}));var Ey;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Ey||(w.ShutdownRequest=Ey={}));var Iy;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Iy||(w.ExitNotification=Iy={}));var My;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(My||(w.DidChangeConfigurationNotification=My={}));var Ay;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(Ay||(w.MessageType=Ay={}));var Ny;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ny||(w.ShowMessageNotification=Ny={}));var qy;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(qy||(w.ShowMessageRequest=qy={}));var Oy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Oy||(w.LogMessageNotification=Oy={}));var Ly;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ly||(w.TelemetryEventNotification=Ly={}));var By;(function(t){t.None=0,t.Full=1,t.Incremental=2})(By||(w.TextDocumentSyncKind=By={}));var Uy;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Uy||(w.DidOpenTextDocumentNotification=Uy={}));var $y;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})($y||(w.TextDocumentContentChangeEvent=$y={}));var Wy;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Wy||(w.DidChangeTextDocumentNotification=Wy={}));var jy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidCloseTextDocumentNotification=jy={}));var zy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(zy||(w.DidSaveTextDocumentNotification=zy={}));var Hy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(Hy||(w.TextDocumentSaveReason=Hy={}));var Vy;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Vy||(w.WillSaveTextDocumentNotification=Vy={}));var Gy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Gy||(w.WillSaveTextDocumentWaitUntilRequest=Gy={}));var Qy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Qy||(w.DidChangeWatchedFilesNotification=Qy={}));var Ky;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Ky||(w.FileChangeType=Ky={}));var Jy;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(vy.URI.is(i.baseUri)||vy.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Jy||(w.RelativePattern=Jy={}));var Xy;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Xy||(w.WatchKind=Xy={}));var Yy;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Yy||(w.PublishDiagnosticsNotification=Yy={}));var Zy;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Zy||(w.CompletionTriggerKind=Zy={}));var ew;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ew||(w.CompletionRequest=ew={}));var tw;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(tw||(w.CompletionResolveRequest=tw={}));var nw;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(nw||(w.HoverRequest=nw={}));var rw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(rw||(w.SignatureHelpTriggerKind=rw={}));var iw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.SignatureHelpRequest=iw={}));var ow;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.DefinitionRequest=ow={}));var sw;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(sw||(w.ReferencesRequest=sw={}));var aw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.DocumentHighlightRequest=aw={}));var cw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.DocumentSymbolRequest=cw={}));var uw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.CodeActionRequest=uw={}));var lw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.CodeActionResolveRequest=lw={}));var dw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.WorkspaceSymbolRequest=dw={}));var fw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.WorkspaceSymbolResolveRequest=fw={}));var hw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeLensRequest=hw={}));var gw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(gw||(w.CodeLensResolveRequest=gw={}));var pw;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(pw||(w.CodeLensRefreshRequest=pw={}));var mw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.DocumentLinkRequest=mw={}));var bw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.DocumentLinkResolveRequest=bw={}));var _w;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(_w||(w.DocumentFormattingRequest=_w={}));var vw;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentRangeFormattingRequest=vw={}));var yw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentRangesFormattingRequest=yw={}));var ww;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ww||(w.DocumentOnTypeFormattingRequest=ww={}));var Sw;(function(t){t.Identifier=1})(Sw||(w.PrepareSupportDefaultBehavior=Sw={}));var xw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.RenameRequest=xw={}));var Pw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.PrepareRenameRequest=Pw={}));var Cw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Cw||(w.ExecuteCommandRequest=Cw={}));var kw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(kw||(w.ApplyWorkspaceEditRequest=kw={}))});var Mw=I(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.createProtocolConnection=void 0;var Iw=Ui();function cN(t,e,n,i){return Iw.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Iw.createMessageConnection)(t,e,n,i)}nu.createProtocolConnection=cN});var Nw=I(pn=>{"use strict";var uN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),ru=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&uN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;ru(Ui(),pn);ru(Uc(),pn);ru(pt(),pn);ru(Ew(),pn);var lN=Mw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return lN.createProtocolConnection}});var Aw;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Aw||(pn.LSPErrorCodes=Aw={}))});var kt=I(yr=>{"use strict";var dN=yr&&yr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),qw=yr&&yr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&dN(e,t,n)};Object.defineProperty(yr,"__esModule",{value:!0});yr.createProtocolConnection=void 0;var fN=gh();qw(gh(),yr);qw(Nw(),yr);function hN(t,e,n,i){return(0,fN.createMessageConnection)(t,e,n,i)}yr.createProtocolConnection=hN});var Eh=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var As=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},Ns=class t extends As{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};Ns._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];Ns._timeHighBits=["8","9","a","b"];$n.empty=new As("00000000-0000-0000-0000-000000000000");function Ow(){return new Ns}$n.v4=Ow;var gN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Lw(t){return gN.test(t)}$n.isUUID=Lw;function pN(t){if(!Lw(t))throw new Error("invalid uuid");return new As(t)}$n.parse=pN;function mN(){return Ow().asHex()}$n.generateUuid=mN});var Bw=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.attachPartialResult=hi.ProgressFeature=hi.attachWorkDone=void 0;var fi=kt(),bN=Eh(),Wi=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,{kind:"end"})}};Wi.Instances=new Map;var iu=class extends Wi{constructor(e,n){super(e,n),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},qs=class{constructor(){}begin(){}report(){}done(){}},ou=class extends qs{constructor(){super(),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function _N(t,e){if(e===void 0||e.workDoneToken===void 0)return new qs;let n=e.workDoneToken;return delete e.workDoneToken,new Wi(t,n)}hi.attachWorkDone=_N;var vN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(fi.WorkDoneProgressCancelNotification.type,n=>{let i=Wi.Instances.get(n.token);(i instanceof iu||i instanceof ou)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new qs:new Wi(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,bN.generateUuid)();return this.connection.sendRequest(fi.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new iu(this.connection,e))}else return Promise.resolve(new ou)}};hi.ProgressFeature=vN;var Ih;(function(t){t.type=new fi.ProgressType})(Ih||(Ih={}));var Mh=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Ih.type,this._token,e)}};function yN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Mh(t,n)}hi.attachPartialResult=yN});var Uw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.ConfigurationFeature=void 0;var wN=kt(),SN=bc(),xN=t=>class extends t{getConfiguration(e){return e?SN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(wN.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};su.ConfigurationFeature=xN});var $w=I(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.WorkspaceFoldersFeature=void 0;var au=kt(),PN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new au.Emitter,this.connection.onNotification(au.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(au.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(au.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};cu.WorkspaceFoldersFeature=PN});var Ww=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.CallHierarchyFeature=void 0;var Ah=kt(),CN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Ah.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Ah.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Ah.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};uu.CallHierarchyFeature=CN});var qh=I(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.SemanticTokensBuilder=gi.SemanticTokensDiff=gi.SemanticTokensFeature=void 0;var lu=kt(),kN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(lu.SemanticTokensRefreshRequest.type),on:e=>{let n=lu.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=lu.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=lu.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gi.SemanticTokensFeature=kN;var du=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new du(this._prevData,this._data).computeDiff()}:this.build()}};gi.SemanticTokensBuilder=Nh});var jw=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.ShowDocumentFeature=void 0;var TN=kt(),RN=t=>class extends t{showDocument(e){return this.connection.sendRequest(TN.ShowDocumentRequest.type,e)}};fu.ShowDocumentFeature=RN});var zw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.FileOperationsFeature=void 0;var Mo=kt(),DN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Mo.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Mo.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Mo.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Mo.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Mo.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Mo.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};hu.FileOperationsFeature=DN});var Hw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.LinkedEditingRangeFeature=void 0;var FN=kt(),EN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(FN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};gu.LinkedEditingRangeFeature=EN});var Vw=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.TypeHierarchyFeature=void 0;var Oh=kt(),IN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};pu.TypeHierarchyFeature=IN});var Qw=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.InlineValueFeature=void 0;var Gw=kt(),MN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Gw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Gw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};mu.InlineValueFeature=MN});var Jw=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.FoldingRangeFeature=void 0;var Kw=kt(),AN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Kw.FoldingRangeRefreshRequest.type),on:e=>{let n=Kw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};bu.FoldingRangeFeature=AN});var Xw=I(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.InlayHintFeature=void 0;var Lh=kt(),NN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Lh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Lh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Lh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};_u.InlayHintFeature=NN});var Yw=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.DiagnosticFeature=void 0;var Os=kt(),qN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Os.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Os.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Os.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Os.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Os.WorkspaceDiagnosticRequest.partialResult,n)))}}};vu.DiagnosticFeature=qN});var Uh=I(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.TextDocuments=void 0;var ji=kt(),Bh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new ji.Emitter,this._onDidOpen=new ji.Emitter,this._onDidClose=new ji.Emitter,this._onDidSave=new ji.Emitter,this._onWillSave=new ji.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=ji.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),ji.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};yu.TextDocuments=Bh});var Wh=I(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.NotebookDocuments=Ao.NotebookSyncFeature=void 0;var Wn=kt(),Zw=Uh(),ON=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Ao.NotebookSyncFeature=ON;var wu=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};wu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $h=class{constructor(e){e instanceof Zw.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new Zw.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new wu,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],v=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),v.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of v)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Ao.NotebookDocuments=$h});var eS=I(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.MonikerFeature=void 0;var LN=kt(),BN=t=>class extends t{get moniker(){return{on:e=>{let n=LN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Su.MonikerFeature=BN});var Qh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=bc(),zh=Eh(),we=Bw(),UN=Uw(),$N=$w(),WN=Ww(),jN=qh(),zN=jw(),HN=zw(),VN=Hw(),GN=Vw(),QN=Qw(),KN=Jw(),JN=Xw(),XN=Yw(),YN=Wh(),ZN=eS();function jh(t){if(t!==null)return t}var Hh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Hh;var xu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Vh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}},tS=(0,zN.ShowDocumentFeature)((0,we.ProgressFeature)(Vh)),nS;(function(t){function e(){return new Pu}t.create=e})(nS||($e.BulkRegistration=nS={}));var Pu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=zh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},rS;(function(t){function e(){return new Ls(void 0,[])}t.create=e})(rS||($e.BulkUnregistration=rS={}));var Ls=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Cu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof Pu?this.registerMany(e):e instanceof Ls?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=zh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=zh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Ls(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},iS=(0,HN.FileOperationsFeature)((0,$N.WorkspaceFoldersFeature)((0,UN.ConfigurationFeature)(Gh))),ku=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Tu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Ru=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Ru;var oS=(0,KN.FoldingRangeFeature)((0,ZN.MonikerFeature)((0,XN.DiagnosticFeature)((0,JN.InlayHintFeature)((0,QN.InlineValueFeature)((0,GN.TypeHierarchyFeature)((0,VN.LinkedEditingRangeFeature)((0,jN.SemanticTokensFeature)((0,WN.CallHierarchyFeature)(Ru))))))))),Du=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Du;var sS=(0,YN.NotebookSyncFeature)(Du);function aS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=aS;function cS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=cS;function uS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=uS;function lS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=hS;function gS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=gS;function eq(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,aS),tracer:n(t.tracer,e.tracer,uS),telemetry:n(t.telemetry,e.telemetry,cS),client:n(t.client,e.client,lS),window:n(t.window,e.window,dS),workspace:n(t.workspace,e.workspace,fS),languages:n(t.languages,e.languages,hS),notebooks:n(t.notebooks,e.notebooks,gS)}}$e.combineFeatures=eq;function tq(t,e,n){let i=n&&n.console?new(n.console(xu)):new xu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(ku)):new ku,u=n&&n.telemetry?new(n.telemetry(Tu)):new Tu,d=n&&n.client?new(n.client(Cu)):new Cu,f=n&&n.window?new(n.window(tS)):new tS,m=n&&n.workspace?new(n.workspace(iS)):new iS,v=n&&n.languages?new(n.languages(oS)):new oS,x=n&&n.notebooks?new(n.notebooks(sS)):new sS,D=[i,c,u,d,f,m,v,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return v},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=tq});var pS=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var nq=require("url"),tr=require("path"),Kh=require("fs"),Zh=require("child_process");function rq(t){let e=nq.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=rq;function Jh(){return process.platform==="win32"}function Fu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(v=>m[v]=f[v]),e&&Kh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let v=(0,Zh.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(v.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}v.on("error",D=>{d(D)}),v.on("message",D=>{D.c==="r"&&(v.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};v.send(x)}catch(v){d(v)}})}mn.resolve=Fu;function Xh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Jh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,Zh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Jh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Xh;function iq(t){let e="yarn",n={encoding:"utf8"};Jh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,Zh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=iq;var Yh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Kh.existsSync(__filename.toUpperCase())||!Kh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Yh||(mn.FileSystem=Yh={}));function oq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Fu(e,n,n,i).then(s=>Yh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Fu(e,Xh(i),t,i))):Fu(e,Xh(i),t,i)}mn.resolveModulePath=oq});var eg=I((Ez,mS)=>{"use strict";mS.exports=kt()});var bS=I(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.InlineCompletionFeature=void 0;var sq=kt(),aq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(sq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Eu.InlineCompletionFeature=aq});var yS=I(Kt=>{"use strict";var cq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),vS=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var uq=qh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return uq.SemanticTokensBuilder}});var lq=bS();vS(kt(),Kt);var dq=Uh();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return dq.TextDocuments}});var fq=Wh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return fq.NotebookDocuments}});vS(Qh(),Kt);var _S;(function(t){t.all={__brand:"features",languages:lq.InlineCompletionFeature}})(_S||(Kt.ProposedFeatures=_S={}))});var ng=I(zn=>{"use strict";var hq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),PS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&hq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var wS=require("node:util"),tg=bc(),gq=Qh(),Bs=pS(),zi=eg();PS(eg(),zn);PS(yS(),zn);var SS;(function(t){t.uriToFilePath=Bs.uriToFilePath,t.resolveGlobalNodePath=Bs.resolveGlobalNodePath,t.resolveGlobalYarnPath=Bs.resolveGlobalYarnPath,t.resolve=Bs.resolve,t.resolveModulePath=Bs.resolveModulePath})(SS||(zn.Files=SS={}));var xS;function Iu(){if(xS!==void 0)try{xS.end()}catch{}}var No=!1,CS;function pq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(CS=setInterval(()=>{try{process.kill(i,0)}catch{Iu(),process.exit(No?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;tg.number(e)&&CS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(No?0:1)}},3e3)},get shutdownReceived(){return No},set shutdownReceived(t){No=t},exit:t=>{Iu(),process.exit(t)}};function bq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),zi.ConnectionStrategy.is(t)||zi.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),_q(c,u,d,s)}zn.createConnection=bq;function _q(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,v=process.argv.slice(2);for(let x=0;x{Iu(),process.exit(No?0:1)}),f.on("close",()=>{Iu(),process.exit(No?0:1)})}let d=f=>{let m=(0,zi.createProtocolConnection)(t,e,f,n);return s&&vq(f),m};return(0,gq.createConnection)(d,mq,i)}function vq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,wS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,wS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} +${c}`)},console.warn=function(...s){t.warn(e(s))}}});var TS=I((qz,kS)=>{"use strict";kS.exports=ng()});var MS=I((Xz,IS)=>{"use strict";function Cq(){this.__data__=[],this.size=0}IS.exports=Cq});var sg=I((Yz,AS)=>{"use strict";function kq(t,e){return t===e||t!==t&&e!==e}AS.exports=kq});var $s=I((Zz,NS)=>{"use strict";var Tq=sg();function Rq(t,e){for(var n=t.length;n--;)if(Tq(t[n][0],e))return n;return-1}NS.exports=Rq});var OS=I((eH,qS)=>{"use strict";var Dq=$s(),Fq=Array.prototype,Eq=Fq.splice;function Iq(t){var e=this.__data__,n=Dq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Eq.call(e,n,1),--this.size,!0}qS.exports=Iq});var BS=I((tH,LS)=>{"use strict";var Mq=$s();function Aq(t){var e=this.__data__,n=Mq(e,t);return n<0?void 0:e[n][1]}LS.exports=Aq});var $S=I((nH,US)=>{"use strict";var Nq=$s();function qq(t){return Nq(this.__data__,t)>-1}US.exports=qq});var jS=I((rH,WS)=>{"use strict";var Oq=$s();function Lq(t,e){var n=this.__data__,i=Oq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}WS.exports=Lq});var Ws=I((iH,zS)=>{"use strict";var Bq=MS(),Uq=OS(),$q=BS(),Wq=$S(),jq=jS();function qo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var zq=Ws();function Hq(){this.__data__=new zq,this.size=0}HS.exports=Hq});var QS=I((sH,GS)=>{"use strict";function Vq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}GS.exports=Vq});var JS=I((aH,KS)=>{"use strict";function Gq(t){return this.__data__.get(t)}KS.exports=Gq});var YS=I((cH,XS)=>{"use strict";function Qq(t){return this.__data__.has(t)}XS.exports=Qq});var ag=I((uH,ZS)=>{"use strict";var Kq=typeof global=="object"&&global&&global.Object===Object&&global;ZS.exports=Kq});var nr=I((lH,ex)=>{"use strict";var Jq=ag(),Xq=typeof self=="object"&&self&&self.Object===Object&&self,Yq=Jq||Xq||Function("return this")();ex.exports=Yq});var Ou=I((dH,tx)=>{"use strict";var Zq=nr(),e1=Zq.Symbol;tx.exports=e1});var ox=I((fH,ix)=>{"use strict";var nx=Ou(),rx=Object.prototype,t1=rx.hasOwnProperty,n1=rx.toString,js=nx?nx.toStringTag:void 0;function r1(t){var e=t1.call(t,js),n=t[js];try{t[js]=void 0;var i=!0}catch{}var s=n1.call(t);return i&&(e?t[js]=n:delete t[js]),s}ix.exports=r1});var ax=I((hH,sx)=>{"use strict";var i1=Object.prototype,o1=i1.toString;function s1(t){return o1.call(t)}sx.exports=s1});var zs=I((gH,lx)=>{"use strict";var cx=Ou(),a1=ox(),c1=ax(),u1="[object Null]",l1="[object Undefined]",ux=cx?cx.toStringTag:void 0;function d1(t){return t==null?t===void 0?l1:u1:ux&&ux in Object(t)?a1(t):c1(t)}lx.exports=d1});var Oo=I((pH,dx)=>{"use strict";function f1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}dx.exports=f1});var cg=I((mH,fx)=>{"use strict";var h1=zs(),g1=Oo(),p1="[object AsyncFunction]",m1="[object Function]",b1="[object GeneratorFunction]",_1="[object Proxy]";function v1(t){if(!g1(t))return!1;var e=h1(t);return e==m1||e==b1||e==p1||e==_1}fx.exports=v1});var gx=I((bH,hx)=>{"use strict";var y1=nr(),w1=y1["__core-js_shared__"];hx.exports=w1});var bx=I((_H,mx)=>{"use strict";var ug=gx(),px=function(){var t=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function S1(t){return!!px&&px in t}mx.exports=S1});var lg=I((vH,_x)=>{"use strict";var x1=Function.prototype,P1=x1.toString;function C1(t){if(t!=null){try{return P1.call(t)}catch{}try{return t+""}catch{}}return""}_x.exports=C1});var yx=I((yH,vx)=>{"use strict";var k1=cg(),T1=bx(),R1=Oo(),D1=lg(),F1=/[\\^$.*+?()[\]{}|]/g,E1=/^\[object .+?Constructor\]$/,I1=Function.prototype,M1=Object.prototype,A1=I1.toString,N1=M1.hasOwnProperty,q1=RegExp("^"+A1.call(N1).replace(F1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O1(t){if(!R1(t)||T1(t))return!1;var e=k1(t)?q1:E1;return e.test(D1(t))}vx.exports=O1});var Sx=I((wH,wx)=>{"use strict";function L1(t,e){return t?.[e]}wx.exports=L1});var mi=I((SH,xx)=>{"use strict";var B1=yx(),U1=Sx();function $1(t,e){var n=U1(t,e);return B1(n)?n:void 0}xx.exports=$1});var Lu=I((xH,Px)=>{"use strict";var W1=mi(),j1=nr(),z1=W1(j1,"Map");Px.exports=z1});var Hs=I((PH,Cx)=>{"use strict";var H1=mi(),V1=H1(Object,"create");Cx.exports=V1});var Rx=I((CH,Tx)=>{"use strict";var kx=Hs();function G1(){this.__data__=kx?kx(null):{},this.size=0}Tx.exports=G1});var Fx=I((kH,Dx)=>{"use strict";function Q1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Dx.exports=Q1});var Ix=I((TH,Ex)=>{"use strict";var K1=Hs(),J1="__lodash_hash_undefined__",X1=Object.prototype,Y1=X1.hasOwnProperty;function Z1(t){var e=this.__data__;if(K1){var n=e[t];return n===J1?void 0:n}return Y1.call(e,t)?e[t]:void 0}Ex.exports=Z1});var Ax=I((RH,Mx)=>{"use strict";var eO=Hs(),tO=Object.prototype,nO=tO.hasOwnProperty;function rO(t){var e=this.__data__;return eO?e[t]!==void 0:nO.call(e,t)}Mx.exports=rO});var qx=I((DH,Nx)=>{"use strict";var iO=Hs(),oO="__lodash_hash_undefined__";function sO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=iO&&e===void 0?oO:e,this}Nx.exports=sO});var Lx=I((FH,Ox)=>{"use strict";var aO=Rx(),cO=Fx(),uO=Ix(),lO=Ax(),dO=qx();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Bx=Lx(),fO=Ws(),hO=Lu();function gO(){this.size=0,this.__data__={hash:new Bx,map:new(hO||fO),string:new Bx}}Ux.exports=gO});var jx=I((IH,Wx)=>{"use strict";function pO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}Wx.exports=pO});var Vs=I((MH,zx)=>{"use strict";var mO=jx();function bO(t,e){var n=t.__data__;return mO(e)?n[typeof e=="string"?"string":"hash"]:n.map}zx.exports=bO});var Vx=I((AH,Hx)=>{"use strict";var _O=Vs();function vO(t){var e=_O(this,t).delete(t);return this.size-=e?1:0,e}Hx.exports=vO});var Qx=I((NH,Gx)=>{"use strict";var yO=Vs();function wO(t){return yO(this,t).get(t)}Gx.exports=wO});var Jx=I((qH,Kx)=>{"use strict";var SO=Vs();function xO(t){return SO(this,t).has(t)}Kx.exports=xO});var Yx=I((OH,Xx)=>{"use strict";var PO=Vs();function CO(t,e){var n=PO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}Xx.exports=CO});var eP=I((LH,Zx)=>{"use strict";var kO=$x(),TO=Vx(),RO=Qx(),DO=Jx(),FO=Yx();function Bo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var EO=Ws(),IO=Lu(),MO=eP(),AO=200;function NO(t,e){var n=this.__data__;if(n instanceof EO){var i=n.__data__;if(!IO||i.length{"use strict";var qO=Ws(),OO=VS(),LO=QS(),BO=JS(),UO=YS(),$O=nP();function Uo(t){var e=this.__data__=new qO(t);this.size=e.size}Uo.prototype.clear=OO;Uo.prototype.delete=LO;Uo.prototype.get=BO;Uo.prototype.has=UO;Uo.prototype.set=$O;rP.exports=Uo});var sP=I(($H,oP)=>{"use strict";function WO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var jO=mi(),zO=function(){try{var t=jO(Object,"defineProperty");return t({},"",{}),t}catch{}}();aP.exports=zO});var dg=I((jH,lP)=>{"use strict";var uP=cP();function HO(t,e,n){e=="__proto__"&&uP?uP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}lP.exports=HO});var fg=I((zH,dP)=>{"use strict";var VO=dg(),GO=sg(),QO=Object.prototype,KO=QO.hasOwnProperty;function JO(t,e,n){var i=t[e];(!(KO.call(t,e)&&GO(i,n))||n===void 0&&!(e in t))&&VO(t,e,n)}dP.exports=JO});var Gs=I((HH,fP)=>{"use strict";var XO=fg(),YO=dg();function ZO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function eL(t,e){for(var n=-1,i=Array(t);++n{"use strict";function tL(t){return t!=null&&typeof t=="object"}pP.exports=tL});var bP=I((QH,mP)=>{"use strict";var nL=zs(),rL=$o(),iL="[object Arguments]";function oL(t){return rL(t)&&nL(t)==iL}mP.exports=oL});var wP=I((KH,yP)=>{"use strict";var _P=bP(),sL=$o(),vP=Object.prototype,aL=vP.hasOwnProperty,cL=vP.propertyIsEnumerable,uL=_P(function(){return arguments}())?_P:function(t){return sL(t)&&aL.call(t,"callee")&&!cL.call(t,"callee")};yP.exports=uL});var Bu=I((JH,SP)=>{"use strict";var lL=Array.isArray;SP.exports=lL});var PP=I((XH,xP)=>{"use strict";function dL(){return!1}xP.exports=dL});var hg=I((Qs,Wo)=>{"use strict";var fL=nr(),hL=PP(),TP=typeof Qs=="object"&&Qs&&!Qs.nodeType&&Qs,CP=TP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,gL=CP&&CP.exports===TP,kP=gL?fL.Buffer:void 0,pL=kP?kP.isBuffer:void 0,mL=pL||hL;Wo.exports=mL});var DP=I((YH,RP)=>{"use strict";var bL=9007199254740991,_L=/^(?:0|[1-9]\d*)$/;function vL(t,e){var n=typeof t;return e=e??bL,!!e&&(n=="number"||n!="symbol"&&_L.test(t))&&t>-1&&t%1==0&&t{"use strict";var yL=9007199254740991;function wL(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=yL}FP.exports=wL});var IP=I((eV,EP)=>{"use strict";var SL=zs(),xL=gg(),PL=$o(),CL="[object Arguments]",kL="[object Array]",TL="[object Boolean]",RL="[object Date]",DL="[object Error]",FL="[object Function]",EL="[object Map]",IL="[object Number]",ML="[object Object]",AL="[object RegExp]",NL="[object Set]",qL="[object String]",OL="[object WeakMap]",LL="[object ArrayBuffer]",BL="[object DataView]",UL="[object Float32Array]",$L="[object Float64Array]",WL="[object Int8Array]",jL="[object Int16Array]",zL="[object Int32Array]",HL="[object Uint8Array]",VL="[object Uint8ClampedArray]",GL="[object Uint16Array]",QL="[object Uint32Array]",lt={};lt[UL]=lt[$L]=lt[WL]=lt[jL]=lt[zL]=lt[HL]=lt[VL]=lt[GL]=lt[QL]=!0;lt[CL]=lt[kL]=lt[LL]=lt[TL]=lt[BL]=lt[RL]=lt[DL]=lt[FL]=lt[EL]=lt[IL]=lt[ML]=lt[AL]=lt[NL]=lt[qL]=lt[OL]=!1;function KL(t){return PL(t)&&xL(t.length)&&!!lt[SL(t)]}EP.exports=KL});var Uu=I((tV,MP)=>{"use strict";function JL(t){return function(e){return t(e)}}MP.exports=JL});var $u=I((Ks,jo)=>{"use strict";var XL=ag(),AP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,Js=AP&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,YL=Js&&Js.exports===AP,pg=YL&&XL.process,ZL=function(){try{var t=Js&&Js.require&&Js.require("util").types;return t||pg&&pg.binding&&pg.binding("util")}catch{}}();jo.exports=ZL});var LP=I((nV,OP)=>{"use strict";var eB=IP(),tB=Uu(),NP=$u(),qP=NP&&NP.isTypedArray,nB=qP?tB(qP):eB;OP.exports=nB});var mg=I((rV,BP)=>{"use strict";var rB=gP(),iB=wP(),oB=Bu(),sB=hg(),aB=DP(),cB=LP(),uB=Object.prototype,lB=uB.hasOwnProperty;function dB(t,e){var n=oB(t),i=!n&&iB(t),s=!n&&!i&&sB(t),c=!n&&!i&&!s&&cB(t),u=n||i||s||c,d=u?rB(t.length,String):[],f=d.length;for(var m in t)(e||lB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||aB(m,f)))&&d.push(m);return d}BP.exports=dB});var Wu=I((iV,UP)=>{"use strict";var fB=Object.prototype;function hB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||fB;return t===n}UP.exports=hB});var bg=I((oV,$P)=>{"use strict";function gB(t,e){return function(n){return t(e(n))}}$P.exports=gB});var jP=I((sV,WP)=>{"use strict";var pB=bg(),mB=pB(Object.keys,Object);WP.exports=mB});var HP=I((aV,zP)=>{"use strict";var bB=Wu(),_B=jP(),vB=Object.prototype,yB=vB.hasOwnProperty;function wB(t){if(!bB(t))return _B(t);var e=[];for(var n in Object(t))yB.call(t,n)&&n!="constructor"&&e.push(n);return e}zP.exports=wB});var _g=I((cV,VP)=>{"use strict";var SB=cg(),xB=gg();function PB(t){return t!=null&&xB(t.length)&&!SB(t)}VP.exports=PB});var ju=I((uV,GP)=>{"use strict";var CB=mg(),kB=HP(),TB=_g();function RB(t){return TB(t)?CB(t):kB(t)}GP.exports=RB});var KP=I((lV,QP)=>{"use strict";var DB=Gs(),FB=ju();function EB(t,e){return t&&DB(e,FB(e),t)}QP.exports=EB});var XP=I((dV,JP)=>{"use strict";function IB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}JP.exports=IB});var ZP=I((fV,YP)=>{"use strict";var MB=Oo(),AB=Wu(),NB=XP(),qB=Object.prototype,OB=qB.hasOwnProperty;function LB(t){if(!MB(t))return NB(t);var e=AB(t),n=[];for(var i in t)i=="constructor"&&(e||!OB.call(t,i))||n.push(i);return n}YP.exports=LB});var zu=I((hV,eC)=>{"use strict";var BB=mg(),UB=ZP(),$B=_g();function WB(t){return $B(t)?BB(t,!0):UB(t)}eC.exports=WB});var nC=I((gV,tC)=>{"use strict";var jB=Gs(),zB=zu();function HB(t,e){return t&&jB(e,zB(e),t)}tC.exports=HB});var aC=I((Xs,zo)=>{"use strict";var VB=nr(),sC=typeof Xs=="object"&&Xs&&!Xs.nodeType&&Xs,rC=sC&&typeof zo=="object"&&zo&&!zo.nodeType&&zo,GB=rC&&rC.exports===sC,iC=GB?VB.Buffer:void 0,oC=iC?iC.allocUnsafe:void 0;function QB(t,e){if(e)return t.slice();var n=t.length,i=oC?oC(n):new t.constructor(n);return t.copy(i),i}zo.exports=QB});var uC=I((pV,cC)=>{"use strict";function KB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function JB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function XB(){return[]}fC.exports=XB});var Hu=I((_V,gC)=>{"use strict";var YB=dC(),ZB=vg(),eU=Object.prototype,tU=eU.propertyIsEnumerable,hC=Object.getOwnPropertySymbols,nU=hC?function(t){return t==null?[]:(t=Object(t),YB(hC(t),function(e){return tU.call(t,e)}))}:ZB;gC.exports=nU});var mC=I((vV,pC)=>{"use strict";var rU=Gs(),iU=Hu();function oU(t,e){return rU(t,iU(t),e)}pC.exports=oU});var yg=I((yV,bC)=>{"use strict";function sU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var aU=bg(),cU=aU(Object.getPrototypeOf,Object);_C.exports=cU});var Sg=I((SV,vC)=>{"use strict";var uU=yg(),lU=wg(),dU=Hu(),fU=vg(),hU=Object.getOwnPropertySymbols,gU=hU?function(t){for(var e=[];t;)uU(e,dU(t)),t=lU(t);return e}:fU;vC.exports=gU});var wC=I((xV,yC)=>{"use strict";var pU=Gs(),mU=Sg();function bU(t,e){return pU(t,mU(t),e)}yC.exports=bU});var xg=I((PV,SC)=>{"use strict";var _U=yg(),vU=Bu();function yU(t,e,n){var i=e(t);return vU(t)?i:_U(i,n(t))}SC.exports=yU});var PC=I((CV,xC)=>{"use strict";var wU=xg(),SU=Hu(),xU=ju();function PU(t){return wU(t,xU,SU)}xC.exports=PU});var kC=I((kV,CC)=>{"use strict";var CU=xg(),kU=Sg(),TU=zu();function RU(t){return CU(t,TU,kU)}CC.exports=RU});var RC=I((TV,TC)=>{"use strict";var DU=mi(),FU=nr(),EU=DU(FU,"DataView");TC.exports=EU});var FC=I((RV,DC)=>{"use strict";var IU=mi(),MU=nr(),AU=IU(MU,"Promise");DC.exports=AU});var IC=I((DV,EC)=>{"use strict";var NU=mi(),qU=nr(),OU=NU(qU,"Set");EC.exports=OU});var AC=I((FV,MC)=>{"use strict";var LU=mi(),BU=nr(),UU=LU(BU,"WeakMap");MC.exports=UU});var Vu=I((EV,$C)=>{"use strict";var Pg=RC(),Cg=Lu(),kg=FC(),Tg=IC(),Rg=AC(),UC=zs(),Ho=lg(),NC="[object Map]",$U="[object Object]",qC="[object Promise]",OC="[object Set]",LC="[object WeakMap]",BC="[object DataView]",WU=Ho(Pg),jU=Ho(Cg),zU=Ho(kg),HU=Ho(Tg),VU=Ho(Rg),Hi=UC;(Pg&&Hi(new Pg(new ArrayBuffer(1)))!=BC||Cg&&Hi(new Cg)!=NC||kg&&Hi(kg.resolve())!=qC||Tg&&Hi(new Tg)!=OC||Rg&&Hi(new Rg)!=LC)&&(Hi=function(t){var e=UC(t),n=e==$U?t.constructor:void 0,i=n?Ho(n):"";if(i)switch(i){case WU:return BC;case jU:return NC;case zU:return qC;case HU:return OC;case VU:return LC}return e});$C.exports=Hi});var jC=I((IV,WC)=>{"use strict";var GU=Object.prototype,QU=GU.hasOwnProperty;function KU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&QU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}WC.exports=KU});var HC=I((MV,zC)=>{"use strict";var JU=nr(),XU=JU.Uint8Array;zC.exports=XU});var Gu=I((AV,GC)=>{"use strict";var VC=HC();function YU(t){var e=new t.constructor(t.byteLength);return new VC(e).set(new VC(t)),e}GC.exports=YU});var KC=I((NV,QC)=>{"use strict";var ZU=Gu();function e$(t,e){var n=e?ZU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}QC.exports=e$});var XC=I((qV,JC)=>{"use strict";var t$=/\w*$/;function n$(t){var e=new t.constructor(t.source,t$.exec(t));return e.lastIndex=t.lastIndex,e}JC.exports=n$});var nk=I((OV,tk)=>{"use strict";var YC=Ou(),ZC=YC?YC.prototype:void 0,ek=ZC?ZC.valueOf:void 0;function r$(t){return ek?Object(ek.call(t)):{}}tk.exports=r$});var ik=I((LV,rk)=>{"use strict";var i$=Gu();function o$(t,e){var n=e?i$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}rk.exports=o$});var sk=I((BV,ok)=>{"use strict";var s$=Gu(),a$=KC(),c$=XC(),u$=nk(),l$=ik(),d$="[object Boolean]",f$="[object Date]",h$="[object Map]",g$="[object Number]",p$="[object RegExp]",m$="[object Set]",b$="[object String]",_$="[object Symbol]",v$="[object ArrayBuffer]",y$="[object DataView]",w$="[object Float32Array]",S$="[object Float64Array]",x$="[object Int8Array]",P$="[object Int16Array]",C$="[object Int32Array]",k$="[object Uint8Array]",T$="[object Uint8ClampedArray]",R$="[object Uint16Array]",D$="[object Uint32Array]";function F$(t,e,n){var i=t.constructor;switch(e){case v$:return s$(t);case d$:case f$:return new i(+t);case y$:return a$(t,n);case w$:case S$:case x$:case P$:case C$:case k$:case T$:case R$:case D$:return l$(t,n);case h$:return new i;case g$:case b$:return new i(t);case p$:return c$(t);case m$:return new i;case _$:return u$(t)}}ok.exports=F$});var uk=I((UV,ck)=>{"use strict";var E$=Oo(),ak=Object.create,I$=function(){function t(){}return function(e){if(!E$(e))return{};if(ak)return ak(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();ck.exports=I$});var dk=I(($V,lk)=>{"use strict";var M$=uk(),A$=wg(),N$=Wu();function q$(t){return typeof t.constructor=="function"&&!N$(t)?M$(A$(t)):{}}lk.exports=q$});var hk=I((WV,fk)=>{"use strict";var O$=Vu(),L$=$o(),B$="[object Map]";function U$(t){return L$(t)&&O$(t)==B$}fk.exports=U$});var bk=I((jV,mk)=>{"use strict";var $$=hk(),W$=Uu(),gk=$u(),pk=gk&&gk.isMap,j$=pk?W$(pk):$$;mk.exports=j$});var vk=I((zV,_k)=>{"use strict";var z$=Vu(),H$=$o(),V$="[object Set]";function G$(t){return H$(t)&&z$(t)==V$}_k.exports=G$});var xk=I((HV,Sk)=>{"use strict";var Q$=vk(),K$=Uu(),yk=$u(),wk=yk&&yk.isSet,J$=wk?K$(wk):Q$;Sk.exports=J$});var Rk=I((VV,Tk)=>{"use strict";var X$=iP(),Y$=sP(),Z$=fg(),eW=KP(),tW=nC(),nW=aC(),rW=uC(),iW=mC(),oW=wC(),sW=PC(),aW=kC(),cW=Vu(),uW=jC(),lW=sk(),dW=dk(),fW=Bu(),hW=hg(),gW=bk(),pW=Oo(),mW=xk(),bW=ju(),_W=zu(),vW=1,yW=2,wW=4,Pk="[object Arguments]",SW="[object Array]",xW="[object Boolean]",PW="[object Date]",CW="[object Error]",Ck="[object Function]",kW="[object GeneratorFunction]",TW="[object Map]",RW="[object Number]",kk="[object Object]",DW="[object RegExp]",FW="[object Set]",EW="[object String]",IW="[object Symbol]",MW="[object WeakMap]",AW="[object ArrayBuffer]",NW="[object DataView]",qW="[object Float32Array]",OW="[object Float64Array]",LW="[object Int8Array]",BW="[object Int16Array]",UW="[object Int32Array]",$W="[object Uint8Array]",WW="[object Uint8ClampedArray]",jW="[object Uint16Array]",zW="[object Uint32Array]",it={};it[Pk]=it[SW]=it[AW]=it[NW]=it[xW]=it[PW]=it[qW]=it[OW]=it[LW]=it[BW]=it[UW]=it[TW]=it[RW]=it[kk]=it[DW]=it[FW]=it[EW]=it[IW]=it[$W]=it[WW]=it[jW]=it[zW]=!0;it[CW]=it[Ck]=it[MW]=!1;function Qu(t,e,n,i,s,c){var u,d=e&vW,f=e&yW,m=e&wW;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!pW(t))return t;var v=fW(t);if(v){if(u=uW(t),!d)return rW(t,u)}else{var x=cW(t),D=x==Ck||x==kW;if(hW(t))return nW(t,d);if(x==kk||x==Pk||D&&!s){if(u=f||D?{}:dW(t),!d)return f?oW(t,tW(u,t)):iW(t,eW(u,t))}else{if(!it[x])return s?t:{};u=lW(t,x,d)}}c||(c=new X$);var N=c.get(t);if(N)return N;c.set(t,u),mW(t)?t.forEach(function(B){u.add(Qu(B,e,n,B,t,c))}):gW(t)&&t.forEach(function(B,K){u.set(K,Qu(B,e,n,K,t,c))});var A=m?f?aW:sW:f?_W:bW,L=v?void 0:A(t);return Y$(L||t,function(B,K){L&&(K=B,B=t[K]),Z$(u,K,Qu(B,e,n,K,t,c))}),u}Tk.exports=Qu});var Fk=I((GV,Dk)=>{"use strict";var HW=Rk(),VW=1,GW=4;function QW(t){return HW(t,VW|GW)}Dk.exports=QW});var Ik=I((Ek,Ku)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Ku=="object"&&Ku.exports?Ku.exports=e():t.log=e()})(Ek,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+xe)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(xe,X){return P=Je(xe),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(xe){F=Je(xe),ve()||B.setLevel(xe,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(xe){B.setLevel(B.levels.TRACE,xe)},B.disableAll=function(xe){B.setLevel(B.levels.SILENT,xe)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var xe in s)s[xe].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Go=I((Vo,ta)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,v=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",xe=800,X=16,z=1,se=2,re=3,De=1/0,pe=9007199254740991,me=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,wr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",lr="[object Array]",Pi="[object AsyncFunction]",dr="[object Boolean]",fr="[object Date]",Ki="[object DOMException]",Sr="[object Error]",xr="[object Function]",Pr="[object GeneratorFunction]",mt="[object Map]",hr="[object Number]",Ji="[object Null]",Bt="[object Object]",Ci="[object Promise]",Hr="[object Proxy]",gr="[object RegExp]",xt="[object Set]",sn="[object String]",Cr="[object Symbol]",Xi="[object Undefined]",jt="[object WeakMap]",ki="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",tt=/\b__p \+= '';/g,Fe=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(at.source),Yi=/<%-([\s\S]+?)%>/g,xa=/<%([\s\S]+?)%>/g,us=/<%=([\s\S]+?)%>/g,Pa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ca=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ft=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Vr=/^0o[0-7]+$/i,Zi=/^(?:0|[1-9]\d*)$/,ka=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ta=/($^)/,jT=/['\n\r\u2028\u2029\\]/g,Ra="\\ud800-\\udfff",zT="\\u0300-\\u036f",HT="\\ufe20-\\ufe2f",VT="\\u20d0-\\u20ff",Fp=zT+HT+VT,Ep="\\u2700-\\u27bf",Ip="a-z\\xdf-\\xf6\\xf8-\\xff",GT="\\xac\\xb1\\xd7\\xf7",QT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",KT="\\u2000-\\u206f",JT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Mp="A-Z\\xc0-\\xd6\\xd8-\\xde",Ap="\\ufe0e\\ufe0f",Np=GT+QT+KT+JT,Vl="['\u2019]",XT="["+Ra+"]",qp="["+Np+"]",Da="["+Fp+"]",Op="\\d+",YT="["+Ep+"]",Lp="["+Ip+"]",Bp="[^"+Ra+Np+Op+Ep+Ip+Mp+"]",Gl="\\ud83c[\\udffb-\\udfff]",ZT="(?:"+Da+"|"+Gl+")",Up="[^"+Ra+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",eo="["+Mp+"]",$p="\\u200d",Wp="(?:"+Lp+"|"+Bp+")",eR="(?:"+eo+"|"+Bp+")",jp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",zp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",Hp=ZT+"?",Vp="["+Ap+"]?",tR="(?:"+$p+"(?:"+[Up,Ql,Kl].join("|")+")"+Vp+Hp+")*",nR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Gp=Vp+Hp+tR,iR="(?:"+[YT,Ql,Kl].join("|")+")"+Gp,oR="(?:"+[Up+Da+"?",Da,Ql,Kl,XT].join("|")+")",sR=RegExp(Vl,"g"),aR=RegExp(Da,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+oR+Gp,"g"),cR=RegExp([eo+"?"+Lp+"+"+jp+"(?="+[qp,eo,"$"].join("|")+")",eR+"+"+zp+"(?="+[qp,eo+Wp,"$"].join("|")+")",eo+"?"+Wp+"+"+jp,eo+"+"+zp,rR,nR,Op,iR].join("|"),"g"),uR=RegExp("["+$p+Ra+Fp+Ap+"]"),lR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,dR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],fR=-1,ct={};ct[kr]=ct[vn]=ct[C]=ct[H]=ct[Z]=ct[ie]=ct[Ue]=ct[Le]=ct[Ge]=!0,ct[Vn]=ct[lr]=ct[Gn]=ct[dr]=ct[_n]=ct[fr]=ct[Sr]=ct[xr]=ct[mt]=ct[hr]=ct[Bt]=ct[gr]=ct[xt]=ct[sn]=ct[jt]=!1;var nt={};nt[Vn]=nt[lr]=nt[Gn]=nt[_n]=nt[dr]=nt[fr]=nt[kr]=nt[vn]=nt[C]=nt[H]=nt[Z]=nt[mt]=nt[hr]=nt[Bt]=nt[gr]=nt[xt]=nt[sn]=nt[Cr]=nt[ie]=nt[Ue]=nt[Le]=nt[Ge]=!0,nt[Sr]=nt[xr]=nt[jt]=!1;var hR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},gR={"&":"&","<":"<",">":">",'"':""","'":"'"},pR={"&":"&","<":"<",">":">",""":'"',"'":"'"},mR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},bR=parseFloat,_R=parseInt,Qp=typeof global=="object"&&global&&global.Object===Object&&global,vR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Qp||vR||Function("return this")(),Xl=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,Ti=Xl&&typeof ta=="object"&&ta&&!ta.nodeType&&ta,Kp=Ti&&Ti.exports===Xl,Yl=Kp&&Qp.process,En=function(){try{var E=Ti&&Ti.require&&Ti.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Jp=En&&En.isArrayBuffer,Xp=En&&En.isDate,Yp=En&&En.isMap,Zp=En&&En.isRegExp,em=En&&En.isSet,tm=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function yR(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function um(E,W){for(var $=E.length;$--&&to(W,E[$],0)>-1;);return $}function DR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var FR=rd(hR),ER=rd(gR);function IR(E){return"\\"+mR[E]}function MR(E,W){return E==null?t:E[W]}function no(E){return uR.test(E)}function AR(E){return lR.test(E)}function NR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function lm(E,W){return function($){return E(W($))}}function Kr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function SD(r,o){var a=this.__data__,l=Ga(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}Tr.prototype.clear=_D,Tr.prototype.delete=vD,Tr.prototype.get=yD,Tr.prototype.has=wD,Tr.prototype.set=SD;function Rr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&v,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=Pe(r);if(Q){if(S=k0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==xr||J==Pr;if(ni(r))return Vm(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:db(r),!T)return M?p0(r,LD(S,r)):g0(r,Sm(S,r))}else{if(!nt[J])return h?r:{};S=T0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),Ub(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):Lb(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,Re=Q?t:de(r);return In(Re||r,function(fe,Me){Re&&(Me=fe,fe=r[Me]),ms(S,Me,Nn(fe,o,a,Me,r,_))}),S}function BD(r){var o=Ot(r);return function(a){return xm(a,r,o)}}function xm(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function Pm(r,o,a){if(typeof r!="function")throw new Mn(s);return xs(function(){r.apply(t,a)},o)}function bs(r,o,a,l){var h=-1,_=Fa,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=ht(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ls,S=!1,o=new Fi(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:ke(l),l<0&&(l+=h),l=a>l?0:Wb(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Qr(h,T):l||(h[h.length]=T)}return h}var gd=Ym(),Tm=Ym(!0);function pr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&Tm(r,o,Ot)}function Ka(r,o){return Gr(o,function(a){return Mr(r[a])})}function Ii(r,o){o=ei(o,r);for(var a=0,l=o.length;r!=null&&ao}function WD(r,o){return r!=null&&Ke.call(r,o)}function jD(r,o){return r!=null&&o in Ye(r)}function zD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Fi(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&Ua.call(T,M,1),Ua.call(r,M,1);return r}function Lm(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Ir(h)?Ua.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+ja(_m()*(o-r+1))}function r0(r,o,a,l){for(var h=-1,_=At(Wa((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>pe)return a;do o%2&&(a+=r),o=ja(o/2),o&&(r+=r);while(o);return a}function Ee(r,o){return Ud(gb(r,o,dn),r+"")}function i0(r){return wm(ho(r))}function o0(r,o){var a=ho(r);return sc(a,Ei(o,0,a.length))}function ys(r,o,a,l){if(!bt(r))return r;o=ei(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=br(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Ir(o[h+1])?[]:{})}ms(T,M,V),T=T[M]}return r}var Bm=za?function(r,o){return za.set(r,o),r}:dn,s0=$a?function(r,o){return $a(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function a0(r){return sc(ho(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:v0(r);if(V)return Ia(V);S=!1,h=ls,M=new Fi}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=ei(o,r),r=pb(r,o),r==null||delete r[br(On(o))]}function Wm(r,o,a,l){return ys(r,o,a(Ii(r,o)),l)}function Ya(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var Hm=JR||function(r){return qt.clearTimeout(r)};function Vm(r,o){if(o)return r.slice();var a=r.length,l=hm?hm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new La(o).set(new La(r)),o}function l0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function d0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function f0(r){return ps?Ye(ps.call(r)):{}}function Gm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Qm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Km(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function tb(r){return Er(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&ic(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Fi:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(y,`{ /* [wrapped with `+o+`] */ -`)}function D0(r){return xe(r)||Ni(r)||!!(pm&&r&&r[pm])}function Ir(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Zi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=Se)return arguments[0]}else o=0;return r.apply(t,arguments)}}function sc(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,Cb(r,a)});function kb(r){var o=b(r);return o.__chain__=!0,o}function UF(r,o){return o(r),r}function ac(r,o){return o(r)}var $F=Er(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Ir(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:ac,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function WF(){return kb(this)}function jF(){return new An(this.value(),this.__chain__)}function zF(){this.__values__===t&&(this.__values__=Ub(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function HF(){return this}function VF(r){for(var o,a=this;a instanceof Va;){var l=vb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function GF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:ac,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function QF(){return Wm(this.__wrapped__,this.__actions__)}var KF=Za(function(r,o,a){Ke.call(r,a)?++r[a]:Dr(r,a,1)});function JF(r,o,a){var l=xe(r)?tm:UD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function XF(r,o){var a=xe(r)?Gr:Cm;return a(r,le(o,3))}var YF=Zm(yb),ZF=Zm(wb);function eE(r,o){return Ut(cc(r,o),1)}function tE(r,o){return Ut(cc(r,o),Re)}function nE(r,o,a){return a=a===t?1:Ce(a),Ut(cc(r,o),a)}function Tb(r,o){var a=xe(r)?In:Yr;return a(r,le(o,3))}function Rb(r,o){var a=xe(r)?wR:Pm;return a(r,le(o,3))}var rE=Za(function(r,o,a){Ke.call(r,a)?r[a].push(o):Dr(r,a,[o])});function iE(r,o,a,l){r=un(r)?r:ho(r),a=a&&!l?Ce(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),hc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&to(r,o,a)>-1}var oE=Fe(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Yr(r,function(S){_[++l]=h?wn(o,S,a):vs(S,o,a)}),_}),sE=Za(function(r,o,a){Dr(r,a,o)});function cc(r,o){var a=xe(r)?ht:Em;return a(r,le(o,3))}function aE(r,o,a,l){return r==null?[]:(xe(o)||(o=o==null?[]:[o]),a=l?t:a,xe(a)||(a=a==null?[]:[a]),Nm(r,o,a))}var cE=Za(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function uE(r,o,a){var l=xe(r)?ed:om,h=arguments.length<3;return l(r,le(o,4),a,h,Yr)}function lE(r,o,a){var l=xe(r)?SR:om,h=arguments.length<3;return l(r,le(o,4),a,h,Pm)}function dE(r,o){var a=xe(r)?Gr:Cm;return a(r,dc(le(o,3)))}function fE(r){var o=xe(r)?ym:i0;return o(r)}function hE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=Ce(o);var l=xe(r)?ND:o0;return l(r,o)}function gE(r){var o=xe(r)?qD:a0;return o(r)}function pE(r){if(r==null)return 0;if(un(r))return hc(r)?ro(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function mE(r,o,a){var l=xe(r)?td:c0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var bE=Fe(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),Nm(r,Ut(o,1),[])}),uc=XR||function(){return qt.Date.now()};function _E(r,o){if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){if(--r<1)return o.apply(this,arguments)}}function Db(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Fr(r,te,t,t,t,t,o)}function Fb(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=Ce(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=Fe(function(r,o,a){var l=A;if(a.length){var h=Kr(a,lo(jd));l|=P}return Fr(r,l,o,a,h)}),Eb=Fe(function(r,o,a){var l=A|L;if(a.length){var h=Kr(a,lo(Eb));l|=P}return Fr(o,l,r,a,h)});function Ib(r,o,a){o=a?t:o;var l=Fr(r,K,t,t,t,t,t,o);return l.placeholder=Ib.placeholder,l}function Mb(r,o,a){o=a?t:o;var l=Fr(r,F,t,t,t,t,t,o);return l.placeholder=Mb.placeholder,l}function Ab(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Nr=h;return l=h=t,V=Ct,S=r.apply(Nr,Yn),S}function de(Ct){return V=Ct,T=Ps(Me,o),Q?ae(Ct):S}function ke(Ct){var Yn=Ct-M,Nr=Ct-V,Zb=o-Yn;return J?zt(Zb,_-Nr):Zb}function fe(Ct){var Yn=Ct-M,Nr=Ct-V;return M===t||Yn>=o||Yn<0||J&&Nr>=_}function Me(){var Ct=uc();if(fe(Ct))return qe(Ct);T=Ps(Me,ke(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&zm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(uc())}function kn(){var Ct=uc(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return zm(T),T=Ps(Me,o),ae(M)}return T===t&&(T=Ps(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var vE=Fe(function(r,o){return xm(r,1,o)}),yE=Fe(function(r,o,a){return xm(r,Ln(o)||0,a)});function wE(r){return Fr(r,Be)}function lc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(lc.Cache||Rr),a}lc.Cache=Rr;function dc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function SE(r){return Fb(2,r)}var xE=u0(function(r,o){o=o.length==1&&xe(o[0])?ht(o[0],Sn(le())):ht(Ut(o,1),Sn(le()));var a=o.length;return Fe(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=Fe(function(r,o){var a=Kr(o,lo(zd));return Fr(r,P,t,o,a)}),Nb=Fe(function(r,o){var a=Kr(o,lo(Nb));return Fr(r,U,t,o,a)}),PE=Er(function(r,o){return Fr(r,ve,t,t,t,o)});function CE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:Ce(o),Fe(r,o)}function kE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(Ce(o),0),Fe(function(a){var l=a[o],h=ti(a,0,o);return l&&Qr(h,l),wn(r,this,h)})}function TE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Ab(r,o,{leading:l,maxWait:o,trailing:h})}function RE(r){return Db(r,1)}function DE(r,o){return zd(Rd(o),r)}function FE(){if(!arguments.length)return[];var r=arguments[0];return xe(r)?r:[r]}function EE(r){return Nn(r,x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function ME(r){return Nn(r,m|x)}function AE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function NE(r,o){return o==null||Sm(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var qE=rc(md),OE=rc(function(r,o){return r>=o}),Ni=Rm(function(){return arguments}())?Rm:function(r){return yt(r)&&Ke.call(r,"callee")&&!gm.call(r,"callee")},xe=$.isArray,LE=Kp?Sn(Kp):VD;function un(r){return r!=null&&fc(r.length)&&!Mr(r)}function Pt(r){return yt(r)&&un(r)}function BE(r){return r===!0||r===!1||yt(r)&&Zt(r)==dr}var ni=ZR||tf,UE=Jp?Sn(Jp):GD;function $E(r){return yt(r)&&r.nodeType===1&&!Cs(r)}function WE(r){if(r==null)return!0;if(un(r)&&(xe(r)||typeof r=="string"||typeof r.splice=="function"||ni(r)||fo(r)||Ni(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(xs(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function jE(r,o){return ys(r,o)}function zE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?ys(r,o,t,a):!!l}function Hd(r){if(!yt(r))return!1;var o=Zt(r);return o==Sr||o==Ki||typeof r.message=="string"&&typeof r.name=="string"&&!Cs(r)}function HE(r){return typeof r=="number"&&mm(r)}function Mr(r){if(!bt(r))return!1;var o=Zt(r);return o==xr||o==Pr||o==Pi||o==Hr}function qb(r){return typeof r=="number"&&r==Ce(r)}function fc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function yt(r){return r!=null&&typeof r=="object"}var Ob=Xp?Sn(Xp):KD;function VE(r,o){return r===o||_d(r,o,Nd(o))}function GE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function QE(r){return Lb(r)&&r!=+r}function KE(r){if(I0(r))throw new ye(i);return Dm(r)}function JE(r){return r===null}function XE(r){return r==null}function Lb(r){return typeof r=="number"||yt(r)&&Zt(r)==hr}function Cs(r){if(!yt(r)||Zt(r)!=Bt)return!1;var o=Ba(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Na.call(a)==GR}var Vd=Yp?Sn(Yp):JD;function YE(r){return qb(r)&&r>=-ge&&r<=ge}var Bb=Zp?Sn(Zp):XD;function hc(r){return typeof r=="string"||!xe(r)&&yt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||yt(r)&&Zt(r)==Cr}var fo=em?Sn(em):YD;function ZE(r){return r===t}function eI(r){return yt(r)&&Ht(r)==jt}function tI(r){return yt(r)&&Zt(r)==ki}var nI=rc(yd),rI=rc(function(r,o){return r<=o});function Ub(r){if(!r)return[];if(un(r))return hc(r)?Kn(r):cn(r);if(fs&&r[fs])return NR(r[fs]());var o=Ht(r),a=o==mt?ad:o==xt?Ia:ho;return a(r)}function Ar(r){if(!r)return r===0?r:0;if(r=Ln(r),r===Re||r===-Re){var o=r<0?-1:1;return o*me}return r===r?r:0}function Ce(r){var o=Ar(r),a=o%1;return o===o?a?o-a:o:0}function $b(r){return r?Ei(Ce(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=sm(r);var a=Qn.test(r);return a||Vr.test(r)?_R(r.slice(2),a?2:8):yn.test(r)?St:+r}function Wb(r){return mr(r,ln(r))}function iI(r){return r?Ei(Ce(r),-ge,ge):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var oI=co(function(r,o){if(xs(o)||un(o)){mr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&bs(r,a,o[a])}),jb=co(function(r,o){mr(o,ln(o),r)}),gc=co(function(r,o,a,l){mr(o,ln(o),r,l)}),sI=co(function(r,o,a,l){mr(o,Ot(o),r,l)}),aI=Er(hd);function cI(r,o){var a=ao(r);return o==null?a:wm(a,o)}var uI=Fe(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),mr(r,Md(r),a),l&&(a=Nn(a,m|v|x,y0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function TI(r,o){return Hb(r,dc(le(o)))}var RI=Er(function(r,o){return r==null?{}:t0(r,o)});function Hb(r,o){if(r==null)return{};var a=ht(Md(r),function(l){return[l]});return o=le(o),qm(r,a,function(l,h){return o(l,h[0])})}function DI(r,o,a){o=ei(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=bm();return zt(r+h*(o-r+bR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var UI=uo(function(r,o,a){return o=o.toLowerCase(),r+(a?Qb(o):o)});function Qb(r){return Kd(Ve(r).toLowerCase())}function Kb(r){return r=Ve(r),r&&r.replace(ka,FR).replace(aR,"")}function $I(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Ei(Ce(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function WI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(at,ER):r}function jI(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var zI=uo(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),HI=uo(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),VI=Ym("toLowerCase");function GI(r,o,a){r=Ve(r),o=Ce(o);var l=o?ro(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return nc(ja(h),a)+r+nc(Wa(h),a)}function QI(r,o,a){r=Ve(r),o=Ce(o);var l=o?ro(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&no(r))?ti(Kn(r),0,a):r.split(o,a)):[]}var tM=uo(function(r,o,a){return r+(a?" ":"")+Kd(o)});function nM(r,o,a){return r=Ve(r),a=a==null?0:Ei(Ce(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function rM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=gc({},o,l,ob);var h=gc({},o.imports,l.imports,ob),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ta,J="__p += '",ne=cd((o.escape||Ta).source+"|"+Q.source+"|"+(Q===ls?Xe:Ta).source+"|"+(o.evaluate||Ta).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++fR+"]")+` +`)}function D0(r){return Pe(r)||Ni(r)||!!(mm&&r&&r[mm])}function Ir(r,o){var a=typeof r;return o=o??pe,!!o&&(a=="number"||a!="symbol"&&Zi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=xe)return arguments[0]}else o=0;return r.apply(t,arguments)}}function sc(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,kb(r,a)});function Tb(r){var o=b(r);return o.__chain__=!0,o}function UF(r,o){return o(r),r}function ac(r,o){return o(r)}var $F=Er(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Ir(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:ac,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function WF(){return Tb(this)}function jF(){return new An(this.value(),this.__chain__)}function zF(){this.__values__===t&&(this.__values__=$b(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function HF(){return this}function VF(r){for(var o,a=this;a instanceof Va;){var l=yb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function GF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:ac,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function QF(){return jm(this.__wrapped__,this.__actions__)}var KF=Za(function(r,o,a){Ke.call(r,a)?++r[a]:Dr(r,a,1)});function JF(r,o,a){var l=Pe(r)?nm:UD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function XF(r,o){var a=Pe(r)?Gr:km;return a(r,le(o,3))}var YF=eb(wb),ZF=eb(Sb);function eE(r,o){return Ut(cc(r,o),1)}function tE(r,o){return Ut(cc(r,o),De)}function nE(r,o,a){return a=a===t?1:ke(a),Ut(cc(r,o),a)}function Rb(r,o){var a=Pe(r)?In:Yr;return a(r,le(o,3))}function Db(r,o){var a=Pe(r)?wR:Cm;return a(r,le(o,3))}var rE=Za(function(r,o,a){Ke.call(r,a)?r[a].push(o):Dr(r,a,[o])});function iE(r,o,a,l){r=un(r)?r:ho(r),a=a&&!l?ke(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),hc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&to(r,o,a)>-1}var oE=Ee(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Yr(r,function(S){_[++l]=h?wn(o,S,a):_s(S,o,a)}),_}),sE=Za(function(r,o,a){Dr(r,a,o)});function cc(r,o){var a=Pe(r)?ht:Im;return a(r,le(o,3))}function aE(r,o,a,l){return r==null?[]:(Pe(o)||(o=o==null?[]:[o]),a=l?t:a,Pe(a)||(a=a==null?[]:[a]),qm(r,o,a))}var cE=Za(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function uE(r,o,a){var l=Pe(r)?ed:sm,h=arguments.length<3;return l(r,le(o,4),a,h,Yr)}function lE(r,o,a){var l=Pe(r)?SR:sm,h=arguments.length<3;return l(r,le(o,4),a,h,Cm)}function dE(r,o){var a=Pe(r)?Gr:km;return a(r,dc(le(o,3)))}function fE(r){var o=Pe(r)?wm:i0;return o(r)}function hE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=ke(o);var l=Pe(r)?ND:o0;return l(r,o)}function gE(r){var o=Pe(r)?qD:a0;return o(r)}function pE(r){if(r==null)return 0;if(un(r))return hc(r)?ro(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function mE(r,o,a){var l=Pe(r)?td:c0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var bE=Ee(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),qm(r,Ut(o,1),[])}),uc=XR||function(){return qt.Date.now()};function _E(r,o){if(typeof o!="function")throw new Mn(s);return r=ke(r),function(){if(--r<1)return o.apply(this,arguments)}}function Fb(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Fr(r,te,t,t,t,t,o)}function Eb(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=ke(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=Ee(function(r,o,a){var l=A;if(a.length){var h=Kr(a,lo(jd));l|=P}return Fr(r,l,o,a,h)}),Ib=Ee(function(r,o,a){var l=A|L;if(a.length){var h=Kr(a,lo(Ib));l|=P}return Fr(o,l,r,a,h)});function Mb(r,o,a){o=a?t:o;var l=Fr(r,K,t,t,t,t,t,o);return l.placeholder=Mb.placeholder,l}function Ab(r,o,a){o=a?t:o;var l=Fr(r,F,t,t,t,t,t,o);return l.placeholder=Ab.placeholder,l}function Nb(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Nr=h;return l=h=t,V=Ct,S=r.apply(Nr,Yn),S}function de(Ct){return V=Ct,T=xs(Me,o),Q?ae(Ct):S}function Re(Ct){var Yn=Ct-M,Nr=Ct-V,e_=o-Yn;return J?zt(e_,_-Nr):e_}function fe(Ct){var Yn=Ct-M,Nr=Ct-V;return M===t||Yn>=o||Yn<0||J&&Nr>=_}function Me(){var Ct=uc();if(fe(Ct))return qe(Ct);T=xs(Me,Re(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&Hm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(uc())}function kn(){var Ct=uc(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return Hm(T),T=xs(Me,o),ae(M)}return T===t&&(T=xs(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var vE=Ee(function(r,o){return Pm(r,1,o)}),yE=Ee(function(r,o,a){return Pm(r,Ln(o)||0,a)});function wE(r){return Fr(r,Be)}function lc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(lc.Cache||Rr),a}lc.Cache=Rr;function dc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function SE(r){return Eb(2,r)}var xE=u0(function(r,o){o=o.length==1&&Pe(o[0])?ht(o[0],Sn(le())):ht(Ut(o,1),Sn(le()));var a=o.length;return Ee(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=Ee(function(r,o){var a=Kr(o,lo(zd));return Fr(r,P,t,o,a)}),qb=Ee(function(r,o){var a=Kr(o,lo(qb));return Fr(r,U,t,o,a)}),PE=Er(function(r,o){return Fr(r,ve,t,t,t,o)});function CE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:ke(o),Ee(r,o)}function kE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(ke(o),0),Ee(function(a){var l=a[o],h=ti(a,0,o);return l&&Qr(h,l),wn(r,this,h)})}function TE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Nb(r,o,{leading:l,maxWait:o,trailing:h})}function RE(r){return Fb(r,1)}function DE(r,o){return zd(Rd(o),r)}function FE(){if(!arguments.length)return[];var r=arguments[0];return Pe(r)?r:[r]}function EE(r){return Nn(r,x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function ME(r){return Nn(r,m|x)}function AE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function NE(r,o){return o==null||xm(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var qE=rc(md),OE=rc(function(r,o){return r>=o}),Ni=Dm(function(){return arguments}())?Dm:function(r){return yt(r)&&Ke.call(r,"callee")&&!pm.call(r,"callee")},Pe=$.isArray,LE=Jp?Sn(Jp):VD;function un(r){return r!=null&&fc(r.length)&&!Mr(r)}function Pt(r){return yt(r)&&un(r)}function BE(r){return r===!0||r===!1||yt(r)&&Zt(r)==dr}var ni=ZR||tf,UE=Xp?Sn(Xp):GD;function $E(r){return yt(r)&&r.nodeType===1&&!Ps(r)}function WE(r){if(r==null)return!0;if(un(r)&&(Pe(r)||typeof r=="string"||typeof r.splice=="function"||ni(r)||fo(r)||Ni(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(Ss(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function jE(r,o){return vs(r,o)}function zE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?vs(r,o,t,a):!!l}function Hd(r){if(!yt(r))return!1;var o=Zt(r);return o==Sr||o==Ki||typeof r.message=="string"&&typeof r.name=="string"&&!Ps(r)}function HE(r){return typeof r=="number"&&bm(r)}function Mr(r){if(!bt(r))return!1;var o=Zt(r);return o==xr||o==Pr||o==Pi||o==Hr}function Ob(r){return typeof r=="number"&&r==ke(r)}function fc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=pe}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function yt(r){return r!=null&&typeof r=="object"}var Lb=Yp?Sn(Yp):KD;function VE(r,o){return r===o||_d(r,o,Nd(o))}function GE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function QE(r){return Bb(r)&&r!=+r}function KE(r){if(I0(r))throw new ye(i);return Fm(r)}function JE(r){return r===null}function XE(r){return r==null}function Bb(r){return typeof r=="number"||yt(r)&&Zt(r)==hr}function Ps(r){if(!yt(r)||Zt(r)!=Bt)return!1;var o=Ba(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Na.call(a)==GR}var Vd=Zp?Sn(Zp):JD;function YE(r){return Ob(r)&&r>=-pe&&r<=pe}var Ub=em?Sn(em):XD;function hc(r){return typeof r=="string"||!Pe(r)&&yt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||yt(r)&&Zt(r)==Cr}var fo=tm?Sn(tm):YD;function ZE(r){return r===t}function eI(r){return yt(r)&&Ht(r)==jt}function tI(r){return yt(r)&&Zt(r)==ki}var nI=rc(yd),rI=rc(function(r,o){return r<=o});function $b(r){if(!r)return[];if(un(r))return hc(r)?Kn(r):cn(r);if(ds&&r[ds])return NR(r[ds]());var o=Ht(r),a=o==mt?ad:o==xt?Ia:ho;return a(r)}function Ar(r){if(!r)return r===0?r:0;if(r=Ln(r),r===De||r===-De){var o=r<0?-1:1;return o*me}return r===r?r:0}function ke(r){var o=Ar(r),a=o%1;return o===o?a?o-a:o:0}function Wb(r){return r?Ei(ke(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=am(r);var a=Qn.test(r);return a||Vr.test(r)?_R(r.slice(2),a?2:8):yn.test(r)?St:+r}function jb(r){return mr(r,ln(r))}function iI(r){return r?Ei(ke(r),-pe,pe):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var oI=co(function(r,o){if(Ss(o)||un(o)){mr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&ms(r,a,o[a])}),zb=co(function(r,o){mr(o,ln(o),r)}),gc=co(function(r,o,a,l){mr(o,ln(o),r,l)}),sI=co(function(r,o,a,l){mr(o,Ot(o),r,l)}),aI=Er(hd);function cI(r,o){var a=ao(r);return o==null?a:Sm(a,o)}var uI=Ee(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),mr(r,Md(r),a),l&&(a=Nn(a,m|v|x,y0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function TI(r,o){return Vb(r,dc(le(o)))}var RI=Er(function(r,o){return r==null?{}:t0(r,o)});function Vb(r,o){if(r==null)return{};var a=ht(Md(r),function(l){return[l]});return o=le(o),Om(r,a,function(l,h){return o(l,h[0])})}function DI(r,o,a){o=ei(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=_m();return zt(r+h*(o-r+bR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var UI=uo(function(r,o,a){return o=o.toLowerCase(),r+(a?Kb(o):o)});function Kb(r){return Kd(Ve(r).toLowerCase())}function Jb(r){return r=Ve(r),r&&r.replace(ka,FR).replace(aR,"")}function $I(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Ei(ke(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function WI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(at,ER):r}function jI(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var zI=uo(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),HI=uo(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),VI=Zm("toLowerCase");function GI(r,o,a){r=Ve(r),o=ke(o);var l=o?ro(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return nc(ja(h),a)+r+nc(Wa(h),a)}function QI(r,o,a){r=Ve(r),o=ke(o);var l=o?ro(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&no(r))?ti(Kn(r),0,a):r.split(o,a)):[]}var tM=uo(function(r,o,a){return r+(a?" ":"")+Kd(o)});function nM(r,o,a){return r=Ve(r),a=a==null?0:Ei(ke(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function rM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=gc({},o,l,sb);var h=gc({},o.imports,l.imports,sb),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ta,J="__p += '",ne=cd((o.escape||Ta).source+"|"+Q.source+"|"+(Q===us?Xe:Ta).source+"|"+(o.evaluate||Ta).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++fR+"]")+` `;r.replace(ne,function(fe,Me,qe,Cn,tn,kn){return qe||(qe=Cn),J+=r.slice(V,kn).replace(jT,IR),Me&&(T=!0,J+=`' + __e(`+Me+`) + '`),tn&&(M=!0,J+=`'; @@ -52,39 +52,39 @@ __p += '`),qe&&(J+=`' + `;var de=Ke.call(o,"variable")&&o.variable;if(!de)J=`with (obj) { `+J+` } -`;else if(be.test(de))throw new ye(c);J=(M?J.replace(tt,""):J).replace(De,"$1").replace(Qe,"$1;"),J="function("+(de||"obj")+`) { +`;else if(be.test(de))throw new ye(c);J=(M?J.replace(tt,""):J).replace(Fe,"$1").replace(Qe,"$1;"),J="function("+(de||"obj")+`) { `+(de?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(T?", __e = _.escape":"")+(M?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+J+`return __p -}`;var ke=Xb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(ke.source=J,Hd(ke))throw ke;return ke}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return sm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=am(l,h),S=cm(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,lm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=am(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Ce(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(no(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-ro(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=uo(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Ym("toUpperCase");function Jb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Xb=Fe(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Fe(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Ce(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||xe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,ke=M&&!ae;if(!_&&Q){S=ke?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&ke?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(xe(_)?_:[],h)}return this[a](function(S){return o.apply(xe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(so,l)||(so[l]=[]),so[l].push({name:o,func:a})}}),so[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):Ti?((Ti.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Vk=I((m3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((bG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Vg="\\",bj=/^\s+$/,_j=/(?:[^\\]|^)\\$/,vj=/^\\!/,yj=/^\\#/,wj=/\r?\n/g,Sj=/^\.*\/|^\.+$/,Gg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,xj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),Pj=/([0-z])-([0-z])/g,lT=()=>!1,Cj=t=>t.replace(Pj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),kj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Tj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Vg],[/\\\\/g,()=>Vg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Vg?`\\[${n}${kj(i)}${s}`:s==="]"&&i.length%2===0?`[${Cj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Rj=(t,e)=>{let n=aT[t];return n||(n=Tj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Jg=t=>typeof t=="string",Dj=t=>t&&Jg(t)&&!bj.test(t)&&!_j.test(t)&&t.indexOf("#")!==0,Fj=t=>t.split(wj),Qg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Ej=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vj,"!").replace(yj,"#");let s=Rj(t,e);return new Qg(n,t,i,s)},Ij=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Jg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>Sj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Kg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){xj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Dj(e)){let n=Ej(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Jg(e)?Fj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ij),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Gg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Gg)+Gg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Kg(t),Mj=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Mj;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var i2={};nA(i2,{API_ENDPOINT:()=>e2});module.exports=rA(i2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=r_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=t_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&n_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},qi;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(qi||(qi={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=r_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ee=gt(kS());var TS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&TS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function RS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var DS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,DS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var FS=require("crypto"),og={randomUUID:FS.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return RS(i)}var $s=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},pi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},vt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Te(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Hk=gt(Dk());var Ju=gt(require("fs")),ea=gt(Ek()),Mk=gt(require("os")),ta=gt(require("path")),KW=process.env.TEST_TMPDIR?ta.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ta.default.join(Mk.default.homedir(),".local","state"),Ik=ta.default.join(KW,"augment","augment-server.log"),Zs;function JW(){if(Zs)return Zs;let t=ta.default.dirname(Ik);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"warn").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?ea.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "warn"`,ea.default.setLevel("warn")),ea.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Ik,`${c} [${i.toUpperCase()}] ${s} -`)}},Zs=ea.default.getLogger("server"),n&&Zs.warn(n),Zs}function _e(t){let e=JW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var ra=gt(Go()),Qo=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,ra.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: +}`;var Re=Yb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(Re.source=J,Hd(Re))throw Re;return Re}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return am(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=cm(l,h),S=um(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,dm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=um(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?ke(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(no(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-ro(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=uo(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Zm("toUpperCase");function Xb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Yb=Ee(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Ee(function(l){for(var h=-1;++hpe)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=ke(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||Pe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,Re=M&&!ae;if(!_&&Q){S=Re?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&Re?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(Pe(_)?_:[],h)}return this[a](function(S){return o.apply(Pe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(so,l)||(so[l]=[]),so[l].push({name:o,func:a})}}),so[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,ds&&(b.prototype[ds]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):Ti?((Ti.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Gk=I((p3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((mG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Gg="\\",mj=/^\s+$/,bj=/(?:[^\\]|^)\\$/,_j=/^\\!/,vj=/^\\#/,yj=/\r?\n/g,wj=/^\.*\/|^\.+$/,Qg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,Sj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),xj=/([0-z])-([0-z])/g,lT=()=>!1,Pj=t=>t.replace(xj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),Cj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},kj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Gg],[/\\\\/g,()=>Gg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Gg?`\\[${n}${Cj(i)}${s}`:s==="]"&&i.length%2===0?`[${Pj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Tj=(t,e)=>{let n=aT[t];return n||(n=kj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Xg=t=>typeof t=="string",Rj=t=>t&&Xg(t)&&!mj.test(t)&&!bj.test(t)&&t.indexOf("#")!==0,Dj=t=>t.split(yj),Kg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Fj=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(_j,"!").replace(vj,"#");let s=Tj(t,e);return new Kg(n,t,i,s)},Ej=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Xg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>wj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Jg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){Sj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Rj(e)){let n=Fj(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Xg(e)?Dj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ej),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Qg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Qg)+Qg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Jg(t),Ij=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Ij;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var r2={};nA(r2,{API_ENDPOINT:()=>Zj});module.exports=rA(r2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=i_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=n_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&r_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},qi;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(qi||(qi={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=i_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Se=gt(TS());var RS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&RS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function DS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var FS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,FS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var ES=require("crypto"),og={randomUUID:ES.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return DS(i)}var Us=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},pi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},vt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Te(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Vk=gt(Fk());var Ju=gt(require("fs")),Zs=gt(Ik()),Ak=gt(require("os")),ea=gt(require("path")),KW=process.env.TEST_TMPDIR?ea.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ea.default.join(Ak.default.homedir(),".local","state"),Mk=ea.default.join(KW,"augment","augment-server.log"),Ys;function JW(){if(Ys)return Ys;let t=ea.default.dirname(Mk);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"warn").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?Zs.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "warn"`,Zs.default.setLevel("warn")),Zs.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Mk,`${c} [${i.toUpperCase()}] ${s} +`)}},Ys=Zs.default.getLogger("server"),n&&Ys.warn(n),Ys}function _e(t){let e=JW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var na=gt(Go()),Qo=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,na.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: ${this.diff(this.value,e).map(n=>` - ${n}`).join(` -`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ra.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ra.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var $k=require("events"),Dn=gt(require("fs")),Wk=gt(ng());var Ak;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>Se}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,Re,ge,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=Re||m,this.fragment=ge||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:Re,query:ge,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),Re===void 0?Re=this.path:Re===null&&(Re=m),ge===void 0?ge=this.query:ge===null&&(ge=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&Re===this.path&&ge===this.query&&me===this.fragment?this:new A(se,re,Re,ge,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,Re=-1;for(let ge=0;ge=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[me];St!==void 0?(Re!==-1&&(re+=encodeURIComponent(X.substring(Re,ge)),Re=-1),re+=St):Re===-1&&(Re=ge)}}return Re!==-1&&(re+=encodeURIComponent(X.substring(Re))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:Re,authority:ge,path:me,query:St,fragment:We}=X;if(Re&&(re+=Re,re+=":"),(ge||Re==="file")&&(re+=v,re+=v),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var Se;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,Re=!1;re[0]!==Dt&&(re=Dt+re,Re=!0);let ge=Je.resolve(re,...se);return Re&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(Se||(Se={}))})(),Ak=i})();var{URI:Ze,Utils:Tt}=Ak;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=qi.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Vi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Nk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function qk(t){let e=await nn.lstat(t);return Nk(e)}function Ok(t){try{return Gi(t).type==="File"}catch{return!1}}async function Lk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Gi(t){let e=Vi.lstatSync(t);return Nk(e)}function ia(t){let e=[],n=Vi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function oa(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Bk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Uk(t){return Vi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=Wk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},_i=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},vi=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new $k.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,jk=[];function zk(t){jk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new vi(t))},get workspaceFolders(){return jk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Uk(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},sa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Hk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Vk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function aa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function yi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){aa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function ca(t,e=""){let n=[];if(typeof t!="object"||t===null)return Gk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${ca(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(ca(s,e+" "))):n.push(`${e}${i}: ${Gk(s)}`);return n.join(` -`)}function Gk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ua(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>vt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return $s()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Qi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Te(U,!0)}`),vt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?vt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),vt.fromResponse(B).status===10&&this._logger.debug(`object size is ${ca(s)} `),vt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Te(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Qi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Te(P,!0)}`),P.stack&&this._logger.error(P.stack),vt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?vt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),vt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?ca(s):0} `),vt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` +`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,na.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,na.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var Wk=require("events"),Dn=gt(require("fs")),jk=gt(ng());var Nk;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>xe}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,De,pe,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=De||m,this.fragment=pe||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:De,query:pe,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),De===void 0?De=this.path:De===null&&(De=m),pe===void 0?pe=this.query:pe===null&&(pe=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&De===this.path&&pe===this.query&&me===this.fragment?this:new A(se,re,De,pe,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,De=-1;for(let pe=0;pe=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)De!==-1&&(re+=encodeURIComponent(X.substring(De,pe)),De=-1),re!==void 0&&(re+=X.charAt(pe));else{re===void 0&&(re=X.substr(0,pe));let St=L[me];St!==void 0?(De!==-1&&(re+=encodeURIComponent(X.substring(De,pe)),De=-1),re+=St):De===-1&&(De=pe)}}return De!==-1&&(re+=encodeURIComponent(X.substring(De))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:De,authority:pe,path:me,query:St,fragment:We}=X;if(De&&(re+=De,re+=":"),(pe||De==="file")&&(re+=v,re+=v),pe){let je=pe.indexOf("@");if(je!==-1){let bn=pe.substr(0,je);pe=pe.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}pe=pe.toLowerCase(),je=pe.lastIndexOf(":"),je===-1?re+=se(pe,!1,!0):(re+=se(pe.substr(0,je),!1,!0),re+=pe.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var xe;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,De=!1;re[0]!==Dt&&(re=Dt+re,De=!0);let pe=Je.resolve(re,...se);return De&&pe[0]===Dt&&!z.authority&&(pe=pe.substring(1)),z.with({path:pe})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(xe||(xe={}))})(),Nk=i})();var{URI:Ze,Utils:Tt}=Nk;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=qi.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Vi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function qk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function Ok(t){let e=await nn.lstat(t);return qk(e)}function Lk(t){try{return Gi(t).type==="File"}catch{return!1}}async function Bk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Gi(t){let e=Vi.lstatSync(t);return qk(e)}function ra(t){let e=[],n=Vi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function ia(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Uk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function $k(t){return Vi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=jk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},_i=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},vi=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new Wk.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,zk=[];function Hk(t){zk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new vi(t))},get workspaceFolders(){return zk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=$k(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},oa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Vk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Gk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function sa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function yi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){sa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function aa(t,e=""){let n=[];if(typeof t!="object"||t===null)return Qk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${aa(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(aa(s,e+" "))):n.push(`${e}${i}: ${Qk(s)}`);return n.join(` +`)}function Qk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ca(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>vt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return Us()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Qi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Te(U,!0)}`),vt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?vt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),vt.fromResponse(B).status===10&&this._logger.debug(`object size is ${aa(s)} `),vt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Te(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Qi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Te(P,!0)}`),P.stack&&this._logger.error(P.stack),vt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?vt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),vt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?aa(s):0} `),vt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` `);){let Je=te.indexOf(` -`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let Se=JSON.parse(Dt);yield c(Se)}catch(Se){K.error(`JSON parse failed for ${Dt}: ${Te(Se)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!vt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:yi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:yi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:yi("BackChatResultNode","id",d.id),type:yi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?yi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:yi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:yi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);aa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);aa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version),e.feature_flags.vscode_agent_mode_min_version!==void 0&&(s.vscodeAgentModeMinVersion=e.feature_flags.vscode_agent_mode_min_version)}let c=[];if(e.languages===void 0)c=Og;else{aa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Qi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model},integrations:{...e.advanced.integrations}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model},integrations:{...e.advanced?.integrations}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Kk=gt(Go());var la="augment.sessions",Qk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===la&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(la,JSON.stringify({accessToken:n,tenantURL:i,scopes:Qk}))}async getSession(){let n=await this._context.secrets.get(la);if(n){let i=JSON.parse(n);if((0,Kk.isEqual)(i.scopes,Qk))return i}return null}async removeSession(){await this._context.secrets.get(la)&&await this._context.secrets.delete(la)}};var Yo=require("crypto"),jg=require("url");var lj=["email"],ol="augment.oauth-state",dj=process.env.TEST_HOSTNAME??".augmentcode.com",fj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Jk((0,Yo.randomBytes)(32)),n=Jk(hj(Buffer.from(e))),i=(0,Yo.randomUUID)(),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=gj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function pj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>pj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} +`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let xe=JSON.parse(Dt);yield c(xe)}catch(xe){K.error(`JSON parse failed for ${Dt}: ${Te(xe)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!vt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:yi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:yi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:yi("BackChatResultNode","id",d.id),type:yi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?yi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:yi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:yi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);sa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);sa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version),e.feature_flags.vscode_agent_mode_min_version!==void 0&&(s.vscodeAgentModeMinVersion=e.feature_flags.vscode_agent_mode_min_version)}let c=[];if(e.languages===void 0)c=Og;else{sa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Qi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model},integrations:{...e.advanced.integrations}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model},integrations:{...e.advanced?.integrations}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Jk=gt(Go());var ua="augment.sessions",Kk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===ua&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(ua,JSON.stringify({accessToken:n,tenantURL:i,scopes:Kk}))}async getSession(){let n=await this._context.secrets.get(ua);if(n){let i=JSON.parse(n);if((0,Jk.isEqual)(i.scopes,Kk))return i}return null}async removeSession(){await this._context.secrets.get(ua)&&await this._context.secrets.delete(ua)}};var la=require("crypto"),zg=require("url");var ol="augment.oauth-state",lj=process.env.TEST_HOSTNAME??".augmentcode.com",dj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=jg((0,la.randomBytes)(32)),n=jg(fj(Buffer.from(e))),i=jg((0,la.randomBytes)(8)),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=hj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function gj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>gj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} suffixReplacementText: ${this.suffixReplacementText} skippedSuffix: ${this.skippedSuffix} start: ${this.range.startOffset} end: ${this.range.endOffset}`}};var ul=class{constructor(e,n,i){this._extension=e;this._configListener=n;this._metricsReporter=i;this.generateCompletion=Xk(this.generateCompletion.bind(this),s=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:s})})}_logger=_e("CompletionsModel");_completionSerial=0;async generateCompletion(e,n,i){let s=this._extension.workspaceManager;if(s===void 0)return;let c=s.completionServer,u=c.createRequestId(),d=s.safeResolvePathName(e.uri);if(d===void 0)return;let[f,m]=[d.rootPath,d.relPath],v=e.offsetAt(n),[x,D,N,A,L]=this._extractPrefixAndSuffix(e,v);v+=L;let B={prefixBegin:N,cursorPosition:v,suffixEnd:A},F=(await this._requestCompletion(s,c,u,e,x,D,B,d,i)).completionItems;if(F.length===0)return{completions:[],document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,occuredAt:new Date,isReused:!1};F.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],te=F[0];return te.skippedSuffix.includes(` -`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let v=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(v))throw new pi(`Language ${v} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,v,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),mj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(vt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new pi("Cancelled in back end");if(vt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new pi("Retriable error on back end");let U=Te(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let v=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new _i(v,x),L=new _i(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends es{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function zg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends es{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=zg(i),[f,m]=zg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Yu(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Ko(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Lk(n.fsPath)||await oa(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var eT=gt(require("crypto")),fa=2023102300,da=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},ts=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=eT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new da(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var MT=gt(Go());var Hg=class{async read(e){try{return await Bk(e)}catch{return}}stat(e){try{return Gi(e)}catch{return}}};function tT(){return new Hg}var nT=gt(require("crypto"));function rT(t){let e=nT.createHash("sha256");return e.update(t),e.digest("hex")}var tp=gt(hT());var ha=class{accepted=!0},wi=class{accepted=!1};var st=gt(require("node:path"));var ga=st.posix.sep,Aj=new RegExp("/\\/g");function gT(t){return st.isAbsolute(t)}function Nj(t){return st.sep==="\\"?t.replace(Aj,ga):t}function pT(t){return Nj(t)}function mT(t){return t.with({path:st.dirname(t.fsPath)})}function gl(t){let e=st.dirname(t);return e==="."?"":qj(e)}function qj(t){return t.endsWith(ga)?t:t+ga}function ns(t){for(;;){if(t===st.sep||t===ga||!t.endsWith(ga)&&!t.endsWith(st.sep))return t;t=t.slice(0,-1)}}function pa(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return st.relative(n,i)}function $r(t,e){let n=pa(t,e);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function et(t,e,n=!1){let i=st.join(t,e);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function ma(t,e){let n=pa(t,e);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(t,e){return ma(t,e)!==void 0}function pl(t,e){let n=pa(t,e);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?Ze.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await qk(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=st.dirname(i.fsPath);if(st.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function Oj(t){return!1}function Jt(t){return ns(t.fsPath)}function bT(t){return t.fsPath}function Wr(t){if(t.scheme==="file"||t.scheme==="untitled"||Oj(t))return Jt(t)}var Si=class extends ha{explicit=!1;format(){return"Tracked"}},Xg=class extends ha{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},Yg=class extends wi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},Zg=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if($r(i,n)!==""){let u=n;for(;;){u=mT(u);let d=$r(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=$r(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new Yg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new Xg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new Si}},ep=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await Zg.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new Si}};async function Lj(t,e){let n=Tt.joinPath(t,e);try{let i=await Ko(n.fsPath),s=(0,tp.default)({ignorecase:!1});return s.add(i),s}catch{}}var rs=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await ep.buildNew(this._ignoreSources,e,n)}},ba=class{constructor(e){this.filename=e}getName(e){return bT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Lj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,tp.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: +`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let v=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(v))throw new pi(`Language ${v} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,v,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),pj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(vt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new pi("Cancelled in back end");if(vt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new pi("Retriable error on back end");let U=Te(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let v=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new _i(v,x),L=new _i(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends Zo{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function Hg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends Zo{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=Hg(i),[f,m]=Hg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Yu(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Ko(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Bk(n.fsPath)||await ia(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var eT=gt(require("crypto")),fa=2023102300,da=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},es=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=eT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new da(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var MT=gt(Go());var Vg=class{async read(e){try{return await Uk(e)}catch{return}}stat(e){try{return Gi(e)}catch{return}}};function tT(){return new Vg}var nT=gt(require("crypto"));function rT(t){let e=nT.createHash("sha256");return e.update(t),e.digest("hex")}var np=gt(hT());var ha=class{accepted=!0},wi=class{accepted=!1};var st=gt(require("node:path"));var ga=st.posix.sep,Mj=new RegExp("/\\/g");function gT(t){return st.isAbsolute(t)}function Aj(t){return st.sep==="\\"?t.replace(Mj,ga):t}function pT(t){return Aj(t)}function mT(t){return t.with({path:st.dirname(t.fsPath)})}function gl(t){let e=st.dirname(t);return e==="."?"":Nj(e)}function Nj(t){return t.endsWith(ga)?t:t+ga}function ts(t){for(;;){if(t===st.sep||t===ga||!t.endsWith(ga)&&!t.endsWith(st.sep))return t;t=t.slice(0,-1)}}function pa(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return st.relative(n,i)}function $r(t,e){let n=pa(t,e);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function et(t,e,n=!1){let i=st.join(t,e);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function ma(t,e){let n=pa(t,e);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(t,e){return ma(t,e)!==void 0}function pl(t,e){let n=pa(t,e);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?Ze.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await Ok(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=st.dirname(i.fsPath);if(st.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function qj(t){return!1}function Jt(t){return ts(t.fsPath)}function bT(t){return t.fsPath}function Wr(t){if(t.scheme==="file"||t.scheme==="untitled"||qj(t))return Jt(t)}var Si=class extends ha{explicit=!1;format(){return"Tracked"}},Yg=class extends ha{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},Zg=class extends wi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},ep=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if($r(i,n)!==""){let u=n;for(;;){u=mT(u);let d=$r(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=$r(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new Zg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new Yg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new Si}},tp=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await ep.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new Si}};async function Oj(t,e){let n=Tt.joinPath(t,e);try{let i=await Ko(n.fsPath),s=(0,np.default)({ignorecase:!1});return s.add(i),s}catch{}}var ns=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await tp.buildNew(this._ignoreSources,e,n)}},ba=class{constructor(e){this.filename=e}getName(e){return bT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Oj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,np.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: `:"")+Array.from(this).map(([n,i])=>` - ${n}: ${i} ms`).join(` -`)}},yl=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},np=class extends yl{increment(e=1){this._add(e)}},rp=class extends yl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},is=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new np,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new rp,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` +`)}},yl=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},rp=class extends yl{increment(e=1){this._add(e)}},ip=class extends yl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},rs=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new rp,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new ip,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` `),i=" - timing stats:",s=Array.from(this.timings.entries()).map(([c,u])=>` - ${c}: ${u.value} ms`).join(` `);return e+` `+n+` `+i+` -`+s}};var _T=gt(require("os"));function vT(t){let e=_T.default.homedir();return pl(t,e)}var _a=gt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=$r(e,x),A=ia(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=et(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new op(c,i)}var os=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!_a.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!_a.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new is("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=$r(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ia(s.fsPath);this._readDirMs.stop();for(let[m,v]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=et(u,m,v==="Directory"),A=d.getPathInfo(N,v);this._filterMs.stop();let L=N;v==="File"?this._filesEmitted.increment():v==="Directory"?(L=ns(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,v,A],this._yieldMs.stop(),v==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},ip=class extends wi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=_a.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new ip(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new Si:i.getPathInfo(e)}},op=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new sp(i,this._fileExtensions)}_getIgnoreStack(n){if(gT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},sp=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var ap=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends ot{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new ap;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var cp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends cp{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},jr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var Bj=Object.freeze({git:{name:".git",type:"Directory"}});async function yT(t){for(let[e,n]of Object.entries(Bj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var va=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},up=class{throwError(e,n){throw new va(e,n)}},lp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},dp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},fp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},hp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new dp(i,this.process)}},gp=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof va?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof va&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function ss(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends ot{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=ss(e,n),s=ss(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=ss(e.addedBlobs,n.addedBlobs),u=ss(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=ss(e.deletedBlobs,n.deletedBlobs),u=ss(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";vt.isAPIErrorWithStatus(d,5)||vt.isAPIErrorWithStatus(d,4)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function xi(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var pp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},mp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends ot{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new is("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=pT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return ua(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return et(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof da){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,Te(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let v={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,v)}_newProbeBatch(){return new mp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),xi(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),xi(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,v]of i.items)this._pathMapVerify(v.folderId,v.relPath,m)&&(u.has(v.blobName)?this._enqueueForUpload(m,v.folderId,v.relPath,!1):d.has(v.blobName)?this._enqueueForProbeRetry(m,v):this._pathMapUpdate(v.folderId,v.relPath,m,v.blobName,v.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new pp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:v}]=n;if(!this._pathMapVerify(m,v,f))return;let x=this._getMtime(d,m,v,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,v,f);if(D===void 0)return;let N=this._calculateBlobName(v,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,v,f,Te(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:v,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let v of f)this._pathMapInvalidate(v.folderId,v.pathName,v.seq,this._fileUploadFailure);else for(let v of f){let x={folderId:v.folderId,relPath:v.pathName,blobName:m,mtime:v.mtime,startTime:Date.now()};this._enqueueForProbeRetry(v.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Te(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var zr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},bp=class{constructor(e=fa){this.namingVersion=e}entries=new Array};function $j(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function Wj(t){return et(t,zr.cacheFileName)}function Fl(t){let e=Wj(t);return Ok(e)}async function ST(t,e){let n=et(t,zr.cacheFileName),i=et(e,zr.cacheFileName);await oa(e),await Dg(n,i)}async function xT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=et(e,zr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Ko(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==fa)i.info(`blob naming version ${d.namingVersion} !== ${fa}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let v=$j(m);v!==void 0&&(n.set(f,{mtime:v.mtime,name:v.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=Te(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends zr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=et(this._cacheDirName,zr.cacheFileName),this._tmpFileName=et(this._cacheDirName,zr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new bp;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await oa(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await Dg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${fa} to ${this._cacheFileName}`)}};var CT=gt(Go());var PT=require("console");var _p=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},as=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},cs=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new as(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,v=Math.min(m,e-s.length);s.length+=v,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=v;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var kT=6,TT=6,ya=kT*TT,zj=1e3,Hj=2e3,Vj=60*1e3,Gj=200,Qj=30*1e3,Kj=30*1e3,Jj=60*1e3,vp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Zo(TT),this.addChangeset(s),this.changesSinceUpload=new cs}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new cs})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},yp=class extends vp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends ot{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new jr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,Hj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,Vj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new jr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let v=m.recentChanges(!1);if(v===void 0||v.blobName===void 0)continue;d.set(f,v.blobName);let x=m.getText(),D=v.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:v.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let v=m.changeTracker.getChunks(n,f.getText().length);if(v.length!==0)for(let x of v)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new yp(n,i,d,f,d),c.set(i,u);let m=u.getText(),v=this._blobNameCalculator.calculate(i,m);if(v===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(v)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=v,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let v of c){let[x,D,N]=v;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let v=d.changesSinceUpload.length>=Gj;v||(v=d.changesSinceUpload.countChunks(this._chunkSize)>=ya),v&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let v=s.changesSinceUpload.countChunks(this._chunkSize);v>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),v>=ya&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=kT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),v=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,CT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:v,changesSinceUpload:new cs},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Qj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${Te(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${Te(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Jj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size{if(!(Date.now()-u>Kj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let v of m)this.notifyMissingBlob(v.folderId,v.pathName,f);else if(d.has(f))for(let v of m)this._requeueVerifyWaiter(v,f);else for(let v of m)this._commit(v,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),xi(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),xi(this._logger,i,n.nonindexedBlobNames,5))}};var wp=gt(Go());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] +`+s}};var _T=gt(require("os"));function vT(t){let e=_T.default.homedir();return pl(t,e)}var _a=gt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=$r(e,x),A=ra(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=et(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new sp(c,i)}var is=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!_a.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!_a.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new rs("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=$r(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ra(s.fsPath);this._readDirMs.stop();for(let[m,v]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=et(u,m,v==="Directory"),A=d.getPathInfo(N,v);this._filterMs.stop();let L=N;v==="File"?this._filesEmitted.increment():v==="Directory"?(L=ts(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,v,A],this._yieldMs.stop(),v==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},op=class extends wi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=_a.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new op(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new Si:i.getPathInfo(e)}},sp=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new ap(i,this._fileExtensions)}_getIgnoreStack(n){if(gT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},ap=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var cp=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends ot{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new cp;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var up=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends up{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},jr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var Lj=Object.freeze({git:{name:".git",type:"Directory"}});async function yT(t){for(let[e,n]of Object.entries(Lj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var va=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},lp=class{throwError(e,n){throw new va(e,n)}},dp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},fp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},hp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},gp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new fp(i,this.process)}},pp=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof va?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof va&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function os(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends ot{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=os(e,n),s=os(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=os(e.addedBlobs,n.addedBlobs),u=os(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=os(e.deletedBlobs,n.deletedBlobs),u=os(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";vt.isAPIErrorWithStatus(d,5)||vt.isAPIErrorWithStatus(d,4)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function xi(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var mp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},bp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends ot{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new rs("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=pT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return ca(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return et(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof da){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,Te(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let v={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,v)}_newProbeBatch(){return new bp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),xi(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),xi(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,v]of i.items)this._pathMapVerify(v.folderId,v.relPath,m)&&(u.has(v.blobName)?this._enqueueForUpload(m,v.folderId,v.relPath,!1):d.has(v.blobName)?this._enqueueForProbeRetry(m,v):this._pathMapUpdate(v.folderId,v.relPath,m,v.blobName,v.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new mp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:v}]=n;if(!this._pathMapVerify(m,v,f))return;let x=this._getMtime(d,m,v,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,v,f);if(D===void 0)return;let N=this._calculateBlobName(v,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,v,f,Te(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:v,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let v of f)this._pathMapInvalidate(v.folderId,v.pathName,v.seq,this._fileUploadFailure);else for(let v of f){let x={folderId:v.folderId,relPath:v.pathName,blobName:m,mtime:v.mtime,startTime:Date.now()};this._enqueueForProbeRetry(v.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Te(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var zr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},_p=class{constructor(e=fa){this.namingVersion=e}entries=new Array};function Uj(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function $j(t){return et(t,zr.cacheFileName)}function Fl(t){let e=$j(t);return Lk(e)}async function ST(t,e){let n=et(t,zr.cacheFileName),i=et(e,zr.cacheFileName);await ia(e),await Dg(n,i)}async function xT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=et(e,zr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Ko(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==fa)i.info(`blob naming version ${d.namingVersion} !== ${fa}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let v=Uj(m);v!==void 0&&(n.set(f,{mtime:v.mtime,name:v.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=Te(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends zr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=et(this._cacheDirName,zr.cacheFileName),this._tmpFileName=et(this._cacheDirName,zr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new _p;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await ia(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await Dg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${fa} to ${this._cacheFileName}`)}};var CT=gt(Go());var PT=require("console");var vp=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},ss=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},as=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new ss(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,v=Math.min(m,e-s.length);s.length+=v,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=v;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var kT=6,TT=6,ya=kT*TT,jj=1e3,zj=2e3,Hj=60*1e3,Vj=200,Gj=30*1e3,Qj=30*1e3,Kj=60*1e3,yp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Yo(TT),this.addChangeset(s),this.changesSinceUpload=new as}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new as})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},wp=class extends yp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends ot{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new jr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,zj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,Hj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new jr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let v=m.recentChanges(!1);if(v===void 0||v.blobName===void 0)continue;d.set(f,v.blobName);let x=m.getText(),D=v.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:v.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let v=m.changeTracker.getChunks(n,f.getText().length);if(v.length!==0)for(let x of v)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new wp(n,i,d,f,d),c.set(i,u);let m=u.getText(),v=this._blobNameCalculator.calculate(i,m);if(v===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(v)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=v,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let v of c){let[x,D,N]=v;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let v=d.changesSinceUpload.length>=Vj;v||(v=d.changesSinceUpload.countChunks(this._chunkSize)>=ya),v&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let v=s.changesSinceUpload.countChunks(this._chunkSize);v>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),v>=ya&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=kT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),v=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,CT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:v,changesSinceUpload:new as},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Gj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${Te(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${Te(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Kj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size{if(!(Date.now()-u>Qj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let v of m)this.notifyMissingBlob(v.folderId,v.pathName,f);else if(d.has(f))for(let v of m)this._requeueVerifyWaiter(v,f);else for(let v of m)this._commit(v,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),xi(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),xi(this._logger,i,n.nonindexedBlobNames,5))}};var Sp=gt(Go());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] [${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.getBlobName(e,n)}handleMissingBlob(e,n,i){if(this.isV2Enabled){let s=this._openFileManagerV2.handleMissingBlob(e,n,i);return this._openFileManagerV1.notifyMissingBlob(e,n,i)||s}else return this._openFileManagerV1.notifyMissingBlob(e,n,i)}loseFocus(){this._openFileManagerV1.loseFocus()}stopTracking(e,n){this._openFileManagerV1.stopTracking(e,n),this.isV2Enabled&&this._openFileManagerV2.stopTracking(e,n)}handleClosedDocument(e){this._openFileManagerV1.stopTracking(e.folderId,e.relPath,0),this.isV2Enabled&&this._openFileManagerV2.handleClosedDocument(e)}handleChangedDocument(e){this._openFileManagerV1.applyTextDocumentChange(e.folderId,e.relPath,e.event),this.isV2Enabled&&this._openFileManagerV2.handleChangedDocument(e)}isTracked(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.isTracked(e,n),s=this._openFileManagerV1.isTracked(e,n);return i!==s&&this._logger.debug(`[WARN] isTracked returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] -[${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.isTracked(e,n)}getTrackedPaths(e){if(this.isV2Enabled){let n=this._openFileManagerV2.getTrackedPaths(e),i=this._openFileManagerV1.getTrackedPaths(e),s=(0,wp.difference)(n,i);s.length>0&&this._logger.debug(`[WARN] getTrackedPaths in new but not in old [${e}] -[${JSON.stringify(s)}]`);let c=(0,wp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] +[${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.isTracked(e,n)}getTrackedPaths(e){if(this.isV2Enabled){let n=this._openFileManagerV2.getTrackedPaths(e),i=this._openFileManagerV1.getTrackedPaths(e),s=(0,Sp.difference)(n,i);s.length>0&&this._logger.debug(`[WARN] getTrackedPaths in new but not in old [${e}] +[${JSON.stringify(s)}]`);let c=(0,Sp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] [${JSON.stringify(c)}]`),i}else return this._openFileManagerV1.getTrackedPaths(e)}dispose(){this._openFileManagerV2?.dispose(),this._openFileManagerV1.dispose()}getRecencySummary(e){return this._openFileManagerV1.getRecencySummary(e)}translateRange(e,n,i,s){if(this.isV2Enabled){let c=this._openFileManagerV2.translateRange(e,n,i,s),u=this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s});return(c?.blobName!==u?.blobName||c?.beginOffset!==u?.beginOffset||c?.endOffset!==u?.endOffset)&&this._logger.debug(`[WARN] translateRange returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(c)}] -[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new ts(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Sp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Sp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var xp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.debug(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Pp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new xp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Pp}}var Cp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new os(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Cp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ia(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new rs(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Tp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Xj=new Set(["home directory","too large"]),Yj=new Set(["nested"]);function wa(t){return Xj.has(t)}function IT(t){return Yj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ua(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ua(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new kp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new rs(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Tp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return us.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new us(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new us(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new os(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(vt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new ts(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),vt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var on=(0,Ee.createConnection)(),UT,Zj=".config/augment/api_token",e2="https://staging-shard-0.api.augmentcode.com/",t2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},n2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(n2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Zj),r2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",pe=_e("server"),jl,Rp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return zk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{pe.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;pe.info(`User agent: ${s}`);let c=t.workspaceFolders??[];pe.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)pe.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new sa(Ze.file($T))}catch(x){throw pe.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);pe.info(`Session ID: ${f}`);let m={...Wl.config,oauth:t2,apiToken:r2};jl=new nl(Wl,ur,f,s,global.fetch),Rp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Ee.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),pe.info("Initialized completion server")}catch(x){pe.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{pe.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return pe.warn(`Not tracking the document ${t.textDocument.uri}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return pe.info(`Completion: ${s?.requestId}`),pe.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(pe.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(pe.error(`Error getting completion: ${Te(n)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(pe.info("Already logged in"),{loggedIn:!0,url:""}):(pe.info("Logging in..."),{loggedIn:!1,url:await Rp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/login: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),pe.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return pe.error(`Error handling augment/logout: ${n}`),pe.error(`Stack trace: ${e}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{if(await Rp.handleAuthJson(t.code),!Xt){let e=new sa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),pe.info("Initialized completion server")}return await Xt.enable(),pe.info("Logged in."),{success:!0}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return pe.error(`Error creating completion server: ${i}`),pe.error(`Stack trace: ${n}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(pe.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||pe.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return pe.warn("Completion server is not initialized."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return pe.warn("Not logged in. Please login first."),new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();pe.info(`Chat (${v}) requested`),n&&(pe.debug(`Document URI: ${n.uri}`),pe.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&pe.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){pe.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return pe.error(`Error streaming chat: ${Te(A)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return pe.error(`Failed to fetch version: ${f.statusText}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Ee.ResponseError(Ee.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return pe.error(`Error fetching version: ${Te(d)}`),new Ee.ResponseError(Ee.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(pe.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){pe.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{pe.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{pe.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{pe.debug(`Document changed: ${t.textDocument.uri}`),pe.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){pe.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),pe.debug(`Updated document (${e.version}): +[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new es(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new xp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},xp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var Pp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.debug(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Cp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new Pp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Cp}}var kp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new is(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new kp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ra(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new ns(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Rp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Jj=new Set(["home directory","too large"]),Xj=new Set(["nested"]);function wa(t){return Jj.has(t)}function IT(t){return Xj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ca(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ca(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new Tp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new ns(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Rp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return cs.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new cs(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new cs(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new is(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(vt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new es(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),vt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=Us(),t.update("sessionId",e)),e}var on=(0,Se.createConnection)(),UT,Yj=".config/augment/api_token",Zj="https://staging-shard-0.api.augmentcode.com/",e2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},t2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(t2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Yj),n2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",ge=_e("server"),jl,Dp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return Hk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{ge.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;ge.info(`User agent: ${s}`);let c=t.workspaceFolders??[];ge.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)ge.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new oa(Ze.file($T))}catch(x){throw ge.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);ge.info(`Session ID: ${f}`);let m={...Wl.config,oauth:e2,apiToken:n2};jl=new nl(Wl,ur,f,s,global.fetch),Dp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Se.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),ge.info("Initialized completion server")}catch(x){ge.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{ge.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return ge.warn(`Not tracking the document ${t.textDocument.uri}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return ge.debug("Completion server is not initialized."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return ge.debug("Not logged in. Please login first."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return ge.info(`Completion: ${s?.requestId}`),ge.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(ge.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(ge.error(`Error getting completion: ${Te(n)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(ge.info("Already logged in"),{loggedIn:!0,url:""}):(ge.info("Logging in..."),{loggedIn:!1,url:await Dp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return ge.error(`Error handling augment/login: ${n}`),ge.error(`Stack trace: ${e}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),ge.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return ge.error(`Error handling augment/logout: ${n}`),ge.error(`Stack trace: ${e}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{await Dp.handleAuthJson(t.code)}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return ge.error(`Error handling user code: ${i}`),ge.error(`Stack trace: ${n}`),e instanceof SyntaxError?new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to parse user code. Did you paste the code provided by the sign in page?"):i==="Unknown state"?new Se.ResponseError(Se.ErrorCodes.InternalError,"Could not find sign in state. Did you navigate to the full sign in URL (it may wrap onto multiple lines)?"):new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process user code. Please try again.")}try{if(!Xt){let e=new oa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),ge.info("Initialized completion server")}return await Xt.enable(),ge.info("Logged in."),{}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return ge.error(`Error creating completion server: ${i}`),ge.error(`Stack trace: ${n}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(ge.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||ge.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return ge.debug("Completion server is not initialized."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return ge.debug("Not logged in. Please login first."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();ge.info(`Chat (${v}) requested`),n&&(ge.debug(`Document URI: ${n.uri}`),ge.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&ge.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){ge.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return ge.error(`Error streaming chat: ${Te(A)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Se.ResponseError(Se.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return ge.error(`Failed to fetch version: ${f.statusText}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Se.ResponseError(Se.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Se.ResponseError(Se.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Se.ResponseError(Se.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return ge.error(`Error fetching version: ${Te(d)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(ge.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){ge.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{ge.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{ge.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{ge.debug(`Document changed: ${t.textDocument.uri}`),ge.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){ge.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),ge.debug(`Updated document (${e.version}): ${e.getText()}`)}Rt.documents.add(e);let i={document:new vi(e),contentChanges:n};Mg.fire(i)});on.listen();0&&(module.exports={API_ENDPOINT}); /*! Bundled license information: From cd9422978b52b74f4b744acab03e52652837ed35 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 27 Feb 2025 16:58:58 +0000 Subject: [PATCH 15/41] Augment Vim v0.20.0 --- autoload/augment/version.vim | 2 +- dist/server.js | 62 ++++++++++++++++++------------------ 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 099849c..419ff14 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.19.0' + return '0.20.0' endfunction diff --git a/dist/server.js b/dist/server.js index c9fd0f1..3bd185e 100644 --- a/dist/server.js +++ b/dist/server.js @@ -4,15 +4,15 @@ * Licensed for use only with Vim plugin - See LICENSE.md * Modification or reverse engineering prohibited */ -"use strict";var XM=Object.create;var pc=Object.defineProperty;var YM=Object.getOwnPropertyDescriptor;var ZM=Object.getOwnPropertyNames;var eA=Object.getPrototypeOf,tA=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),nA=(t,e)=>{for(var n in e)pc(t,n,{get:e[n],enumerable:!0})},t_=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ZM(e))!tA.call(t,s)&&s!==n&&pc(t,s,{get:()=>e[s],enumerable:!(i=YM(e,s))||i.enumerable});return t};var gt=(t,e,n)=>(n=t!=null?XM(eA(t)):{},t_(e||!t||!t.__esModule?pc(n,"default",{value:t,enumerable:!0}):n,t)),rA=t=>t_(pc({},"__esModule",{value:!0}),t);var bc=I(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.thenable=Et.typedArray=Et.stringArray=Et.array=Et.func=Et.error=Et.number=Et.string=Et.boolean=void 0;function oA(t){return t===!0||t===!1}Et.boolean=oA;function o_(t){return typeof t=="string"||t instanceof String}Et.string=o_;function sA(t){return typeof t=="number"||t instanceof Number}Et.number=sA;function aA(t){return t instanceof Error}Et.error=aA;function s_(t){return typeof t=="function"}Et.func=s_;function a_(t){return Array.isArray(t)}Et.array=a_;function cA(t){return a_(t)&&t.every(e=>o_(e))}Et.stringArray=cA;function uA(t,e){return Array.isArray(t)&&t.every(e)}Et.typedArray=uA;function lA(t){return t&&s_(t.then)}Et.thenable=lA});var go=I(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.stringArray=Vt.array=Vt.func=Vt.error=Vt.number=Vt.string=Vt.boolean=void 0;function dA(t){return t===!0||t===!1}Vt.boolean=dA;function c_(t){return typeof t=="string"||t instanceof String}Vt.string=c_;function fA(t){return typeof t=="number"||t instanceof Number}Vt.number=fA;function hA(t){return t instanceof Error}Vt.error=hA;function gA(t){return typeof t=="function"}Vt.func=gA;function u_(t){return Array.isArray(t)}Vt.array=u_;function pA(t){return u_(t)&&t.every(e=>c_(e))}Vt.stringArray=pA});var Rf=I(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Message=ce.NotificationType9=ce.NotificationType8=ce.NotificationType7=ce.NotificationType6=ce.NotificationType5=ce.NotificationType4=ce.NotificationType3=ce.NotificationType2=ce.NotificationType1=ce.NotificationType0=ce.NotificationType=ce.RequestType9=ce.RequestType8=ce.RequestType7=ce.RequestType6=ce.RequestType5=ce.RequestType4=ce.RequestType3=ce.RequestType2=ce.RequestType1=ce.RequestType=ce.RequestType0=ce.AbstractMessageSignature=ce.ParameterStructures=ce.ResponseError=ce.ErrorCodes=void 0;var Oi=go(),rf;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(rf||(ce.ErrorCodes=rf={}));var of=class t extends Error{constructor(e,n,i){super(n),this.code=Oi.number(e)?e:rf.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ce.ResponseError=of;var fn=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ce.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var ut=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ce.AbstractMessageSignature=ut;var sf=class extends ut{constructor(e){super(e,0)}};ce.RequestType0=sf;var af=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType=af;var cf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType1=cf;var uf=class extends ut{constructor(e){super(e,2)}};ce.RequestType2=uf;var lf=class extends ut{constructor(e){super(e,3)}};ce.RequestType3=lf;var df=class extends ut{constructor(e){super(e,4)}};ce.RequestType4=df;var ff=class extends ut{constructor(e){super(e,5)}};ce.RequestType5=ff;var hf=class extends ut{constructor(e){super(e,6)}};ce.RequestType6=hf;var gf=class extends ut{constructor(e){super(e,7)}};ce.RequestType7=gf;var pf=class extends ut{constructor(e){super(e,8)}};ce.RequestType8=pf;var mf=class extends ut{constructor(e){super(e,9)}};ce.RequestType9=mf;var bf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType=bf;var _f=class extends ut{constructor(e){super(e,0)}};ce.NotificationType0=_f;var vf=class extends ut{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType1=vf;var yf=class extends ut{constructor(e){super(e,2)}};ce.NotificationType2=yf;var wf=class extends ut{constructor(e){super(e,3)}};ce.NotificationType3=wf;var Sf=class extends ut{constructor(e){super(e,4)}};ce.NotificationType4=Sf;var xf=class extends ut{constructor(e){super(e,5)}};ce.NotificationType5=xf;var Pf=class extends ut{constructor(e){super(e,6)}};ce.NotificationType6=Pf;var Cf=class extends ut{constructor(e){super(e,7)}};ce.NotificationType7=Cf;var kf=class extends ut{constructor(e){super(e,8)}};ce.NotificationType8=kf;var Tf=class extends ut{constructor(e){super(e,9)}};ce.NotificationType9=Tf;var l_;(function(t){function e(s){let c=s;return c&&Oi.string(c.method)&&(Oi.string(c.id)||Oi.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&Oi.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(Oi.string(c.id)||Oi.number(c.id)||c.id===null)}t.isResponse=i})(l_||(ce.Message=l_={}))});var Ff=I(ri=>{"use strict";var d_;Object.defineProperty(ri,"__esModule",{value:!0});ri.LRUCache=ri.LinkedMap=ri.Touch=void 0;var Gt;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Gt||(ri.Touch=Gt={}));var _c=class{constructor(){this[d_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Gt.None){let i=this._map.get(e);if(i)return n!==Gt.None&&this.touch(i,n),i.value}set(e,n,i=Gt.None){let s=this._map.get(e);if(s)s.value=n,i!==Gt.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Gt.None:this.addItemLast(s);break;case Gt.First:this.addItemFirst(s);break;case Gt.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(d_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Gt.First&&n!==Gt.Last)){if(n===Gt.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Gt.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};ri.LinkedMap=_c;var Df=class extends _c{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Gt.AsNew){return super.get(e,n)}peek(e){return super.get(e,Gt.None)}set(e,n){return super.set(e,n,Gt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ri.LRUCache=Df});var h_=I(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.Disposable=void 0;var f_;(function(t){function e(n){return{dispose:n}}t.create=e})(f_||(vc.Disposable=f_={}))});var ii=I(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Ef;function If(){if(Ef===void 0)throw new Error("No runtime abstraction layer installed");return Ef}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ef=n}t.install=e})(If||(If={}));Mf.default=If});var mo=I(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.Emitter=po.Event=void 0;var mA=ii(),g_;(function(t){let e={dispose(){}};t.None=function(){return e}})(g_||(po.Event=g_={}));var Af=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Af),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};po.Emitter=yc;yc._noop=function(){}});var xc=I(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.CancellationTokenSource=bo.CancellationToken=void 0;var bA=ii(),_A=go(),Nf=mo(),wc;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Nf.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Nf.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||_A.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(wc||(bo.CancellationToken=wc={}));var vA=Object.freeze(function(t,e){let n=(0,bA.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),Sc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?vA:(this._emitter||(this._emitter=new Nf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},qf=class{get token(){return this._token||(this._token=new Sc),this._token}cancel(){this._token?this._token.cancel():this._token=wc.Cancelled}dispose(){this._token?this._token instanceof Sc&&this._token.dispose():this._token=wc.None}};bo.CancellationTokenSource=qf});var p_=I(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.SharedArrayReceiverStrategy=_o.SharedArraySenderStrategy=void 0;var yA=xc(),Cs;(function(t){t.Continue=0,t.Cancelled=1})(Cs||(Cs={}));var Of=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=Cs.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,Cs.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};_o.SharedArraySenderStrategy=Of;var Lf=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===Cs.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Bf=class{constructor(e){this.token=new Lf(e)}cancel(){}dispose(){}},Uf=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new yA.CancellationTokenSource:new Bf(n)}};_o.SharedArrayReceiverStrategy=Uf});var Wf=I(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.Semaphore=void 0;var wA=ii(),$f=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,wA.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};Pc.Semaphore=$f});var b_=I(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.ReadableStreamMessageReader=oi.AbstractMessageReader=oi.MessageReader=void 0;var zf=ii(),vo=go(),jf=mo(),SA=Wf(),m_;(function(t){function e(n){let i=n;return i&&vo.func(i.listen)&&vo.func(i.dispose)&&vo.func(i.onError)&&vo.func(i.onClose)&&vo.func(i.onPartialMessage)}t.is=e})(m_||(oi.MessageReader=m_={}));var Cc=class{constructor(){this.errorEmitter=new jf.Emitter,this.closeEmitter=new jf.Emitter,this.partialMessageEmitter=new jf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${vo.string(e.message)?e.message:"unknown"}`)}};oi.AbstractMessageReader=Cc;var Hf;(function(t){function e(n){let i,s,c,u=new Map,d,f=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let m of n.contentDecoders)u.set(m.name,m);if(n.contentTypeDecoder!==void 0&&(d=n.contentTypeDecoder,f.set(d.name,d)),n.contentTypeDecoders!==void 0)for(let m of n.contentTypeDecoders)f.set(m.name,m)}return d===void 0&&(d=(0,zf.default)().applicationJson.decoder,f.set(d.name,d)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:d,contentTypeDecoders:f}}t.fromOptions=e})(Hf||(Hf={}));var Vf=class extends Cc{constructor(e,n){super(),this.readable=e,this.options=Hf.fromOptions(n),this.buffer=(0,zf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new SA.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. -${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,zf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};oi.ReadableStreamMessageReader=Vf});var S_=I(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.WriteableStreamMessageWriter=si.AbstractMessageWriter=si.MessageWriter=void 0;var __=ii(),ks=go(),xA=Wf(),v_=mo(),PA="Content-Length: ",y_=`\r -`,w_;(function(t){function e(n){let i=n;return i&&ks.func(i.dispose)&&ks.func(i.onClose)&&ks.func(i.onError)&&ks.func(i.write)}t.is=e})(w_||(si.MessageWriter=w_={}));var kc=class{constructor(){this.errorEmitter=new v_.Emitter,this.closeEmitter=new v_.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${ks.string(e.message)?e.message:"unknown"}`)}};si.AbstractMessageWriter=kc;var Gf;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,__.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,__.default)().applicationJson.encoder}}t.fromOptions=e})(Gf||(Gf={}));var Qf=class extends kc{constructor(e,n){super(),this.writable=e,this.options=Gf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new xA.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let s=[];return s.push(PA,i.byteLength.toString(),y_),s.push(y_),this.doWrite(e,s,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(s){return this.handleError(s,e),Promise.reject(s)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};si.WriteableStreamMessageWriter=Qf});var x_=I(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.AbstractMessageBuffer=void 0;var CA=13,kA=10,TA=`\r -`,Kf=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let n=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let n=0,i=0,s=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};Tc.AbstractMessageBuffer=Kf});var R_=I(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.createMessageConnection=Ce.ConnectionOptions=Ce.MessageStrategy=Ce.CancellationStrategy=Ce.CancellationSenderStrategy=Ce.CancellationReceiverStrategy=Ce.RequestCancellationReceiverStrategy=Ce.IdCancellationReceiverStrategy=Ce.ConnectionStrategy=Ce.ConnectionError=Ce.ConnectionErrors=Ce.LogTraceNotification=Ce.SetTraceNotification=Ce.TraceFormat=Ce.TraceValues=Ce.Trace=Ce.NullLogger=Ce.ProgressType=Ce.ProgressToken=void 0;var P_=ii(),_t=go(),he=Rf(),C_=Ff(),Ts=mo(),Jf=xc(),Fs;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(Fs||(Fs={}));var Xf;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(Xf||(Ce.ProgressToken=Xf={}));var Rs;(function(t){t.type=new he.NotificationType("$/progress")})(Rs||(Rs={}));var Yf=class{constructor(){}};Ce.ProgressType=Yf;var Zf;(function(t){function e(n){return _t.func(n)}t.is=e})(Zf||(Zf={}));Ce.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(Ce.Trace=He={}));var k_;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(k_||(Ce.TraceValues=k_={}));(function(t){function e(i){if(!_t.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(Ce.Trace=He={}));var Tn;(function(t){t.Text="text",t.JSON="json"})(Tn||(Ce.TraceFormat=Tn={}));(function(t){function e(n){return _t.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Tn||(Ce.TraceFormat=Tn={}));var eh;(function(t){t.type=new he.NotificationType("$/setTrace")})(eh||(Ce.SetTraceNotification=eh={}));var Rc;(function(t){t.type=new he.NotificationType("$/logTrace")})(Rc||(Ce.LogTraceNotification=Rc={}));var Ds;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(Ds||(Ce.ConnectionErrors=Ds={}));var yo=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Ce.ConnectionError=yo;var th;(function(t){function e(n){let i=n;return i&&_t.func(i.cancelUndispatched)}t.is=e})(th||(Ce.ConnectionStrategy=th={}));var Dc;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(Dc||(Ce.IdCancellationReceiverStrategy=Dc={}));var nh;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(nh||(Ce.RequestCancellationReceiverStrategy=nh={}));var Fc;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new Jf.CancellationTokenSource}});function e(n){return Dc.is(n)||nh.is(n)}t.is=e})(Fc||(Ce.CancellationReceiverStrategy=Fc={}));var Ec;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Fs.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&_t.func(i.sendCancellation)&&_t.func(i.cleanup)}t.is=e})(Ec||(Ce.CancellationSenderStrategy=Ec={}));var Ic;(function(t){t.Message=Object.freeze({receiver:Fc.Message,sender:Ec.Message});function e(n){let i=n;return i&&Fc.is(i.receiver)&&Ec.is(i.sender)}t.is=e})(Ic||(Ce.CancellationStrategy=Ic={}));var Mc;(function(t){function e(n){let i=n;return i&&_t.func(i.handleMessage)}t.is=e})(Mc||(Ce.MessageStrategy=Mc={}));var T_;(function(t){function e(n){let i=n;return i&&(Ic.is(i.cancellationStrategy)||th.is(i.connectionStrategy)||Mc.is(i.messageStrategy))}t.is=e})(T_||(Ce.ConnectionOptions=T_={}));var Zn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Zn||(Zn={}));function RA(t,e,n,i){let s=n!==void 0?n:Ce.NullLogger,c=0,u=0,d=0,f="2.0",m,v=new Map,x,D=new Map,N=new Map,A,L=new C_.LinkedMap,B=new Map,K=new Set,F=new Map,P=He.Off,U=Tn.Text,te,ve=Zn.New,Be=new Ts.Emitter,Je=new Ts.Emitter,Dt=new Ts.Emitter,xe=new Ts.Emitter,X=new Ts.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Ic.Message;function se(C){if(C===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+C.toString()}function re(C){return C===null?"res-unknown-"+(++d).toString():"res-"+C.toString()}function De(){return"not-"+(++u).toString()}function pe(C,H){he.Message.isRequest(H)?C.set(se(H.id),H):he.Message.isResponse(H)?C.set(re(H.id),H):C.set(De(),H)}function me(C){}function St(){return ve===Zn.Listening}function We(){return ve===Zn.Closed}function je(){return ve===Zn.Disposed}function bn(){(ve===Zn.New||ve===Zn.Listening)&&(ve=Zn.Closed,Je.fire(void 0))}function wr(C){Be.fire([C,void 0,void 0])}function Vn(C){Be.fire(C)}t.onClose(bn),t.onError(wr),e.onClose(bn),e.onError(Vn);function lr(){A||L.size===0||(A=(0,P_.default)().timer.setImmediate(()=>{A=void 0,dr()}))}function Pi(C){he.Message.isRequest(C)?Ki(C):he.Message.isNotification(C)?xr(C):he.Message.isResponse(C)?Sr(C):Pr(C)}function dr(){if(L.size===0)return;let C=L.shift();try{let H=i?.messageStrategy;Mc.is(H)?H.handleMessage(C,Pi):Pi(C)}finally{lr()}}let fr=C=>{try{if(he.Message.isNotification(C)&&C.method===Fs.type.method){let H=C.params.id,Z=se(H),ie=L.get(Z);if(he.Message.isRequest(ie)){let Le=i?.connectionStrategy,Ge=Le&&Le.cancelUndispatched?Le.cancelUndispatched(ie,me):void 0;if(Ge&&(Ge.error!==void 0||Ge.result!==void 0)){L.delete(Z),F.delete(H),Ge.id=ie.id,Bt(Ge,C.method,Date.now()),e.write(Ge).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=F.get(H);if(Ue!==void 0){Ue.cancel(),Hr(C);return}else K.add(H)}pe(L,C)}finally{lr()}};function Ki(C){if(je())return;function H(Fe,Qe,Ne){let at={jsonrpc:f,id:C.id};Fe instanceof he.ResponseError?at.error=Fe.toJson():at.result=Fe===void 0?null:Fe,Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function Z(Fe,Qe,Ne){let at={jsonrpc:f,id:C.id,error:Fe.toJson()};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}function ie(Fe,Qe,Ne){Fe===void 0&&(Fe=null);let at={jsonrpc:f,id:C.id,result:Fe};Bt(at,Qe,Ne),e.write(at).catch(()=>s.error("Sending response failed."))}Ci(C);let Ue=v.get(C.method),Le,Ge;Ue&&(Le=Ue.type,Ge=Ue.handler);let tt=Date.now();if(Ge||m){let Fe=C.id??String(Date.now()),Qe=Dc.is(z.receiver)?z.receiver.createCancellationTokenSource(Fe):z.receiver.createCancellationTokenSource(C);C.id!==null&&K.has(C.id)&&Qe.cancel(),C.id!==null&&F.set(Fe,Qe);try{let Ne;if(Ge)if(C.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines ${Le.numberOfParams} params but received none.`),C.method,tt);return}Ne=Ge(Qe.token)}else if(Array.isArray(C.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by name but received parameters by position`),C.method,tt);return}Ne=Ge(...C.params,Qe.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by position but received parameters by name`),C.method,tt);return}Ne=Ge(C.params,Qe.token)}else m&&(Ne=m(C.method,C.params,Qe.token));let at=Ne;Ne?at.then?at.then(Ft=>{F.delete(Fe),H(Ft,C.method,tt)},Ft=>{F.delete(Fe),Ft instanceof he.ResponseError?Z(Ft,C.method,tt):Ft&&_t.string(Ft.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ft.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}):(F.delete(Fe),H(Ne,C.method,tt)):(F.delete(Fe),ie(Ne,C.method,tt))}catch(Ne){F.delete(Fe),Ne instanceof he.ResponseError?H(Ne,C.method,tt):Ne&&_t.string(Ne.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ne.message}`),C.method,tt):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,tt)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${C.method}`),C.method,tt)}function Sr(C){if(!je())if(C.id===null)C.error?s.error(`Received response message without id: Error is: -${JSON.stringify(C.error,void 0,4)}`):s.error("Received response message without id. No further error information provided.");else{let H=C.id,Z=B.get(H);if(gr(C,Z),Z!==void 0){B.delete(H);try{if(C.error){let ie=C.error;Z.reject(new he.ResponseError(ie.code,ie.message,ie.data))}else if(C.result!==void 0)Z.resolve(C.result);else throw new Error("Should never happen.")}catch(ie){ie.message?s.error(`Response handler '${Z.method}' failed with message: ${ie.message}`):s.error(`Response handler '${Z.method}' failed unexpectedly.`)}}}}function xr(C){if(je())return;let H,Z;if(C.method===Fs.type.method){let ie=C.params.id;K.delete(ie),Hr(C);return}else{let ie=D.get(C.method);ie&&(Z=ie.handler,H=ie.type)}if(Z||x)try{if(Hr(C),Z)if(C.params===void 0)H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received none.`),Z();else if(Array.isArray(C.params)){let ie=C.params;C.method===Rs.type.method&&ie.length===2&&Xf.is(ie[0])?Z({token:ie[0],value:ie[1]}):(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines parameters by name but received parameters by position`),H.numberOfParams!==C.params.length&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received ${ie.length} arguments`)),Z(...ie))}else H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&s.error(`Notification ${C.method} defines parameters by position but received parameters by name`),Z(C.params);else x&&x(C.method,C.params)}catch(ie){ie.message?s.error(`Notification handler '${C.method}' failed with message: ${ie.message}`):s.error(`Notification handler '${C.method}' failed unexpectedly.`)}else Dt.fire(C)}function Pr(C){if(!C){s.error("Received empty message.");return}s.error(`Received message which is neither a response nor a notification message: -${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z=H.id,ie=B.get(Z);ie&&ie.reject(new Error("The received response has neither a result nor an error property."))}}function mt(C){if(C!=null)switch(P){case He.Verbose:return JSON.stringify(C,null,4);case He.Compact:return JSON.stringify(C);default:return}}function hr(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} +"use strict";var KM=Object.create;var nf=Object.defineProperty;var JM=Object.getOwnPropertyDescriptor;var XM=Object.getOwnPropertyNames;var YM=Object.getPrototypeOf,ZM=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var i_=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of XM(e))!ZM.call(t,s)&&s!==n&&nf(t,s,{get:()=>e[s],enumerable:!(i=JM(e,s))||i.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?KM(YM(t)):{},i_(e||!t||!t.__esModule?nf(n,"default",{value:t,enumerable:!0}):n,t)),eA=t=>i_(nf({},"__esModule",{value:!0}),t);var gc=I(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.thenable=Et.typedArray=Et.stringArray=Et.array=Et.func=Et.error=Et.number=Et.string=Et.boolean=void 0;function nA(t){return t===!0||t===!1}Et.boolean=nA;function c_(t){return typeof t=="string"||t instanceof String}Et.string=c_;function rA(t){return typeof t=="number"||t instanceof Number}Et.number=rA;function iA(t){return t instanceof Error}Et.error=iA;function u_(t){return typeof t=="function"}Et.func=u_;function l_(t){return Array.isArray(t)}Et.array=l_;function oA(t){return l_(t)&&t.every(e=>c_(e))}Et.stringArray=oA;function sA(t,e){return Array.isArray(t)&&t.every(e)}Et.typedArray=sA;function aA(t){return t&&u_(t.then)}Et.thenable=aA});var ho=I(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.stringArray=Vt.array=Vt.func=Vt.error=Vt.number=Vt.string=Vt.boolean=void 0;function cA(t){return t===!0||t===!1}Vt.boolean=cA;function d_(t){return typeof t=="string"||t instanceof String}Vt.string=d_;function uA(t){return typeof t=="number"||t instanceof Number}Vt.number=uA;function lA(t){return t instanceof Error}Vt.error=lA;function dA(t){return typeof t=="function"}Vt.func=dA;function f_(t){return Array.isArray(t)}Vt.array=f_;function fA(t){return f_(t)&&t.every(e=>d_(e))}Vt.stringArray=fA});var Df=I(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Message=ce.NotificationType9=ce.NotificationType8=ce.NotificationType7=ce.NotificationType6=ce.NotificationType5=ce.NotificationType4=ce.NotificationType3=ce.NotificationType2=ce.NotificationType1=ce.NotificationType0=ce.NotificationType=ce.RequestType9=ce.RequestType8=ce.RequestType7=ce.RequestType6=ce.RequestType5=ce.RequestType4=ce.RequestType3=ce.RequestType2=ce.RequestType1=ce.RequestType=ce.RequestType0=ce.AbstractMessageSignature=ce.ParameterStructures=ce.ResponseError=ce.ErrorCodes=void 0;var qi=ho(),of;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(of||(ce.ErrorCodes=of={}));var sf=class t extends Error{constructor(e,n,i){super(n),this.code=qi.number(e)?e:of.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ce.ResponseError=sf;var fn=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ce.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var lt=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ce.AbstractMessageSignature=lt;var af=class extends lt{constructor(e){super(e,0)}};ce.RequestType0=af;var cf=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType=cf;var uf=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType1=uf;var lf=class extends lt{constructor(e){super(e,2)}};ce.RequestType2=lf;var df=class extends lt{constructor(e){super(e,3)}};ce.RequestType3=df;var ff=class extends lt{constructor(e){super(e,4)}};ce.RequestType4=ff;var hf=class extends lt{constructor(e){super(e,5)}};ce.RequestType5=hf;var gf=class extends lt{constructor(e){super(e,6)}};ce.RequestType6=gf;var pf=class extends lt{constructor(e){super(e,7)}};ce.RequestType7=pf;var mf=class extends lt{constructor(e){super(e,8)}};ce.RequestType8=mf;var bf=class extends lt{constructor(e){super(e,9)}};ce.RequestType9=bf;var _f=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType=_f;var vf=class extends lt{constructor(e){super(e,0)}};ce.NotificationType0=vf;var yf=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType1=yf;var wf=class extends lt{constructor(e){super(e,2)}};ce.NotificationType2=wf;var Sf=class extends lt{constructor(e){super(e,3)}};ce.NotificationType3=Sf;var xf=class extends lt{constructor(e){super(e,4)}};ce.NotificationType4=xf;var Pf=class extends lt{constructor(e){super(e,5)}};ce.NotificationType5=Pf;var Cf=class extends lt{constructor(e){super(e,6)}};ce.NotificationType6=Cf;var kf=class extends lt{constructor(e){super(e,7)}};ce.NotificationType7=kf;var Tf=class extends lt{constructor(e){super(e,8)}};ce.NotificationType8=Tf;var Rf=class extends lt{constructor(e){super(e,9)}};ce.NotificationType9=Rf;var h_;(function(t){function e(s){let c=s;return c&&qi.string(c.method)&&(qi.string(c.id)||qi.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&qi.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(qi.string(c.id)||qi.number(c.id)||c.id===null)}t.isResponse=i})(h_||(ce.Message=h_={}))});var Ef=I(ni=>{"use strict";var g_;Object.defineProperty(ni,"__esModule",{value:!0});ni.LRUCache=ni.LinkedMap=ni.Touch=void 0;var Gt;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Gt||(ni.Touch=Gt={}));var pc=class{constructor(){this[g_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Gt.None){let i=this._map.get(e);if(i)return n!==Gt.None&&this.touch(i,n),i.value}set(e,n,i=Gt.None){let s=this._map.get(e);if(s)s.value=n,i!==Gt.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Gt.None:this.addItemLast(s);break;case Gt.First:this.addItemFirst(s);break;case Gt.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(g_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Gt.First&&n!==Gt.Last)){if(n===Gt.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Gt.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};ni.LinkedMap=pc;var Ff=class extends pc{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Gt.AsNew){return super.get(e,n)}peek(e){return super.get(e,Gt.None)}set(e,n){return super.set(e,n,Gt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ni.LRUCache=Ff});var m_=I(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});mc.Disposable=void 0;var p_;(function(t){function e(n){return{dispose:n}}t.create=e})(p_||(mc.Disposable=p_={}))});var ri=I(Af=>{"use strict";Object.defineProperty(Af,"__esModule",{value:!0});var If;function Mf(){if(If===void 0)throw new Error("No runtime abstraction layer installed");return If}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");If=n}t.install=e})(Mf||(Mf={}));Af.default=Mf});var po=I(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.Emitter=go.Event=void 0;var hA=ri(),b_;(function(t){let e={dispose(){}};t.None=function(){return e}})(b_||(go.Event=b_={}));var Nf=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Nf),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};go.Emitter=bc;bc._noop=function(){}});var yc=I(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.CancellationTokenSource=mo.CancellationToken=void 0;var gA=ri(),pA=ho(),qf=po(),_c;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:qf.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:qf.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||pA.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(_c||(mo.CancellationToken=_c={}));var mA=Object.freeze(function(t,e){let n=(0,gA.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),vc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?mA:(this._emitter||(this._emitter=new qf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Of=class{get token(){return this._token||(this._token=new vc),this._token}cancel(){this._token?this._token.cancel():this._token=_c.Cancelled}dispose(){this._token?this._token instanceof vc&&this._token.dispose():this._token=_c.None}};mo.CancellationTokenSource=Of});var __=I(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.SharedArrayReceiverStrategy=bo.SharedArraySenderStrategy=void 0;var bA=yc(),Cs;(function(t){t.Continue=0,t.Cancelled=1})(Cs||(Cs={}));var Lf=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=Cs.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,Cs.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};bo.SharedArraySenderStrategy=Lf;var Bf=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===Cs.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Uf=class{constructor(e){this.token=new Bf(e)}cancel(){}dispose(){}},$f=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new bA.CancellationTokenSource:new Uf(n)}};bo.SharedArrayReceiverStrategy=$f});var jf=I(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});wc.Semaphore=void 0;var _A=ri(),Wf=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,_A.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};wc.Semaphore=Wf});var y_=I(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.ReadableStreamMessageReader=ii.AbstractMessageReader=ii.MessageReader=void 0;var Hf=ri(),_o=ho(),zf=po(),vA=jf(),v_;(function(t){function e(n){let i=n;return i&&_o.func(i.listen)&&_o.func(i.dispose)&&_o.func(i.onError)&&_o.func(i.onClose)&&_o.func(i.onPartialMessage)}t.is=e})(v_||(ii.MessageReader=v_={}));var Sc=class{constructor(){this.errorEmitter=new zf.Emitter,this.closeEmitter=new zf.Emitter,this.partialMessageEmitter=new zf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${_o.string(e.message)?e.message:"unknown"}`)}};ii.AbstractMessageReader=Sc;var Vf;(function(t){function e(n){let i,s,c,u=new Map,d,f=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let m of n.contentDecoders)u.set(m.name,m);if(n.contentTypeDecoder!==void 0&&(d=n.contentTypeDecoder,f.set(d.name,d)),n.contentTypeDecoders!==void 0)for(let m of n.contentTypeDecoders)f.set(m.name,m)}return d===void 0&&(d=(0,Hf.default)().applicationJson.decoder,f.set(d.name,d)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:d,contentTypeDecoders:f}}t.fromOptions=e})(Vf||(Vf={}));var Gf=class extends Sc{constructor(e,n){super(),this.readable=e,this.options=Vf.fromOptions(n),this.buffer=(0,Hf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new vA.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. +${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,Hf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};ii.ReadableStreamMessageReader=Gf});var C_=I(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.WriteableStreamMessageWriter=oi.AbstractMessageWriter=oi.MessageWriter=void 0;var w_=ri(),ks=ho(),yA=jf(),S_=po(),wA="Content-Length: ",x_=`\r +`,P_;(function(t){function e(n){let i=n;return i&&ks.func(i.dispose)&&ks.func(i.onClose)&&ks.func(i.onError)&&ks.func(i.write)}t.is=e})(P_||(oi.MessageWriter=P_={}));var xc=class{constructor(){this.errorEmitter=new S_.Emitter,this.closeEmitter=new S_.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${ks.string(e.message)?e.message:"unknown"}`)}};oi.AbstractMessageWriter=xc;var Qf;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,w_.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,w_.default)().applicationJson.encoder}}t.fromOptions=e})(Qf||(Qf={}));var Kf=class extends xc{constructor(e,n){super(),this.writable=e,this.options=Qf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new yA.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let s=[];return s.push(wA,i.byteLength.toString(),x_),s.push(x_),this.doWrite(e,s,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(s){return this.handleError(s,e),Promise.reject(s)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};oi.WriteableStreamMessageWriter=Kf});var k_=I(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.AbstractMessageBuffer=void 0;var SA=13,xA=10,PA=`\r +`,Jf=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let n=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let n=0,i=0,s=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};Pc.AbstractMessageBuffer=Jf});var E_=I(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.createMessageConnection=Ce.ConnectionOptions=Ce.MessageStrategy=Ce.CancellationStrategy=Ce.CancellationSenderStrategy=Ce.CancellationReceiverStrategy=Ce.RequestCancellationReceiverStrategy=Ce.IdCancellationReceiverStrategy=Ce.ConnectionStrategy=Ce.ConnectionError=Ce.ConnectionErrors=Ce.LogTraceNotification=Ce.SetTraceNotification=Ce.TraceFormat=Ce.TraceValues=Ce.Trace=Ce.NullLogger=Ce.ProgressType=Ce.ProgressToken=void 0;var T_=ri(),_t=ho(),he=Df(),R_=Ef(),Ts=po(),Xf=yc(),Fs;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(Fs||(Fs={}));var Yf;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(Yf||(Ce.ProgressToken=Yf={}));var Rs;(function(t){t.type=new he.NotificationType("$/progress")})(Rs||(Rs={}));var Zf=class{constructor(){}};Ce.ProgressType=Zf;var eh;(function(t){function e(n){return _t.func(n)}t.is=e})(eh||(eh={}));Ce.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(Ce.Trace=He={}));var D_;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(D_||(Ce.TraceValues=D_={}));(function(t){function e(i){if(!_t.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(Ce.Trace=He={}));var Tn;(function(t){t.Text="text",t.JSON="json"})(Tn||(Ce.TraceFormat=Tn={}));(function(t){function e(n){return _t.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Tn||(Ce.TraceFormat=Tn={}));var th;(function(t){t.type=new he.NotificationType("$/setTrace")})(th||(Ce.SetTraceNotification=th={}));var Cc;(function(t){t.type=new he.NotificationType("$/logTrace")})(Cc||(Ce.LogTraceNotification=Cc={}));var Ds;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(Ds||(Ce.ConnectionErrors=Ds={}));var vo=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Ce.ConnectionError=vo;var nh;(function(t){function e(n){let i=n;return i&&_t.func(i.cancelUndispatched)}t.is=e})(nh||(Ce.ConnectionStrategy=nh={}));var kc;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(kc||(Ce.IdCancellationReceiverStrategy=kc={}));var rh;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(rh||(Ce.RequestCancellationReceiverStrategy=rh={}));var Tc;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new Xf.CancellationTokenSource}});function e(n){return kc.is(n)||rh.is(n)}t.is=e})(Tc||(Ce.CancellationReceiverStrategy=Tc={}));var Rc;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Fs.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&_t.func(i.sendCancellation)&&_t.func(i.cleanup)}t.is=e})(Rc||(Ce.CancellationSenderStrategy=Rc={}));var Dc;(function(t){t.Message=Object.freeze({receiver:Tc.Message,sender:Rc.Message});function e(n){let i=n;return i&&Tc.is(i.receiver)&&Rc.is(i.sender)}t.is=e})(Dc||(Ce.CancellationStrategy=Dc={}));var Fc;(function(t){function e(n){let i=n;return i&&_t.func(i.handleMessage)}t.is=e})(Fc||(Ce.MessageStrategy=Fc={}));var F_;(function(t){function e(n){let i=n;return i&&(Dc.is(i.cancellationStrategy)||nh.is(i.connectionStrategy)||Fc.is(i.messageStrategy))}t.is=e})(F_||(Ce.ConnectionOptions=F_={}));var Zn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Zn||(Zn={}));function CA(t,e,n,i){let s=n!==void 0?n:Ce.NullLogger,c=0,u=0,d=0,f="2.0",m,y=new Map,x,D=new Map,N=new Map,A,L=new R_.LinkedMap,B=new Map,K=new Set,F=new Map,P=He.Off,U=Tn.Text,te,ve=Zn.New,Be=new Ts.Emitter,Je=new Ts.Emitter,Dt=new Ts.Emitter,xe=new Ts.Emitter,X=new Ts.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Dc.Message;function se(C){if(C===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+C.toString()}function re(C){return C===null?"res-unknown-"+(++d).toString():"res-"+C.toString()}function De(){return"not-"+(++u).toString()}function ge(C,H){he.Message.isRequest(H)?C.set(se(H.id),H):he.Message.isResponse(H)?C.set(re(H.id),H):C.set(De(),H)}function pe(C){}function St(){return ve===Zn.Listening}function We(){return ve===Zn.Closed}function je(){return ve===Zn.Disposed}function bn(){(ve===Zn.New||ve===Zn.Listening)&&(ve=Zn.Closed,Je.fire(void 0))}function yr(C){Be.fire([C,void 0,void 0])}function Vn(C){Be.fire(C)}t.onClose(bn),t.onError(yr),e.onClose(bn),e.onError(Vn);function ur(){A||L.size===0||(A=(0,T_.default)().timer.setImmediate(()=>{A=void 0,lr()}))}function xi(C){he.Message.isRequest(C)?Qi(C):he.Message.isNotification(C)?Sr(C):he.Message.isResponse(C)?wr(C):xr(C)}function lr(){if(L.size===0)return;let C=L.shift();try{let H=i?.messageStrategy;Fc.is(H)?H.handleMessage(C,xi):xi(C)}finally{ur()}}let dr=C=>{try{if(he.Message.isNotification(C)&&C.method===Fs.type.method){let H=C.params.id,Z=se(H),ie=L.get(Z);if(he.Message.isRequest(ie)){let Le=i?.connectionStrategy,Ge=Le&&Le.cancelUndispatched?Le.cancelUndispatched(ie,pe):void 0;if(Ge&&(Ge.error!==void 0||Ge.result!==void 0)){L.delete(Z),F.delete(H),Ge.id=ie.id,Bt(Ge,C.method,Date.now()),e.write(Ge).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=F.get(H);if(Ue!==void 0){Ue.cancel(),zr(C);return}else K.add(H)}ge(L,C)}finally{ur()}};function Qi(C){if(je())return;function H(Fe,Qe,Ne){let ct={jsonrpc:f,id:C.id};Fe instanceof he.ResponseError?ct.error=Fe.toJson():ct.result=Fe===void 0?null:Fe,Bt(ct,Qe,Ne),e.write(ct).catch(()=>s.error("Sending response failed."))}function Z(Fe,Qe,Ne){let ct={jsonrpc:f,id:C.id,error:Fe.toJson()};Bt(ct,Qe,Ne),e.write(ct).catch(()=>s.error("Sending response failed."))}function ie(Fe,Qe,Ne){Fe===void 0&&(Fe=null);let ct={jsonrpc:f,id:C.id,result:Fe};Bt(ct,Qe,Ne),e.write(ct).catch(()=>s.error("Sending response failed."))}Pi(C);let Ue=y.get(C.method),Le,Ge;Ue&&(Le=Ue.type,Ge=Ue.handler);let et=Date.now();if(Ge||m){let Fe=C.id??String(Date.now()),Qe=kc.is(z.receiver)?z.receiver.createCancellationTokenSource(Fe):z.receiver.createCancellationTokenSource(C);C.id!==null&&K.has(C.id)&&Qe.cancel(),C.id!==null&&F.set(Fe,Qe);try{let Ne;if(Ge)if(C.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines ${Le.numberOfParams} params but received none.`),C.method,et);return}Ne=Ge(Qe.token)}else if(Array.isArray(C.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by name but received parameters by position`),C.method,et);return}Ne=Ge(...C.params,Qe.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by position but received parameters by name`),C.method,et);return}Ne=Ge(C.params,Qe.token)}else m&&(Ne=m(C.method,C.params,Qe.token));let ct=Ne;Ne?ct.then?ct.then(Ft=>{F.delete(Fe),H(Ft,C.method,et)},Ft=>{F.delete(Fe),Ft instanceof he.ResponseError?Z(Ft,C.method,et):Ft&&_t.string(Ft.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ft.message}`),C.method,et):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,et)}):(F.delete(Fe),H(Ne,C.method,et)):(F.delete(Fe),ie(Ne,C.method,et))}catch(Ne){F.delete(Fe),Ne instanceof he.ResponseError?H(Ne,C.method,et):Ne&&_t.string(Ne.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ne.message}`),C.method,et):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,et)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${C.method}`),C.method,et)}function wr(C){if(!je())if(C.id===null)C.error?s.error(`Received response message without id: Error is: +${JSON.stringify(C.error,void 0,4)}`):s.error("Received response message without id. No further error information provided.");else{let H=C.id,Z=B.get(H);if(hr(C,Z),Z!==void 0){B.delete(H);try{if(C.error){let ie=C.error;Z.reject(new he.ResponseError(ie.code,ie.message,ie.data))}else if(C.result!==void 0)Z.resolve(C.result);else throw new Error("Should never happen.")}catch(ie){ie.message?s.error(`Response handler '${Z.method}' failed with message: ${ie.message}`):s.error(`Response handler '${Z.method}' failed unexpectedly.`)}}}}function Sr(C){if(je())return;let H,Z;if(C.method===Fs.type.method){let ie=C.params.id;K.delete(ie),zr(C);return}else{let ie=D.get(C.method);ie&&(Z=ie.handler,H=ie.type)}if(Z||x)try{if(zr(C),Z)if(C.params===void 0)H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received none.`),Z();else if(Array.isArray(C.params)){let ie=C.params;C.method===Rs.type.method&&ie.length===2&&Yf.is(ie[0])?Z({token:ie[0],value:ie[1]}):(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines parameters by name but received parameters by position`),H.numberOfParams!==C.params.length&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received ${ie.length} arguments`)),Z(...ie))}else H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&s.error(`Notification ${C.method} defines parameters by position but received parameters by name`),Z(C.params);else x&&x(C.method,C.params)}catch(ie){ie.message?s.error(`Notification handler '${C.method}' failed with message: ${ie.message}`):s.error(`Notification handler '${C.method}' failed unexpectedly.`)}else Dt.fire(C)}function xr(C){if(!C){s.error("Received empty message.");return}s.error(`Received message which is neither a response nor a notification message: +${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z=H.id,ie=B.get(Z);ie&&ie.reject(new Error("The received response has neither a result nor an error property."))}}function mt(C){if(C!=null)switch(P){case He.Verbose:return JSON.stringify(C,null,4);case He.Compact:return JSON.stringify(C);default:return}}function fr(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} -`),te.log(`Sending request '${C.method} - (${C.id})'.`,H)}else xt("send-request",C)}function Ji(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} +`),te.log(`Sending request '${C.method} - (${C.id})'.`,H)}else xt("send-request",C)}function Ki(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} `:H=`No parameters provided. @@ -22,27 +22,27 @@ ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z `:C.error===void 0&&(ie=`No result returned. -`)),te.log(`Sending response '${H} - (${C.id})'. Processing request took ${Date.now()-Z}ms`,ie)}else xt("send-response",C)}function Ci(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} +`)),te.log(`Sending response '${H} - (${C.id})'. Processing request took ${Date.now()-Z}ms`,ie)}else xt("send-response",C)}function Pi(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} -`),te.log(`Received request '${C.method} - (${C.id})'.`,H)}else xt("receive-request",C)}function Hr(C){if(!(P===He.Off||!te||C.method===Rc.type.method))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} +`),te.log(`Received request '${C.method} - (${C.id})'.`,H)}else xt("receive-request",C)}function zr(C){if(!(P===He.Off||!te||C.method===Cc.type.method))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} `:H=`No parameters provided. -`),te.log(`Received notification '${C.method}'.`,H)}else xt("receive-notification",C)}function gr(C,H){if(!(P===He.Off||!te))if(U===Tn.Text){let Z;if((P===He.Verbose||P===He.Compact)&&(C.error&&C.error.data?Z=`Error data: ${mt(C.error.data)} +`),te.log(`Received notification '${C.method}'.`,H)}else xt("receive-notification",C)}function hr(C,H){if(!(P===He.Off||!te))if(U===Tn.Text){let Z;if((P===He.Verbose||P===He.Compact)&&(C.error&&C.error.data?Z=`Error data: ${mt(C.error.data)} `:C.result?Z=`Result: ${mt(C.result)} `:C.error===void 0&&(Z=`No result returned. -`)),H){let ie=C.error?` Request failed: ${C.error.message} (${C.error.code}).`:"";te.log(`Received response '${H.method} - (${C.id})' in ${Date.now()-H.timerStart}ms.${ie}`,Z)}else te.log(`Received response ${C.id} without active response promise.`,Z)}else xt("receive-response",C)}function xt(C,H){if(!te||P===He.Off)return;let Z={isLSPMessage:!0,type:C,message:H,timestamp:Date.now()};te.log(Z)}function sn(){if(We())throw new yo(Ds.Closed,"Connection is closed.");if(je())throw new yo(Ds.Disposed,"Connection is disposed.")}function Cr(){if(St())throw new yo(Ds.AlreadyListening,"Connection is already listening")}function Xi(){if(!St())throw new Error("Call listen() first.")}function jt(C){return C===void 0?null:C}function ki(C){if(C!==null)return C}function Gn(C){return C!=null&&!Array.isArray(C)&&typeof C=="object"}function _n(C,H){switch(C){case he.ParameterStructures.auto:return Gn(H)?ki(H):[jt(H)];case he.ParameterStructures.byName:if(!Gn(H))throw new Error("Received parameters by name but param is not an object literal.");return ki(H);case he.ParameterStructures.byPosition:return[jt(H)];default:throw new Error(`Unknown parameter structure ${C.toString()}`)}}function kr(C,H){let Z,ie=C.numberOfParams;switch(ie){case 0:Z=void 0;break;case 1:Z=_n(C.parameterStructures,H[0]);break;default:Z=[];for(let Ue=0;Ue{sn();let Z,ie;if(_t.string(C)){Z=C;let Le=H[0],Ge=0,tt=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Ge=1,tt=Le);let Fe=H.length,Qe=Fe-Ge;switch(Qe){case 0:ie=void 0;break;case 1:ie=_n(tt,H[Ge]);break;default:if(tt===he.ParameterStructures.byName)throw new Error(`Received ${Qe} parameters for 'by Name' notification parameter structure.`);ie=H.slice(Ge,Fe).map(Ne=>jt(Ne));break}}else{let Le=H;Z=C.method,ie=kr(C,Le)}let Ue={jsonrpc:f,method:Z,params:ie};return Ji(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(C,H)=>{sn();let Z;return _t.func(C)?x=C:H&&(_t.string(C)?(Z=C,D.set(C,{type:void 0,handler:H})):(Z=C.method,D.set(C.method,{type:C,handler:H}))),{dispose:()=>{Z!==void 0?D.delete(Z):x=void 0}}},onProgress:(C,H,Z)=>{if(N.has(H))throw new Error(`Progress handler for token ${H} already registered`);return N.set(H,Z),{dispose:()=>{N.delete(H)}}},sendProgress:(C,H,Z)=>vn.sendNotification(Rs.type,{token:H,value:Z}),onUnhandledProgress:xe.event,sendRequest:(C,...H)=>{sn(),Xi();let Z,ie,Ue;if(_t.string(C)){Z=C;let Fe=H[0],Qe=H[H.length-1],Ne=0,at=he.ParameterStructures.auto;he.ParameterStructures.is(Fe)&&(Ne=1,at=Fe);let Ft=H.length;Jf.CancellationToken.is(Qe)&&(Ft=Ft-1,Ue=Qe);let Yt=Ft-Ne;switch(Yt){case 0:ie=void 0;break;case 1:ie=_n(at,H[Ne]);break;default:if(at===he.ParameterStructures.byName)throw new Error(`Received ${Yt} parameters for 'by Name' request parameter structure.`);ie=H.slice(Ne,Ft).map(Yi=>jt(Yi));break}}else{let Fe=H;Z=C.method,ie=kr(C,Fe);let Qe=C.numberOfParams;Ue=Jf.CancellationToken.is(Fe[Qe])?Fe[Qe]:void 0}let Le=c++,Ge;Ue&&(Ge=Ue.onCancellationRequested(()=>{let Fe=z.sender.sendCancellation(vn,Le);return Fe===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):Fe.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let tt={jsonrpc:f,id:Le,method:Z,params:ie};return hr(tt),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(tt),new Promise(async(Fe,Qe)=>{let Ne=Yt=>{Fe(Yt),z.sender.cleanup(Le),Ge?.dispose()},at=Yt=>{Qe(Yt),z.sender.cleanup(Le),Ge?.dispose()},Ft={method:Z,timerStart:Date.now(),resolve:Ne,reject:at};try{await e.write(tt),B.set(Le,Ft)}catch(Yt){throw s.error("Sending request failed."),Ft.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Yt.message?Yt.message:"Unknown reason")),Yt}})},onRequest:(C,H)=>{sn();let Z=null;return Zf.is(C)?(Z=void 0,m=C):_t.string(C)?(Z=null,H!==void 0&&(Z=C,v.set(C,{handler:H,type:void 0}))):H!==void 0&&(Z=C.method,v.set(C.method,{type:C,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?v.delete(Z):m=void 0)}}},hasPendingResponse:()=>B.size>0,trace:async(C,H,Z)=>{let ie=!1,Ue=Tn.Text;Z!==void 0&&(_t.boolean(Z)?ie=Z:(ie=Z.sendNotification||!1,Ue=Z.traceFormat||Tn.Text)),P=C,U=Ue,P===He.Off?te=void 0:te=H,ie&&!We()&&!je()&&await vn.sendNotification(eh.type,{value:He.toString(C)})},onError:Be.event,onClose:Je.event,onUnhandledNotification:Dt.event,onDispose:X.event,end:()=>{e.end()},dispose:()=>{if(je())return;ve=Zn.Disposed,X.fire(void 0);let C=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of B.values())H.reject(C);B=new Map,F=new Map,K=new Set,L=new C_.LinkedMap,_t.func(e.dispose)&&e.dispose(),_t.func(t.dispose)&&t.dispose()},listen:()=>{sn(),Cr(),ve=Zn.Listening,t.listen(fr)},inspect:()=>{(0,P_.default)().console.log("inspect")}};return vn.onNotification(Rc.type,C=>{if(P===He.Off||!te)return;let H=P===He.Verbose||P===He.Compact;te.log(C.message,H?C.verbose:void 0)}),vn.onNotification(Rs.type,C=>{let H=N.get(C.token);H?H(C.value):xe.fire(C)}),vn}Ce.createMessageConnection=RA});var Ac=I(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var rt=Rf();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return rt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return rt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return rt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return rt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return rt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return rt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return rt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return rt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return rt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return rt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return rt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return rt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return rt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return rt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return rt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return rt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return rt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return rt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return rt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return rt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return rt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return rt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return rt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return rt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return rt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return rt.ParameterStructures}});var rh=Ff();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return rh.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return rh.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return rh.Touch}});var DA=h_();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return DA.Disposable}});var D_=mo();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return D_.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return D_.Emitter}});var F_=xc();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return F_.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return F_.CancellationToken}});var E_=p_();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return E_.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return E_.SharedArrayReceiverStrategy}});var ih=b_();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return ih.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return ih.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return ih.ReadableStreamMessageReader}});var oh=S_();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return oh.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return oh.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return oh.WriteableStreamMessageWriter}});var FA=x_();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return FA.AbstractMessageBuffer}});var $t=R_();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return $t.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return $t.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return $t.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return $t.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return $t.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return $t.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return $t.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return $t.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return $t.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return $t.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return $t.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return $t.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return $t.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return $t.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return $t.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return $t.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return $t.MessageStrategy}});var EA=ii();j.RAL=EA.default});var A_=I(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var I_=require("util"),qr=Ac(),Nc=class t extends qr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new I_.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};Nc.emptyBuffer=Buffer.allocUnsafe(0);var sh=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),qr.Disposable.create(()=>this.stream.off("data",e))}},ah=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),qr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),qr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),qr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},M_=Object.freeze({messageBuffer:Object.freeze({create:t=>new Nc(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new I_.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new sh(t),asWritableStream:t=>new ah(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function ch(){return M_}(function(t){function e(){qr.RAL.install(M_)}t.install=e})(ch||(ch={}));uh.default=ch});var Ui=I(Oe=>{"use strict";var IA=Oe&&Oe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),MA=Oe&&Oe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&IA(e,t,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var wo=A_();wo.default.install();var N_=require("path"),AA=require("os"),NA=require("crypto"),Lc=require("net"),Rn=Ac();MA(Ac(),Oe);var lh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Rn.Disposable.create(()=>this.process.off("message",e))}};Oe.IPCMessageReader=lh;var dh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=dh;var fh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.onData=new Rn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};Oe.PortMessageReader=fh;var hh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.PortMessageWriter=hh;var Li=class extends Rn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,wo.default)().stream.asReadableStream(e),n)}};Oe.SocketMessageReader=Li;var Bi=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,wo.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Bi;var qc=class extends Rn.ReadableStreamMessageReader{constructor(e,n){super((0,wo.default)().stream.asReadableStream(e),n)}};Oe.StreamMessageReader=qc;var Oc=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,wo.default)().stream.asWritableStream(e),n)}};Oe.StreamMessageWriter=Oc;var q_=process.env.XDG_RUNTIME_DIR,qA=new Map([["linux",107],["darwin",103]]);function OA(){let t=(0,NA.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;q_?e=N_.join(q_,`vscode-ipc-${t}.sock`):e=N_.join(AA.tmpdir(),`vscode-${t}.sock`);let n=qA.get(process.platform);return n!==void 0&&e.length>n&&(0,wo.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}Oe.generateRandomPipeName=OA;function LA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Li(d,e),new Bi(d,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientPipeTransport=LA;function BA(t,e="utf-8"){let n=(0,Lc.createConnection)(t);return[new Li(n,e),new Bi(n,e)]}Oe.createServerPipeTransport=BA;function UA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Lc.createServer)(d=>{u.close(),n([new Li(d,e),new Bi(d,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientSocketTransport=UA;function $A(t,e="utf-8"){let n=(0,Lc.createConnection)(t,"127.0.0.1");return[new Li(n,e),new Bi(n,e)]}Oe.createServerSocketTransport=$A;function WA(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function jA(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function zA(t,e,n,i){n||(n=Rn.NullLogger);let s=WA(t)?new qc(t):t,c=jA(e)?new Oc(e):e;return Rn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Rn.createMessageConnection)(s,c,n,i)}Oe.createMessageConnection=zA});var gh=I((x2,O_)=>{"use strict";O_.exports=Ui()});var Uc=I((L_,Bc)=>{"use strict";(function(t){if(typeof Bc=="object"&&typeof Bc.exports=="object"){var e=t(require,L_);e!==void 0&&(Bc.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function k(R){return typeof R=="string"}p.is=k})(n||(e.DocumentUri=n={}));var i;(function(p){function k(R){return typeof R=="string"}p.is=k})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(c||(e.uinteger=c={}));var u;(function(p){function k(y,g){return y===Number.MAX_VALUE&&(y=c.MAX_VALUE),g===Number.MAX_VALUE&&(g=c.MAX_VALUE),{line:y,character:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.line)&&q.uinteger(g.character)}p.is=R})(u||(e.Position=u={}));var d;(function(p){function k(y,g,O,G){if(q.uinteger(y)&&q.uinteger(g)&&q.uinteger(O)&&q.uinteger(G))return{start:u.create(y,g),end:u.create(O,G)};if(u.is(y)&&u.is(g))return{start:y,end:g};throw new Error("Range#create called with invalid arguments[".concat(y,", ").concat(g,", ").concat(O,", ").concat(G,"]"))}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&u.is(g.start)&&u.is(g.end)}p.is=R})(d||(e.Range=d={}));var f;(function(p){function k(y,g){return{uri:y,range:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&(q.string(g.uri)||q.undefined(g.uri))}p.is=R})(f||(e.Location=f={}));var m;(function(p){function k(y,g,O,G){return{targetUri:y,targetRange:g,targetSelectionRange:O,originSelectionRange:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.targetRange)&&q.string(g.targetUri)&&d.is(g.targetSelectionRange)&&(d.is(g.originSelectionRange)||q.undefined(g.originSelectionRange))}p.is=R})(m||(e.LocationLink=m={}));var v;(function(p){function k(y,g,O,G){return{red:y,green:g,blue:O,alpha:G}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.numberRange(g.red,0,1)&&q.numberRange(g.green,0,1)&&q.numberRange(g.blue,0,1)&&q.numberRange(g.alpha,0,1)}p.is=R})(v||(e.Color=v={}));var x;(function(p){function k(y,g){return{range:y,color:g}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&d.is(g.range)&&v.is(g.color)}p.is=R})(x||(e.ColorInformation=x={}));var D;(function(p){function k(y,g,O){return{label:y,textEdit:g,additionalTextEdits:O}}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.undefined(g.textEdit)||te.is(g))&&(q.undefined(g.additionalTextEdits)||q.typedArray(g.additionalTextEdits,te.is))}p.is=R})(D||(e.ColorPresentation=D={}));var N;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(N||(e.FoldingRangeKind=N={}));var A;(function(p){function k(y,g,O,G,be,ft){var Xe={startLine:y,endLine:g};return q.defined(O)&&(Xe.startCharacter=O),q.defined(G)&&(Xe.endCharacter=G),q.defined(be)&&(Xe.kind=be),q.defined(ft)&&(Xe.collapsedText=ft),Xe}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.uinteger(g.startLine)&&q.uinteger(g.startLine)&&(q.undefined(g.startCharacter)||q.uinteger(g.startCharacter))&&(q.undefined(g.endCharacter)||q.uinteger(g.endCharacter))&&(q.undefined(g.kind)||q.string(g.kind))}p.is=R})(A||(e.FoldingRange=A={}));var L;(function(p){function k(y,g){return{location:y,message:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&f.is(g.location)&&q.string(g.message)}p.is=R})(L||(e.DiagnosticRelatedInformation=L={}));var B;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(B||(e.DiagnosticSeverity=B={}));var K;(function(p){p.Unnecessary=1,p.Deprecated=2})(K||(e.DiagnosticTag=K={}));var F;(function(p){function k(R){var y=R;return q.objectLiteral(y)&&q.string(y.href)}p.is=k})(F||(e.CodeDescription=F={}));var P;(function(p){function k(y,g,O,G,be,ft){var Xe={range:y,message:g};return q.defined(O)&&(Xe.severity=O),q.defined(G)&&(Xe.code=G),q.defined(be)&&(Xe.source=be),q.defined(ft)&&(Xe.relatedInformation=ft),Xe}p.create=k;function R(y){var g,O=y;return q.defined(O)&&d.is(O.range)&&q.string(O.message)&&(q.number(O.severity)||q.undefined(O.severity))&&(q.integer(O.code)||q.string(O.code)||q.undefined(O.code))&&(q.undefined(O.codeDescription)||q.string((g=O.codeDescription)===null||g===void 0?void 0:g.href))&&(q.string(O.source)||q.undefined(O.source))&&(q.undefined(O.relatedInformation)||q.typedArray(O.relatedInformation,L.is))}p.is=R})(P||(e.Diagnostic=P={}));var U;(function(p){function k(y,g){for(var O=[],G=2;G0&&(be.arguments=O),be}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.title)&&q.string(g.command)}p.is=R})(U||(e.Command=U={}));var te;(function(p){function k(O,G){return{range:O,newText:G}}p.replace=k;function R(O,G){return{range:{start:O,end:O},newText:G}}p.insert=R;function y(O){return{range:O,newText:""}}p.del=y;function g(O){var G=O;return q.objectLiteral(G)&&q.string(G.newText)&&d.is(G.range)}p.is=g})(te||(e.TextEdit=te={}));var ve;(function(p){function k(y,g,O){var G={label:y};return g!==void 0&&(G.needsConfirmation=g),O!==void 0&&(G.description=O),G}p.create=k;function R(y){var g=y;return q.objectLiteral(g)&&q.string(g.label)&&(q.boolean(g.needsConfirmation)||g.needsConfirmation===void 0)&&(q.string(g.description)||g.description===void 0)}p.is=R})(ve||(e.ChangeAnnotation=ve={}));var Be;(function(p){function k(R){var y=R;return q.string(y)}p.is=k})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Je;(function(p){function k(O,G,be){return{range:O,newText:G,annotationId:be}}p.replace=k;function R(O,G,be){return{range:{start:O,end:O},newText:G,annotationId:be}}p.insert=R;function y(O,G){return{range:O,newText:"",annotationId:G}}p.del=y;function g(O){var G=O;return te.is(G)&&(ve.is(G.annotationId)||Be.is(G.annotationId))}p.is=g})(Je||(e.AnnotatedTextEdit=Je={}));var Dt;(function(p){function k(y,g){return{textDocument:y,edits:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&We.is(g.textDocument)&&Array.isArray(g.edits)}p.is=R})(Dt||(e.TextDocumentEdit=Dt={}));var xe;(function(p){function k(y,g,O){var G={kind:"create",uri:y};return g!==void 0&&(g.overwrite!==void 0||g.ignoreIfExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="create"&&q.string(g.uri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(xe||(e.CreateFile=xe={}));var X;(function(p){function k(y,g,O,G){var be={kind:"rename",oldUri:y,newUri:g};return O!==void 0&&(O.overwrite!==void 0||O.ignoreIfExists!==void 0)&&(be.options=O),G!==void 0&&(be.annotationId=G),be}p.create=k;function R(y){var g=y;return g&&g.kind==="rename"&&q.string(g.oldUri)&&q.string(g.newUri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(X||(e.RenameFile=X={}));var z;(function(p){function k(y,g,O){var G={kind:"delete",uri:y};return g!==void 0&&(g.recursive!==void 0||g.ignoreIfNotExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(y){var g=y;return g&&g.kind==="delete"&&q.string(g.uri)&&(g.options===void 0||(g.options.recursive===void 0||q.boolean(g.options.recursive))&&(g.options.ignoreIfNotExists===void 0||q.boolean(g.options.ignoreIfNotExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var se;(function(p){function k(R){var y=R;return y&&(y.changes!==void 0||y.documentChanges!==void 0)&&(y.documentChanges===void 0||y.documentChanges.every(function(g){return q.string(g.kind)?xe.is(g)||X.is(g)||z.is(g):Dt.is(g)}))}p.is=k})(se||(e.WorkspaceEdit=se={}));var re=function(){function p(k,R){this.edits=k,this.changeAnnotations=R}return p.prototype.insert=function(k,R,y){var g,O;if(y===void 0?g=te.insert(k,R):Be.is(y)?(O=y,g=Je.insert(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.insert(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.replace=function(k,R,y){var g,O;if(y===void 0?g=te.replace(k,R):Be.is(y)?(O=y,g=Je.replace(k,R,y)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(y),g=Je.replace(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.delete=function(k,R){var y,g;if(R===void 0?y=te.del(k):Be.is(R)?(g=R,y=Je.del(k,R)):(this.assertChangeAnnotations(this.changeAnnotations),g=this.changeAnnotations.manage(R),y=Je.del(k,g)),this.edits.push(y),g!==void 0)return g},p.prototype.add=function(k){this.edits.push(k)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(k){if(k===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),De=function(){function p(k){this._annotations=k===void 0?Object.create(null):k,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(k,R){var y;if(Be.is(k)?y=k:(y=this.nextId(),R=k),this._annotations[y]!==void 0)throw new Error("Id ".concat(y," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(y));return this._annotations[y]=R,this._size++,y},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),pe=function(){function p(k){var R=this;this._textEditChanges=Object.create(null),k!==void 0?(this._workspaceEdit=k,k.documentChanges?(this._changeAnnotations=new De(k.changeAnnotations),k.changeAnnotations=this._changeAnnotations.all(),k.documentChanges.forEach(function(y){if(Dt.is(y)){var g=new re(y.edits,R._changeAnnotations);R._textEditChanges[y.textDocument.uri]=g}})):k.changes&&Object.keys(k.changes).forEach(function(y){var g=new re(k.changes[y]);R._textEditChanges[y]=g})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(k){if(We.is(k)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:k.uri,version:k.version},y=this._textEditChanges[R.uri];if(!y){var g=[],O={textDocument:R,edits:g};this._workspaceEdit.documentChanges.push(O),y=new re(g,this._changeAnnotations),this._textEditChanges[R.uri]=y}return y}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var y=this._textEditChanges[k];if(!y){var g=[];this._workspaceEdit.changes[k]=g,y=new re(g),this._textEditChanges[k]=y}return y}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new De,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=xe.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=xe.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p.prototype.renameFile=function(k,R,y,g){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var O;ve.is(y)||Be.is(y)?O=y:g=y;var G,be;if(O===void 0?G=X.create(k,R,g):(be=Be.is(O)?O:this._changeAnnotations.manage(O),G=X.create(k,R,g,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(k,R,y){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:y=R;var O,G;if(g===void 0?O=z.create(k,y):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=z.create(k,y,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p}();e.WorkspaceChange=pe;var me;(function(p){function k(y){return{uri:y}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)}p.is=R})(me||(e.TextDocumentIdentifier=me={}));var St;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.integer(g.version)}p.is=R})(St||(e.VersionedTextDocumentIdentifier=St={}));var We;(function(p){function k(y,g){return{uri:y,version:g}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&(g.version===null||q.integer(g.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function k(y,g,O,G){return{uri:y,languageId:g,version:O,text:G}}p.create=k;function R(y){var g=y;return q.defined(g)&&q.string(g.uri)&&q.string(g.languageId)&&q.integer(g.version)&&q.string(g.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function k(R){var y=R;return y===p.PlainText||y===p.Markdown}p.is=k})(bn||(e.MarkupKind=bn={}));var wr;(function(p){function k(R){var y=R;return q.objectLiteral(R)&&bn.is(y.kind)&&q.string(y.value)}p.is=k})(wr||(e.MarkupContent=wr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(e.CompletionItemKind=Vn={}));var lr;(function(p){p.PlainText=1,p.Snippet=2})(lr||(e.InsertTextFormat=lr={}));var Pi;(function(p){p.Deprecated=1})(Pi||(e.CompletionItemTag=Pi={}));var dr;(function(p){function k(y,g,O){return{newText:y,insert:g,replace:O}}p.create=k;function R(y){var g=y;return g&&q.string(g.newText)&&d.is(g.insert)&&d.is(g.replace)}p.is=R})(dr||(e.InsertReplaceEdit=dr={}));var fr;(function(p){p.asIs=1,p.adjustIndentation=2})(fr||(e.InsertTextMode=fr={}));var Ki;(function(p){function k(R){var y=R;return y&&(q.string(y.detail)||y.detail===void 0)&&(q.string(y.description)||y.description===void 0)}p.is=k})(Ki||(e.CompletionItemLabelDetails=Ki={}));var Sr;(function(p){function k(R){return{label:R}}p.create=k})(Sr||(e.CompletionItem=Sr={}));var xr;(function(p){function k(R,y){return{items:R||[],isIncomplete:!!y}}p.create=k})(xr||(e.CompletionList=xr={}));var Pr;(function(p){function k(y){return y.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=k;function R(y){var g=y;return q.string(g)||q.objectLiteral(g)&&q.string(g.language)&&q.string(g.value)}p.is=R})(Pr||(e.MarkedString=Pr={}));var mt;(function(p){function k(R){var y=R;return!!y&&q.objectLiteral(y)&&(wr.is(y.contents)||Pr.is(y.contents)||q.typedArray(y.contents,Pr.is))&&(R.range===void 0||d.is(R.range))}p.is=k})(mt||(e.Hover=mt={}));var hr;(function(p){function k(R,y){return y?{label:R,documentation:y}:{label:R}}p.create=k})(hr||(e.ParameterInformation=hr={}));var Ji;(function(p){function k(R,y){for(var g=[],O=2;O{sn();let Z,ie;if(_t.string(C)){Z=C;let Le=H[0],Ge=0,et=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Ge=1,et=Le);let Fe=H.length,Qe=Fe-Ge;switch(Qe){case 0:ie=void 0;break;case 1:ie=_n(et,H[Ge]);break;default:if(et===he.ParameterStructures.byName)throw new Error(`Received ${Qe} parameters for 'by Name' notification parameter structure.`);ie=H.slice(Ge,Fe).map(Ne=>jt(Ne));break}}else{let Le=H;Z=C.method,ie=Cr(C,Le)}let Ue={jsonrpc:f,method:Z,params:ie};return Ki(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(C,H)=>{sn();let Z;return _t.func(C)?x=C:H&&(_t.string(C)?(Z=C,D.set(C,{type:void 0,handler:H})):(Z=C.method,D.set(C.method,{type:C,handler:H}))),{dispose:()=>{Z!==void 0?D.delete(Z):x=void 0}}},onProgress:(C,H,Z)=>{if(N.has(H))throw new Error(`Progress handler for token ${H} already registered`);return N.set(H,Z),{dispose:()=>{N.delete(H)}}},sendProgress:(C,H,Z)=>vn.sendNotification(Rs.type,{token:H,value:Z}),onUnhandledProgress:xe.event,sendRequest:(C,...H)=>{sn(),Ji();let Z,ie,Ue;if(_t.string(C)){Z=C;let Fe=H[0],Qe=H[H.length-1],Ne=0,ct=he.ParameterStructures.auto;he.ParameterStructures.is(Fe)&&(Ne=1,ct=Fe);let Ft=H.length;Xf.CancellationToken.is(Qe)&&(Ft=Ft-1,Ue=Qe);let Yt=Ft-Ne;switch(Yt){case 0:ie=void 0;break;case 1:ie=_n(ct,H[Ne]);break;default:if(ct===he.ParameterStructures.byName)throw new Error(`Received ${Yt} parameters for 'by Name' request parameter structure.`);ie=H.slice(Ne,Ft).map(Xi=>jt(Xi));break}}else{let Fe=H;Z=C.method,ie=Cr(C,Fe);let Qe=C.numberOfParams;Ue=Xf.CancellationToken.is(Fe[Qe])?Fe[Qe]:void 0}let Le=c++,Ge;Ue&&(Ge=Ue.onCancellationRequested(()=>{let Fe=z.sender.sendCancellation(vn,Le);return Fe===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):Fe.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let et={jsonrpc:f,id:Le,method:Z,params:ie};return fr(et),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(et),new Promise(async(Fe,Qe)=>{let Ne=Yt=>{Fe(Yt),z.sender.cleanup(Le),Ge?.dispose()},ct=Yt=>{Qe(Yt),z.sender.cleanup(Le),Ge?.dispose()},Ft={method:Z,timerStart:Date.now(),resolve:Ne,reject:ct};try{await e.write(et),B.set(Le,Ft)}catch(Yt){throw s.error("Sending request failed."),Ft.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Yt.message?Yt.message:"Unknown reason")),Yt}})},onRequest:(C,H)=>{sn();let Z=null;return eh.is(C)?(Z=void 0,m=C):_t.string(C)?(Z=null,H!==void 0&&(Z=C,y.set(C,{handler:H,type:void 0}))):H!==void 0&&(Z=C.method,y.set(C.method,{type:C,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?y.delete(Z):m=void 0)}}},hasPendingResponse:()=>B.size>0,trace:async(C,H,Z)=>{let ie=!1,Ue=Tn.Text;Z!==void 0&&(_t.boolean(Z)?ie=Z:(ie=Z.sendNotification||!1,Ue=Z.traceFormat||Tn.Text)),P=C,U=Ue,P===He.Off?te=void 0:te=H,ie&&!We()&&!je()&&await vn.sendNotification(th.type,{value:He.toString(C)})},onError:Be.event,onClose:Je.event,onUnhandledNotification:Dt.event,onDispose:X.event,end:()=>{e.end()},dispose:()=>{if(je())return;ve=Zn.Disposed,X.fire(void 0);let C=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of B.values())H.reject(C);B=new Map,F=new Map,K=new Set,L=new R_.LinkedMap,_t.func(e.dispose)&&e.dispose(),_t.func(t.dispose)&&t.dispose()},listen:()=>{sn(),Pr(),ve=Zn.Listening,t.listen(dr)},inspect:()=>{(0,T_.default)().console.log("inspect")}};return vn.onNotification(Cc.type,C=>{if(P===He.Off||!te)return;let H=P===He.Verbose||P===He.Compact;te.log(C.message,H?C.verbose:void 0)}),vn.onNotification(Rs.type,C=>{let H=N.get(C.token);H?H(C.value):xe.fire(C)}),vn}Ce.createMessageConnection=CA});var Ec=I(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var rt=Df();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return rt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return rt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return rt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return rt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return rt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return rt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return rt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return rt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return rt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return rt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return rt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return rt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return rt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return rt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return rt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return rt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return rt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return rt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return rt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return rt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return rt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return rt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return rt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return rt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return rt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return rt.ParameterStructures}});var ih=Ef();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return ih.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return ih.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return ih.Touch}});var kA=m_();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return kA.Disposable}});var I_=po();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return I_.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return I_.Emitter}});var M_=yc();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return M_.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return M_.CancellationToken}});var A_=__();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return A_.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return A_.SharedArrayReceiverStrategy}});var oh=y_();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return oh.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return oh.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return oh.ReadableStreamMessageReader}});var sh=C_();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return sh.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return sh.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return sh.WriteableStreamMessageWriter}});var TA=k_();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return TA.AbstractMessageBuffer}});var $t=E_();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return $t.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return $t.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return $t.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return $t.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return $t.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return $t.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return $t.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return $t.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return $t.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return $t.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return $t.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return $t.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return $t.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return $t.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return $t.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return $t.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return $t.MessageStrategy}});var RA=ri();j.RAL=RA.default});var O_=I(lh=>{"use strict";Object.defineProperty(lh,"__esModule",{value:!0});var N_=require("util"),Nr=Ec(),Ic=class t extends Nr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new N_.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};Ic.emptyBuffer=Buffer.allocUnsafe(0);var ah=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Nr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Nr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Nr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),Nr.Disposable.create(()=>this.stream.off("data",e))}},ch=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Nr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Nr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Nr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},q_=Object.freeze({messageBuffer:Object.freeze({create:t=>new Ic(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new N_.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new ah(t),asWritableStream:t=>new ch(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function uh(){return q_}(function(t){function e(){Nr.RAL.install(q_)}t.install=e})(uh||(uh={}));lh.default=uh});var Bi=I(Oe=>{"use strict";var DA=Oe&&Oe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),FA=Oe&&Oe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&DA(e,t,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var yo=O_();yo.default.install();var L_=require("path"),EA=require("os"),IA=require("crypto"),Nc=require("net"),Rn=Ec();FA(Ec(),Oe);var dh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Rn.Disposable.create(()=>this.process.off("message",e))}};Oe.IPCMessageReader=dh;var fh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=fh;var hh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.onData=new Rn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};Oe.PortMessageReader=hh;var gh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.PortMessageWriter=gh;var Oi=class extends Rn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.SocketMessageReader=Oi;var Li=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Li;var Mc=class extends Rn.ReadableStreamMessageReader{constructor(e,n){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.StreamMessageReader=Mc;var Ac=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n)}};Oe.StreamMessageWriter=Ac;var B_=process.env.XDG_RUNTIME_DIR,MA=new Map([["linux",107],["darwin",103]]);function AA(){let t=(0,IA.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;B_?e=L_.join(B_,`vscode-ipc-${t}.sock`):e=L_.join(EA.tmpdir(),`vscode-${t}.sock`);let n=MA.get(process.platform);return n!==void 0&&e.length>n&&(0,yo.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}Oe.generateRandomPipeName=AA;function NA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Nc.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientPipeTransport=NA;function qA(t,e="utf-8"){let n=(0,Nc.createConnection)(t);return[new Oi(n,e),new Li(n,e)]}Oe.createServerPipeTransport=qA;function OA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Nc.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientSocketTransport=OA;function LA(t,e="utf-8"){let n=(0,Nc.createConnection)(t,"127.0.0.1");return[new Oi(n,e),new Li(n,e)]}Oe.createServerSocketTransport=LA;function BA(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function UA(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function $A(t,e,n,i){n||(n=Rn.NullLogger);let s=BA(t)?new Mc(t):t,c=UA(e)?new Ac(e):e;return Rn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Rn.createMessageConnection)(s,c,n,i)}Oe.createMessageConnection=$A});var ph=I((v2,U_)=>{"use strict";U_.exports=Bi()});var Oc=I(($_,qc)=>{"use strict";(function(t){if(typeof qc=="object"&&typeof qc.exports=="object"){var e=t(require,$_);e!==void 0&&(qc.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function k(R){return typeof R=="string"}p.is=k})(n||(e.DocumentUri=n={}));var i;(function(p){function k(R){return typeof R=="string"}p.is=k})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(c||(e.uinteger=c={}));var u;(function(p){function k(v,g){return v===Number.MAX_VALUE&&(v=c.MAX_VALUE),g===Number.MAX_VALUE&&(g=c.MAX_VALUE),{line:v,character:g}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.uinteger(g.line)&&q.uinteger(g.character)}p.is=R})(u||(e.Position=u={}));var d;(function(p){function k(v,g,O,G){if(q.uinteger(v)&&q.uinteger(g)&&q.uinteger(O)&&q.uinteger(G))return{start:u.create(v,g),end:u.create(O,G)};if(u.is(v)&&u.is(g))return{start:v,end:g};throw new Error("Range#create called with invalid arguments[".concat(v,", ").concat(g,", ").concat(O,", ").concat(G,"]"))}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&u.is(g.start)&&u.is(g.end)}p.is=R})(d||(e.Range=d={}));var f;(function(p){function k(v,g){return{uri:v,range:g}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&d.is(g.range)&&(q.string(g.uri)||q.undefined(g.uri))}p.is=R})(f||(e.Location=f={}));var m;(function(p){function k(v,g,O,G){return{targetUri:v,targetRange:g,targetSelectionRange:O,originSelectionRange:G}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&d.is(g.targetRange)&&q.string(g.targetUri)&&d.is(g.targetSelectionRange)&&(d.is(g.originSelectionRange)||q.undefined(g.originSelectionRange))}p.is=R})(m||(e.LocationLink=m={}));var y;(function(p){function k(v,g,O,G){return{red:v,green:g,blue:O,alpha:G}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.numberRange(g.red,0,1)&&q.numberRange(g.green,0,1)&&q.numberRange(g.blue,0,1)&&q.numberRange(g.alpha,0,1)}p.is=R})(y||(e.Color=y={}));var x;(function(p){function k(v,g){return{range:v,color:g}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&d.is(g.range)&&y.is(g.color)}p.is=R})(x||(e.ColorInformation=x={}));var D;(function(p){function k(v,g,O){return{label:v,textEdit:g,additionalTextEdits:O}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.string(g.label)&&(q.undefined(g.textEdit)||te.is(g))&&(q.undefined(g.additionalTextEdits)||q.typedArray(g.additionalTextEdits,te.is))}p.is=R})(D||(e.ColorPresentation=D={}));var N;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(N||(e.FoldingRangeKind=N={}));var A;(function(p){function k(v,g,O,G,be,ht){var Xe={startLine:v,endLine:g};return q.defined(O)&&(Xe.startCharacter=O),q.defined(G)&&(Xe.endCharacter=G),q.defined(be)&&(Xe.kind=be),q.defined(ht)&&(Xe.collapsedText=ht),Xe}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.uinteger(g.startLine)&&q.uinteger(g.startLine)&&(q.undefined(g.startCharacter)||q.uinteger(g.startCharacter))&&(q.undefined(g.endCharacter)||q.uinteger(g.endCharacter))&&(q.undefined(g.kind)||q.string(g.kind))}p.is=R})(A||(e.FoldingRange=A={}));var L;(function(p){function k(v,g){return{location:v,message:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&f.is(g.location)&&q.string(g.message)}p.is=R})(L||(e.DiagnosticRelatedInformation=L={}));var B;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(B||(e.DiagnosticSeverity=B={}));var K;(function(p){p.Unnecessary=1,p.Deprecated=2})(K||(e.DiagnosticTag=K={}));var F;(function(p){function k(R){var v=R;return q.objectLiteral(v)&&q.string(v.href)}p.is=k})(F||(e.CodeDescription=F={}));var P;(function(p){function k(v,g,O,G,be,ht){var Xe={range:v,message:g};return q.defined(O)&&(Xe.severity=O),q.defined(G)&&(Xe.code=G),q.defined(be)&&(Xe.source=be),q.defined(ht)&&(Xe.relatedInformation=ht),Xe}p.create=k;function R(v){var g,O=v;return q.defined(O)&&d.is(O.range)&&q.string(O.message)&&(q.number(O.severity)||q.undefined(O.severity))&&(q.integer(O.code)||q.string(O.code)||q.undefined(O.code))&&(q.undefined(O.codeDescription)||q.string((g=O.codeDescription)===null||g===void 0?void 0:g.href))&&(q.string(O.source)||q.undefined(O.source))&&(q.undefined(O.relatedInformation)||q.typedArray(O.relatedInformation,L.is))}p.is=R})(P||(e.Diagnostic=P={}));var U;(function(p){function k(v,g){for(var O=[],G=2;G0&&(be.arguments=O),be}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.title)&&q.string(g.command)}p.is=R})(U||(e.Command=U={}));var te;(function(p){function k(O,G){return{range:O,newText:G}}p.replace=k;function R(O,G){return{range:{start:O,end:O},newText:G}}p.insert=R;function v(O){return{range:O,newText:""}}p.del=v;function g(O){var G=O;return q.objectLiteral(G)&&q.string(G.newText)&&d.is(G.range)}p.is=g})(te||(e.TextEdit=te={}));var ve;(function(p){function k(v,g,O){var G={label:v};return g!==void 0&&(G.needsConfirmation=g),O!==void 0&&(G.description=O),G}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.string(g.label)&&(q.boolean(g.needsConfirmation)||g.needsConfirmation===void 0)&&(q.string(g.description)||g.description===void 0)}p.is=R})(ve||(e.ChangeAnnotation=ve={}));var Be;(function(p){function k(R){var v=R;return q.string(v)}p.is=k})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Je;(function(p){function k(O,G,be){return{range:O,newText:G,annotationId:be}}p.replace=k;function R(O,G,be){return{range:{start:O,end:O},newText:G,annotationId:be}}p.insert=R;function v(O,G){return{range:O,newText:"",annotationId:G}}p.del=v;function g(O){var G=O;return te.is(G)&&(ve.is(G.annotationId)||Be.is(G.annotationId))}p.is=g})(Je||(e.AnnotatedTextEdit=Je={}));var Dt;(function(p){function k(v,g){return{textDocument:v,edits:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&We.is(g.textDocument)&&Array.isArray(g.edits)}p.is=R})(Dt||(e.TextDocumentEdit=Dt={}));var xe;(function(p){function k(v,g,O){var G={kind:"create",uri:v};return g!==void 0&&(g.overwrite!==void 0||g.ignoreIfExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(v){var g=v;return g&&g.kind==="create"&&q.string(g.uri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(xe||(e.CreateFile=xe={}));var X;(function(p){function k(v,g,O,G){var be={kind:"rename",oldUri:v,newUri:g};return O!==void 0&&(O.overwrite!==void 0||O.ignoreIfExists!==void 0)&&(be.options=O),G!==void 0&&(be.annotationId=G),be}p.create=k;function R(v){var g=v;return g&&g.kind==="rename"&&q.string(g.oldUri)&&q.string(g.newUri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(X||(e.RenameFile=X={}));var z;(function(p){function k(v,g,O){var G={kind:"delete",uri:v};return g!==void 0&&(g.recursive!==void 0||g.ignoreIfNotExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(v){var g=v;return g&&g.kind==="delete"&&q.string(g.uri)&&(g.options===void 0||(g.options.recursive===void 0||q.boolean(g.options.recursive))&&(g.options.ignoreIfNotExists===void 0||q.boolean(g.options.ignoreIfNotExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var se;(function(p){function k(R){var v=R;return v&&(v.changes!==void 0||v.documentChanges!==void 0)&&(v.documentChanges===void 0||v.documentChanges.every(function(g){return q.string(g.kind)?xe.is(g)||X.is(g)||z.is(g):Dt.is(g)}))}p.is=k})(se||(e.WorkspaceEdit=se={}));var re=function(){function p(k,R){this.edits=k,this.changeAnnotations=R}return p.prototype.insert=function(k,R,v){var g,O;if(v===void 0?g=te.insert(k,R):Be.is(v)?(O=v,g=Je.insert(k,R,v)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(v),g=Je.insert(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.replace=function(k,R,v){var g,O;if(v===void 0?g=te.replace(k,R):Be.is(v)?(O=v,g=Je.replace(k,R,v)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(v),g=Je.replace(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.delete=function(k,R){var v,g;if(R===void 0?v=te.del(k):Be.is(R)?(g=R,v=Je.del(k,R)):(this.assertChangeAnnotations(this.changeAnnotations),g=this.changeAnnotations.manage(R),v=Je.del(k,g)),this.edits.push(v),g!==void 0)return g},p.prototype.add=function(k){this.edits.push(k)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(k){if(k===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),De=function(){function p(k){this._annotations=k===void 0?Object.create(null):k,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(k,R){var v;if(Be.is(k)?v=k:(v=this.nextId(),R=k),this._annotations[v]!==void 0)throw new Error("Id ".concat(v," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(v));return this._annotations[v]=R,this._size++,v},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(k){var R=this;this._textEditChanges=Object.create(null),k!==void 0?(this._workspaceEdit=k,k.documentChanges?(this._changeAnnotations=new De(k.changeAnnotations),k.changeAnnotations=this._changeAnnotations.all(),k.documentChanges.forEach(function(v){if(Dt.is(v)){var g=new re(v.edits,R._changeAnnotations);R._textEditChanges[v.textDocument.uri]=g}})):k.changes&&Object.keys(k.changes).forEach(function(v){var g=new re(k.changes[v]);R._textEditChanges[v]=g})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(k){if(We.is(k)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:k.uri,version:k.version},v=this._textEditChanges[R.uri];if(!v){var g=[],O={textDocument:R,edits:g};this._workspaceEdit.documentChanges.push(O),v=new re(g,this._changeAnnotations),this._textEditChanges[R.uri]=v}return v}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var v=this._textEditChanges[k];if(!v){var g=[];this._workspaceEdit.changes[k]=g,v=new re(g),this._textEditChanges[k]=v}return v}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new De,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(k,R,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:v=R;var O,G;if(g===void 0?O=xe.create(k,v):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=xe.create(k,v,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p.prototype.renameFile=function(k,R,v,g){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var O;ve.is(v)||Be.is(v)?O=v:g=v;var G,be;if(O===void 0?G=X.create(k,R,g):(be=Be.is(O)?O:this._changeAnnotations.manage(O),G=X.create(k,R,g,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(k,R,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:v=R;var O,G;if(g===void 0?O=z.create(k,v):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=z.create(k,v,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p}();e.WorkspaceChange=ge;var pe;(function(p){function k(v){return{uri:v}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)}p.is=R})(pe||(e.TextDocumentIdentifier=pe={}));var St;(function(p){function k(v,g){return{uri:v,version:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)&&q.integer(g.version)}p.is=R})(St||(e.VersionedTextDocumentIdentifier=St={}));var We;(function(p){function k(v,g){return{uri:v,version:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)&&(g.version===null||q.integer(g.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function k(v,g,O,G){return{uri:v,languageId:g,version:O,text:G}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)&&q.string(g.languageId)&&q.integer(g.version)&&q.string(g.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function k(R){var v=R;return v===p.PlainText||v===p.Markdown}p.is=k})(bn||(e.MarkupKind=bn={}));var yr;(function(p){function k(R){var v=R;return q.objectLiteral(R)&&bn.is(v.kind)&&q.string(v.value)}p.is=k})(yr||(e.MarkupContent=yr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(e.CompletionItemKind=Vn={}));var ur;(function(p){p.PlainText=1,p.Snippet=2})(ur||(e.InsertTextFormat=ur={}));var xi;(function(p){p.Deprecated=1})(xi||(e.CompletionItemTag=xi={}));var lr;(function(p){function k(v,g,O){return{newText:v,insert:g,replace:O}}p.create=k;function R(v){var g=v;return g&&q.string(g.newText)&&d.is(g.insert)&&d.is(g.replace)}p.is=R})(lr||(e.InsertReplaceEdit=lr={}));var dr;(function(p){p.asIs=1,p.adjustIndentation=2})(dr||(e.InsertTextMode=dr={}));var Qi;(function(p){function k(R){var v=R;return v&&(q.string(v.detail)||v.detail===void 0)&&(q.string(v.description)||v.description===void 0)}p.is=k})(Qi||(e.CompletionItemLabelDetails=Qi={}));var wr;(function(p){function k(R){return{label:R}}p.create=k})(wr||(e.CompletionItem=wr={}));var Sr;(function(p){function k(R,v){return{items:R||[],isIncomplete:!!v}}p.create=k})(Sr||(e.CompletionList=Sr={}));var xr;(function(p){function k(v){return v.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=k;function R(v){var g=v;return q.string(g)||q.objectLiteral(g)&&q.string(g.language)&&q.string(g.value)}p.is=R})(xr||(e.MarkedString=xr={}));var mt;(function(p){function k(R){var v=R;return!!v&&q.objectLiteral(v)&&(yr.is(v.contents)||xr.is(v.contents)||q.typedArray(v.contents,xr.is))&&(R.range===void 0||d.is(R.range))}p.is=k})(mt||(e.Hover=mt={}));var fr;(function(p){function k(R,v){return v?{label:R,documentation:v}:{label:R}}p.create=k})(fr||(e.ParameterInformation=fr={}));var Ki;(function(p){function k(R,v){for(var g=[],O=2;O=0;an--){var yn=ft[an],Qn=O.offsetAt(yn.range.start),Ie=O.offsetAt(yn.range.end);if(Ie<=Xe)be=be.substring(0,Qn)+yn.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Xe=Qn}return be}p.applyEdits=y;function g(O,G){if(O.length<=1)return O;var be=O.length/2|0,ft=O.slice(0,be),Xe=O.slice(be);g(ft,G),g(Xe,G);for(var an=0,yn=0,Qn=0;an=0;an--){var yn=ht[an],Qn=O.offsetAt(yn.range.start),Ie=O.offsetAt(yn.range.end);if(Ie<=Xe)be=be.substring(0,Qn)+yn.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Xe=Qn}return be}p.applyEdits=v;function g(O,G){if(O.length<=1)return O;var be=O.length/2|0,ht=O.slice(0,be),Xe=O.slice(be);g(ht,G),g(Xe,G);for(var an=0,yn=0,Qn=0;an0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),y=0,g=R.length;if(g===0)return u.create(0,k);for(;yk?g=O:y=O+1}var G=y-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var y=R[k.line],g=k.line+1"u"}p.undefined=y;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Vr,Zi){return k.call(Ie)==="[object Number]"&&Vr<=Ie&&Ie<=Zi}p.numberRange=be;function ft(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ft;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Vr){return Array.isArray(Ie)&&Ie.every(Vr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var So=Ui(),B_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(B_||(hn.MessageDirection=B_={}));var ph=class{constructor(e){this.method=e}};hn.RegistrationType=ph;var mh=class extends So.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=mh;var bh=class extends So.RequestType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolRequestType=bh;var _h=class extends So.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=_h;var vh=class extends So.NotificationType{constructor(e){super(e,So.ParameterStructures.byName)}};hn.ProtocolNotificationType=vh});var $c=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function HA(t){return t===!0||t===!1}It.boolean=HA;function U_(t){return typeof t=="string"||t instanceof String}It.string=U_;function VA(t){return typeof t=="number"||t instanceof Number}It.number=VA;function GA(t){return t instanceof Error}It.error=GA;function QA(t){return typeof t=="function"}It.func=QA;function $_(t){return Array.isArray(t)}It.array=$_;function KA(t){return $_(t)&&t.every(e=>U_(e))}It.stringArray=KA;function JA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=JA;function XA(t){return t!==null&&typeof t=="object"}It.objectLiteral=XA});var z_=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ImplementationRequest=void 0;var W_=pt(),j_;(function(t){t.method="textDocument/implementation",t.messageDirection=W_.MessageDirection.clientToServer,t.type=new W_.ProtocolRequestType(t.method)})(j_||(Wc.ImplementationRequest=j_={}))});var G_=I(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.TypeDefinitionRequest=void 0;var H_=pt(),V_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=H_.MessageDirection.clientToServer,t.type=new H_.ProtocolRequestType(t.method)})(V_||(jc.TypeDefinitionRequest=V_={}))});var J_=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.DidChangeWorkspaceFoldersNotification=xo.WorkspaceFoldersRequest=void 0;var zc=pt(),Q_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(Q_||(xo.WorkspaceFoldersRequest=Q_={}));var K_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolNotificationType(t.method)})(K_||(xo.DidChangeWorkspaceFoldersNotification=K_={}))});var Z_=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.ConfigurationRequest=void 0;var X_=pt(),Y_;(function(t){t.method="workspace/configuration",t.messageDirection=X_.MessageDirection.serverToClient,t.type=new X_.ProtocolRequestType(t.method)})(Y_||(Hc.ConfigurationRequest=Y_={}))});var nv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.ColorPresentationRequest=Po.DocumentColorRequest=void 0;var Vc=pt(),ev;(function(t){t.method="textDocument/documentColor",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(ev||(Po.DocumentColorRequest=ev={}));var tv;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolRequestType(t.method)})(tv||(Po.ColorPresentationRequest=tv={}))});var ov=I(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.FoldingRangeRefreshRequest=Co.FoldingRangeRequest=void 0;var Gc=pt(),rv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolRequestType(t.method)})(rv||(Co.FoldingRangeRequest=rv={}));var iv;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType0(t.method)})(iv||(Co.FoldingRangeRefreshRequest=iv={}))});var cv=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DeclarationRequest=void 0;var sv=pt(),av;(function(t){t.method="textDocument/declaration",t.messageDirection=sv.MessageDirection.clientToServer,t.type=new sv.ProtocolRequestType(t.method)})(av||(Qc.DeclarationRequest=av={}))});var dv=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.SelectionRangeRequest=void 0;var uv=pt(),lv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=uv.MessageDirection.clientToServer,t.type=new uv.ProtocolRequestType(t.method)})(lv||(Kc.SelectionRangeRequest=lv={}))});var pv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.WorkDoneProgressCancelNotification=ai.WorkDoneProgressCreateRequest=ai.WorkDoneProgress=void 0;var YA=Ui(),Jc=pt(),fv;(function(t){t.type=new YA.ProgressType;function e(n){return n===t.type}t.is=e})(fv||(ai.WorkDoneProgress=fv={}));var hv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType(t.method)})(hv||(ai.WorkDoneProgressCreateRequest=hv={}));var gv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolNotificationType(t.method)})(gv||(ai.WorkDoneProgressCancelNotification=gv={}))});var vv=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.CallHierarchyOutgoingCallsRequest=ci.CallHierarchyIncomingCallsRequest=ci.CallHierarchyPrepareRequest=void 0;var ko=pt(),mv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(mv||(ci.CallHierarchyPrepareRequest=mv={}));var bv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(bv||(ci.CallHierarchyIncomingCallsRequest=bv={}));var _v;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(_v||(ci.CallHierarchyOutgoingCallsRequest=_v={}))});var Cv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var Or=pt(),yv;(function(t){t.Relative="relative"})(yv||(gn.TokenFormat=yv={}));var Es;(function(t){t.method="textDocument/semanticTokens",t.type=new Or.RegistrationType(t.method)})(Es||(gn.SemanticTokensRegistrationType=Es={}));var wv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(wv||(gn.SemanticTokensRequest=wv={}));var Sv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(Sv||(gn.SemanticTokensDeltaRequest=Sv={}));var xv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=Or.MessageDirection.clientToServer,t.type=new Or.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(xv||(gn.SemanticTokensRangeRequest=xv={}));var Pv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=Or.MessageDirection.serverToClient,t.type=new Or.ProtocolRequestType0(t.method)})(Pv||(gn.SemanticTokensRefreshRequest=Pv={}))});var Rv=I(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.ShowDocumentRequest=void 0;var kv=pt(),Tv;(function(t){t.method="window/showDocument",t.messageDirection=kv.MessageDirection.serverToClient,t.type=new kv.ProtocolRequestType(t.method)})(Tv||(Xc.ShowDocumentRequest=Tv={}))});var Ev=I(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.LinkedEditingRangeRequest=void 0;var Dv=pt(),Fv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Dv.MessageDirection.clientToServer,t.type=new Dv.ProtocolRequestType(t.method)})(Fv||(Yc.LinkedEditingRangeRequest=Fv={}))});var Bv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Iv;(function(t){t.file="file",t.folder="folder"})(Iv||(Qt.FileOperationPatternKind=Iv={}));var Mv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Mv||(Qt.WillCreateFilesRequest=Mv={}));var Av;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Av||(Qt.DidCreateFilesNotification=Av={}));var Nv;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Nv||(Qt.WillRenameFilesRequest=Nv={}));var qv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(qv||(Qt.DidRenameFilesNotification=qv={}));var Ov;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Ov||(Qt.DidDeleteFilesNotification=Ov={}));var Lv;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Lv||(Qt.WillDeleteFilesRequest=Lv={}))});var zv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.MonikerRequest=ui.MonikerKind=ui.UniquenessLevel=void 0;var Uv=pt(),$v;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})($v||(ui.UniquenessLevel=$v={}));var Wv;(function(t){t.$import="import",t.$export="export",t.local="local"})(Wv||(ui.MonikerKind=Wv={}));var jv;(function(t){t.method="textDocument/moniker",t.messageDirection=Uv.MessageDirection.clientToServer,t.type=new Uv.ProtocolRequestType(t.method)})(jv||(ui.MonikerRequest=jv={}))});var Qv=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.TypeHierarchySubtypesRequest=li.TypeHierarchySupertypesRequest=li.TypeHierarchyPrepareRequest=void 0;var To=pt(),Hv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Hv||(li.TypeHierarchyPrepareRequest=Hv={}));var Vv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Vv||(li.TypeHierarchySupertypesRequest=Vv={}));var Gv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=To.MessageDirection.clientToServer,t.type=new To.ProtocolRequestType(t.method)})(Gv||(li.TypeHierarchySubtypesRequest=Gv={}))});var Xv=I(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.InlineValueRefreshRequest=Ro.InlineValueRequest=void 0;var Zc=pt(),Kv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Zc.MessageDirection.clientToServer,t.type=new Zc.ProtocolRequestType(t.method)})(Kv||(Ro.InlineValueRequest=Kv={}));var Jv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Zc.MessageDirection.serverToClient,t.type=new Zc.ProtocolRequestType0(t.method)})(Jv||(Ro.InlineValueRefreshRequest=Jv={}))});var ty=I(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.InlayHintRefreshRequest=di.InlayHintResolveRequest=di.InlayHintRequest=void 0;var Do=pt(),Yv;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Yv||(di.InlayHintRequest=Yv={}));var Zv;(function(t){t.method="inlayHint/resolve",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method)})(Zv||(di.InlayHintResolveRequest=Zv={}));var ey;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(ey||(di.InlayHintRefreshRequest=ey={}))});var cy=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var ay=Ui(),ZA=$c(),Fo=pt(),ny;(function(t){function e(n){let i=n;return i&&ZA.boolean(i.retriggerRequest)}t.is=e})(ny||(Un.DiagnosticServerCancellationData=ny={}));var ry;(function(t){t.Full="full",t.Unchanged="unchanged"})(ry||(Un.DocumentDiagnosticReportKind=ry={}));var iy;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new ay.ProgressType})(iy||(Un.DocumentDiagnosticRequest=iy={}));var oy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Fo.MessageDirection.clientToServer,t.type=new Fo.ProtocolRequestType(t.method),t.partialResult=new ay.ProgressType})(oy||(Un.WorkspaceDiagnosticRequest=oy={}));var sy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Fo.MessageDirection.serverToClient,t.type=new Fo.ProtocolRequestType0(t.method)})(sy||(Un.DiagnosticRefreshRequest=sy={}))});var py=I(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.DidCloseNotebookDocumentNotification=wt.DidSaveNotebookDocumentNotification=wt.DidChangeNotebookDocumentNotification=wt.NotebookCellArrayChange=wt.DidOpenNotebookDocumentNotification=wt.NotebookDocumentSyncRegistrationType=wt.NotebookDocument=wt.NotebookCell=wt.ExecutionSummary=wt.NotebookCellKind=void 0;var Is=Uc(),er=$c(),_r=pt(),yh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(yh||(wt.NotebookCellKind=yh={}));var wh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Is.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(wh||(wt.ExecutionSummary=wh={}));var eu;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&yh.is(u.kind)&&Is.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.InlineCompletionRequest=void 0;var my=pt(),by;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=my.MessageDirection.clientToServer,t.type=new my.ProtocolRequestType(t.method)})(by||(tu.InlineCompletionRequest=by={}))});var Ew=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),vy=Uc(),Lt=$c(),eN=z_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return eN.ImplementationRequest}});var tN=G_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return tN.TypeDefinitionRequest}});var Tw=J_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Tw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Tw.DidChangeWorkspaceFoldersNotification}});var nN=Z_();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return nN.ConfigurationRequest}});var Rw=nv();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Rw.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Rw.ColorPresentationRequest}});var Dw=ov();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Dw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Dw.FoldingRangeRefreshRequest}});var rN=cv();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return rN.DeclarationRequest}});var iN=dv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return iN.SelectionRangeRequest}});var kh=pv();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return kh.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return kh.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return kh.WorkDoneProgressCancelNotification}});var Th=vv();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var Io=Cv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Io.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Io.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Io.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Io.SemanticTokensRegistrationType}});var oN=Rv();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return oN.ShowDocumentRequest}});var sN=Ev();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return sN.LinkedEditingRangeRequest}});var $i=Bv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return $i.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return $i.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return $i.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return $i.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return $i.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return $i.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return $i.WillDeleteFilesRequest}});var Rh=zv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Rh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Rh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Rh.MonikerRequest}});var Dh=Qv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySupertypesRequest}});var Fw=Xv();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Fw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Fw.InlineValueRefreshRequest}});var Fh=ty();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Fh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Fh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Fh.InlayHintRefreshRequest}});var Ms=cy();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Ms.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Ms.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Ms.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Ms.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Ms.DiagnosticRefreshRequest}});var vr=py();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return vr.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return vr.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return vr.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return vr.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return vr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return vr.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return vr.DidCloseNotebookDocumentNotification}});var aN=_y();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return aN.InlineCompletionRequest}});var Sh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(Sh||(w.TextDocumentFilter=Sh={}));var xh;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(xh||(w.NotebookDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||xh.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ph||(w.NotebookCellTextDocumentFilter=Ph={}));var Ch;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!Sh.is(i)&&!Ph.is(i))return!1;return!0}t.is=e})(Ch||(w.DocumentSelector=Ch={}));var yy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(yy||(w.RegistrationRequest=yy={}));var wy;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(wy||(w.UnregistrationRequest=wy={}));var Sy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(Sy||(w.ResourceOperationKind=Sy={}));var xy;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(xy||(w.FailureHandlingKind=xy={}));var Py;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(Py||(w.PositionEncodingKind=Py={}));var Cy;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Cy||(w.StaticRegistrationOptions=Cy={}));var ky;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Ch.is(i.documentSelector))}t.is=e})(ky||(w.TextDocumentRegistrationOptions=ky={}));var Ty;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(Ty||(w.WorkDoneProgressOptions=Ty={}));var Ry;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ry||(w.InitializeRequest=Ry={}));var Dy;(function(t){t.unknownProtocolVersion=1})(Dy||(w.InitializeErrorCodes=Dy={}));var Fy;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Fy||(w.InitializedNotification=Fy={}));var Ey;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Ey||(w.ShutdownRequest=Ey={}));var Iy;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Iy||(w.ExitNotification=Iy={}));var My;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(My||(w.DidChangeConfigurationNotification=My={}));var Ay;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(Ay||(w.MessageType=Ay={}));var Ny;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ny||(w.ShowMessageNotification=Ny={}));var qy;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(qy||(w.ShowMessageRequest=qy={}));var Oy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Oy||(w.LogMessageNotification=Oy={}));var Ly;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ly||(w.TelemetryEventNotification=Ly={}));var By;(function(t){t.None=0,t.Full=1,t.Incremental=2})(By||(w.TextDocumentSyncKind=By={}));var Uy;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Uy||(w.DidOpenTextDocumentNotification=Uy={}));var $y;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})($y||(w.TextDocumentContentChangeEvent=$y={}));var Wy;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Wy||(w.DidChangeTextDocumentNotification=Wy={}));var jy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidCloseTextDocumentNotification=jy={}));var zy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(zy||(w.DidSaveTextDocumentNotification=zy={}));var Hy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(Hy||(w.TextDocumentSaveReason=Hy={}));var Vy;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Vy||(w.WillSaveTextDocumentNotification=Vy={}));var Gy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Gy||(w.WillSaveTextDocumentWaitUntilRequest=Gy={}));var Qy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Qy||(w.DidChangeWatchedFilesNotification=Qy={}));var Ky;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Ky||(w.FileChangeType=Ky={}));var Jy;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(vy.URI.is(i.baseUri)||vy.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Jy||(w.RelativePattern=Jy={}));var Xy;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Xy||(w.WatchKind=Xy={}));var Yy;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Yy||(w.PublishDiagnosticsNotification=Yy={}));var Zy;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Zy||(w.CompletionTriggerKind=Zy={}));var ew;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ew||(w.CompletionRequest=ew={}));var tw;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(tw||(w.CompletionResolveRequest=tw={}));var nw;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(nw||(w.HoverRequest=nw={}));var rw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(rw||(w.SignatureHelpTriggerKind=rw={}));var iw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.SignatureHelpRequest=iw={}));var ow;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.DefinitionRequest=ow={}));var sw;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(sw||(w.ReferencesRequest=sw={}));var aw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.DocumentHighlightRequest=aw={}));var cw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.DocumentSymbolRequest=cw={}));var uw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.CodeActionRequest=uw={}));var lw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.CodeActionResolveRequest=lw={}));var dw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.WorkspaceSymbolRequest=dw={}));var fw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.WorkspaceSymbolResolveRequest=fw={}));var hw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeLensRequest=hw={}));var gw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(gw||(w.CodeLensResolveRequest=gw={}));var pw;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(pw||(w.CodeLensRefreshRequest=pw={}));var mw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.DocumentLinkRequest=mw={}));var bw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.DocumentLinkResolveRequest=bw={}));var _w;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(_w||(w.DocumentFormattingRequest=_w={}));var vw;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentRangeFormattingRequest=vw={}));var yw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentRangesFormattingRequest=yw={}));var ww;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ww||(w.DocumentOnTypeFormattingRequest=ww={}));var Sw;(function(t){t.Identifier=1})(Sw||(w.PrepareSupportDefaultBehavior=Sw={}));var xw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.RenameRequest=xw={}));var Pw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.PrepareRenameRequest=Pw={}));var Cw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Cw||(w.ExecuteCommandRequest=Cw={}));var kw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(kw||(w.ApplyWorkspaceEditRequest=kw={}))});var Mw=I(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.createProtocolConnection=void 0;var Iw=Ui();function cN(t,e,n,i){return Iw.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Iw.createMessageConnection)(t,e,n,i)}nu.createProtocolConnection=cN});var Nw=I(pn=>{"use strict";var uN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),ru=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&uN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;ru(Ui(),pn);ru(Uc(),pn);ru(pt(),pn);ru(Ew(),pn);var lN=Mw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return lN.createProtocolConnection}});var Aw;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Aw||(pn.LSPErrorCodes=Aw={}))});var kt=I(yr=>{"use strict";var dN=yr&&yr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),qw=yr&&yr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&dN(e,t,n)};Object.defineProperty(yr,"__esModule",{value:!0});yr.createProtocolConnection=void 0;var fN=gh();qw(gh(),yr);qw(Nw(),yr);function hN(t,e,n,i){return(0,fN.createMessageConnection)(t,e,n,i)}yr.createProtocolConnection=hN});var Eh=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var As=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},Ns=class t extends As{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};Ns._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];Ns._timeHighBits=["8","9","a","b"];$n.empty=new As("00000000-0000-0000-0000-000000000000");function Ow(){return new Ns}$n.v4=Ow;var gN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Lw(t){return gN.test(t)}$n.isUUID=Lw;function pN(t){if(!Lw(t))throw new Error("invalid uuid");return new As(t)}$n.parse=pN;function mN(){return Ow().asHex()}$n.generateUuid=mN});var Bw=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.attachPartialResult=hi.ProgressFeature=hi.attachWorkDone=void 0;var fi=kt(),bN=Eh(),Wi=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(fi.WorkDoneProgress.type,this._token,{kind:"end"})}};Wi.Instances=new Map;var iu=class extends Wi{constructor(e,n){super(e,n),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},qs=class{constructor(){}begin(){}report(){}done(){}},ou=class extends qs{constructor(){super(),this._source=new fi.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function _N(t,e){if(e===void 0||e.workDoneToken===void 0)return new qs;let n=e.workDoneToken;return delete e.workDoneToken,new Wi(t,n)}hi.attachWorkDone=_N;var vN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(fi.WorkDoneProgressCancelNotification.type,n=>{let i=Wi.Instances.get(n.token);(i instanceof iu||i instanceof ou)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new qs:new Wi(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,bN.generateUuid)();return this.connection.sendRequest(fi.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new iu(this.connection,e))}else return Promise.resolve(new ou)}};hi.ProgressFeature=vN;var Ih;(function(t){t.type=new fi.ProgressType})(Ih||(Ih={}));var Mh=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Ih.type,this._token,e)}};function yN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Mh(t,n)}hi.attachPartialResult=yN});var Uw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.ConfigurationFeature=void 0;var wN=kt(),SN=bc(),xN=t=>class extends t{getConfiguration(e){return e?SN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(wN.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};su.ConfigurationFeature=xN});var $w=I(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.WorkspaceFoldersFeature=void 0;var au=kt(),PN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new au.Emitter,this.connection.onNotification(au.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(au.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(au.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};cu.WorkspaceFoldersFeature=PN});var Ww=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.CallHierarchyFeature=void 0;var Ah=kt(),CN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Ah.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Ah.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Ah.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};uu.CallHierarchyFeature=CN});var qh=I(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.SemanticTokensBuilder=gi.SemanticTokensDiff=gi.SemanticTokensFeature=void 0;var lu=kt(),kN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(lu.SemanticTokensRefreshRequest.type),on:e=>{let n=lu.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=lu.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=lu.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gi.SemanticTokensFeature=kN;var du=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new du(this._prevData,this._data).computeDiff()}:this.build()}};gi.SemanticTokensBuilder=Nh});var jw=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.ShowDocumentFeature=void 0;var TN=kt(),RN=t=>class extends t{showDocument(e){return this.connection.sendRequest(TN.ShowDocumentRequest.type,e)}};fu.ShowDocumentFeature=RN});var zw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.FileOperationsFeature=void 0;var Mo=kt(),DN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Mo.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Mo.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Mo.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Mo.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Mo.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Mo.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};hu.FileOperationsFeature=DN});var Hw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.LinkedEditingRangeFeature=void 0;var FN=kt(),EN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(FN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};gu.LinkedEditingRangeFeature=EN});var Vw=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.TypeHierarchyFeature=void 0;var Oh=kt(),IN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};pu.TypeHierarchyFeature=IN});var Qw=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.InlineValueFeature=void 0;var Gw=kt(),MN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Gw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Gw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};mu.InlineValueFeature=MN});var Jw=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.FoldingRangeFeature=void 0;var Kw=kt(),AN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Kw.FoldingRangeRefreshRequest.type),on:e=>{let n=Kw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};bu.FoldingRangeFeature=AN});var Xw=I(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.InlayHintFeature=void 0;var Lh=kt(),NN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Lh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Lh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Lh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};_u.InlayHintFeature=NN});var Yw=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.DiagnosticFeature=void 0;var Os=kt(),qN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Os.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Os.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Os.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Os.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Os.WorkspaceDiagnosticRequest.partialResult,n)))}}};vu.DiagnosticFeature=qN});var Uh=I(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.TextDocuments=void 0;var ji=kt(),Bh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new ji.Emitter,this._onDidOpen=new ji.Emitter,this._onDidClose=new ji.Emitter,this._onDidSave=new ji.Emitter,this._onWillSave=new ji.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=ji.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),ji.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};yu.TextDocuments=Bh});var Wh=I(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.NotebookDocuments=Ao.NotebookSyncFeature=void 0;var Wn=kt(),Zw=Uh(),ON=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Ao.NotebookSyncFeature=ON;var wu=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};wu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $h=class{constructor(e){e instanceof Zw.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new Zw.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new wu,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],v=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),v.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of v)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Ao.NotebookDocuments=$h});var eS=I(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.MonikerFeature=void 0;var LN=kt(),BN=t=>class extends t{get moniker(){return{on:e=>{let n=LN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};Su.MonikerFeature=BN});var Qh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=bc(),zh=Eh(),we=Bw(),UN=Uw(),$N=$w(),WN=Ww(),jN=qh(),zN=jw(),HN=zw(),VN=Hw(),GN=Vw(),QN=Qw(),KN=Jw(),JN=Xw(),XN=Yw(),YN=Wh(),ZN=eS();function jh(t){if(t!==null)return t}var Hh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Hh;var xu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Vh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}},tS=(0,zN.ShowDocumentFeature)((0,we.ProgressFeature)(Vh)),nS;(function(t){function e(){return new Pu}t.create=e})(nS||($e.BulkRegistration=nS={}));var Pu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=zh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},rS;(function(t){function e(){return new Ls(void 0,[])}t.create=e})(rS||($e.BulkUnregistration=rS={}));var Ls=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Cu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof Pu?this.registerMany(e):e instanceof Ls?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=zh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=zh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Ls(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},iS=(0,HN.FileOperationsFeature)((0,$N.WorkspaceFoldersFeature)((0,UN.ConfigurationFeature)(Gh))),ku=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Tu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Ru=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Ru;var oS=(0,KN.FoldingRangeFeature)((0,ZN.MonikerFeature)((0,XN.DiagnosticFeature)((0,JN.InlayHintFeature)((0,QN.InlineValueFeature)((0,GN.TypeHierarchyFeature)((0,VN.LinkedEditingRangeFeature)((0,jN.SemanticTokensFeature)((0,WN.CallHierarchyFeature)(Ru))))))))),Du=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Du;var sS=(0,YN.NotebookSyncFeature)(Du);function aS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=aS;function cS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=cS;function uS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=uS;function lS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=hS;function gS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=gS;function eq(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,aS),tracer:n(t.tracer,e.tracer,uS),telemetry:n(t.telemetry,e.telemetry,cS),client:n(t.client,e.client,lS),window:n(t.window,e.window,dS),workspace:n(t.workspace,e.workspace,fS),languages:n(t.languages,e.languages,hS),notebooks:n(t.notebooks,e.notebooks,gS)}}$e.combineFeatures=eq;function tq(t,e,n){let i=n&&n.console?new(n.console(xu)):new xu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(ku)):new ku,u=n&&n.telemetry?new(n.telemetry(Tu)):new Tu,d=n&&n.client?new(n.client(Cu)):new Cu,f=n&&n.window?new(n.window(tS)):new tS,m=n&&n.workspace?new(n.workspace(iS)):new iS,v=n&&n.languages?new(n.languages(oS)):new oS,x=n&&n.notebooks?new(n.notebooks(sS)):new sS,D=[i,c,u,d,f,m,v,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return v},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=tq});var pS=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var nq=require("url"),tr=require("path"),Kh=require("fs"),Zh=require("child_process");function rq(t){let e=nq.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=rq;function Jh(){return process.platform==="win32"}function Fu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(v=>m[v]=f[v]),e&&Kh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let v=(0,Zh.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(v.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}v.on("error",D=>{d(D)}),v.on("message",D=>{D.c==="r"&&(v.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};v.send(x)}catch(v){d(v)}})}mn.resolve=Fu;function Xh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Jh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,Zh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Jh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Xh;function iq(t){let e="yarn",n={encoding:"utf8"};Jh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,Zh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=iq;var Yh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Kh.existsSync(__filename.toUpperCase())||!Kh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Yh||(mn.FileSystem=Yh={}));function oq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Fu(e,n,n,i).then(s=>Yh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Fu(e,Xh(i),t,i))):Fu(e,Xh(i),t,i)}mn.resolveModulePath=oq});var eg=I((Ez,mS)=>{"use strict";mS.exports=kt()});var bS=I(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.InlineCompletionFeature=void 0;var sq=kt(),aq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(sq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Eu.InlineCompletionFeature=aq});var yS=I(Kt=>{"use strict";var cq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),vS=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var uq=qh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return uq.SemanticTokensBuilder}});var lq=bS();vS(kt(),Kt);var dq=Uh();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return dq.TextDocuments}});var fq=Wh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return fq.NotebookDocuments}});vS(Qh(),Kt);var _S;(function(t){t.all={__brand:"features",languages:lq.InlineCompletionFeature}})(_S||(Kt.ProposedFeatures=_S={}))});var ng=I(zn=>{"use strict";var hq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),PS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&hq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var wS=require("node:util"),tg=bc(),gq=Qh(),Bs=pS(),zi=eg();PS(eg(),zn);PS(yS(),zn);var SS;(function(t){t.uriToFilePath=Bs.uriToFilePath,t.resolveGlobalNodePath=Bs.resolveGlobalNodePath,t.resolveGlobalYarnPath=Bs.resolveGlobalYarnPath,t.resolve=Bs.resolve,t.resolveModulePath=Bs.resolveModulePath})(SS||(zn.Files=SS={}));var xS;function Iu(){if(xS!==void 0)try{xS.end()}catch{}}var No=!1,CS;function pq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(CS=setInterval(()=>{try{process.kill(i,0)}catch{Iu(),process.exit(No?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;tg.number(e)&&CS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(No?0:1)}},3e3)},get shutdownReceived(){return No},set shutdownReceived(t){No=t},exit:t=>{Iu(),process.exit(t)}};function bq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),zi.ConnectionStrategy.is(t)||zi.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),_q(c,u,d,s)}zn.createConnection=bq;function _q(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,v=process.argv.slice(2);for(let x=0;x{Iu(),process.exit(No?0:1)}),f.on("close",()=>{Iu(),process.exit(No?0:1)})}let d=f=>{let m=(0,zi.createProtocolConnection)(t,e,f,n);return s&&vq(f),m};return(0,gq.createConnection)(d,mq,i)}function vq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,wS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,wS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} -${c}`)},console.warn=function(...s){t.warn(e(s))}}});var TS=I((qz,kS)=>{"use strict";kS.exports=ng()});var MS=I((Xz,IS)=>{"use strict";function Cq(){this.__data__=[],this.size=0}IS.exports=Cq});var sg=I((Yz,AS)=>{"use strict";function kq(t,e){return t===e||t!==t&&e!==e}AS.exports=kq});var $s=I((Zz,NS)=>{"use strict";var Tq=sg();function Rq(t,e){for(var n=t.length;n--;)if(Tq(t[n][0],e))return n;return-1}NS.exports=Rq});var OS=I((eH,qS)=>{"use strict";var Dq=$s(),Fq=Array.prototype,Eq=Fq.splice;function Iq(t){var e=this.__data__,n=Dq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Eq.call(e,n,1),--this.size,!0}qS.exports=Iq});var BS=I((tH,LS)=>{"use strict";var Mq=$s();function Aq(t){var e=this.__data__,n=Mq(e,t);return n<0?void 0:e[n][1]}LS.exports=Aq});var $S=I((nH,US)=>{"use strict";var Nq=$s();function qq(t){return Nq(this.__data__,t)>-1}US.exports=qq});var jS=I((rH,WS)=>{"use strict";var Oq=$s();function Lq(t,e){var n=this.__data__,i=Oq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}WS.exports=Lq});var Ws=I((iH,zS)=>{"use strict";var Bq=MS(),Uq=OS(),$q=BS(),Wq=$S(),jq=jS();function qo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var zq=Ws();function Hq(){this.__data__=new zq,this.size=0}HS.exports=Hq});var QS=I((sH,GS)=>{"use strict";function Vq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}GS.exports=Vq});var JS=I((aH,KS)=>{"use strict";function Gq(t){return this.__data__.get(t)}KS.exports=Gq});var YS=I((cH,XS)=>{"use strict";function Qq(t){return this.__data__.has(t)}XS.exports=Qq});var ag=I((uH,ZS)=>{"use strict";var Kq=typeof global=="object"&&global&&global.Object===Object&&global;ZS.exports=Kq});var nr=I((lH,ex)=>{"use strict";var Jq=ag(),Xq=typeof self=="object"&&self&&self.Object===Object&&self,Yq=Jq||Xq||Function("return this")();ex.exports=Yq});var Ou=I((dH,tx)=>{"use strict";var Zq=nr(),e1=Zq.Symbol;tx.exports=e1});var ox=I((fH,ix)=>{"use strict";var nx=Ou(),rx=Object.prototype,t1=rx.hasOwnProperty,n1=rx.toString,js=nx?nx.toStringTag:void 0;function r1(t){var e=t1.call(t,js),n=t[js];try{t[js]=void 0;var i=!0}catch{}var s=n1.call(t);return i&&(e?t[js]=n:delete t[js]),s}ix.exports=r1});var ax=I((hH,sx)=>{"use strict";var i1=Object.prototype,o1=i1.toString;function s1(t){return o1.call(t)}sx.exports=s1});var zs=I((gH,lx)=>{"use strict";var cx=Ou(),a1=ox(),c1=ax(),u1="[object Null]",l1="[object Undefined]",ux=cx?cx.toStringTag:void 0;function d1(t){return t==null?t===void 0?l1:u1:ux&&ux in Object(t)?a1(t):c1(t)}lx.exports=d1});var Oo=I((pH,dx)=>{"use strict";function f1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}dx.exports=f1});var cg=I((mH,fx)=>{"use strict";var h1=zs(),g1=Oo(),p1="[object AsyncFunction]",m1="[object Function]",b1="[object GeneratorFunction]",_1="[object Proxy]";function v1(t){if(!g1(t))return!1;var e=h1(t);return e==m1||e==b1||e==p1||e==_1}fx.exports=v1});var gx=I((bH,hx)=>{"use strict";var y1=nr(),w1=y1["__core-js_shared__"];hx.exports=w1});var bx=I((_H,mx)=>{"use strict";var ug=gx(),px=function(){var t=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function S1(t){return!!px&&px in t}mx.exports=S1});var lg=I((vH,_x)=>{"use strict";var x1=Function.prototype,P1=x1.toString;function C1(t){if(t!=null){try{return P1.call(t)}catch{}try{return t+""}catch{}}return""}_x.exports=C1});var yx=I((yH,vx)=>{"use strict";var k1=cg(),T1=bx(),R1=Oo(),D1=lg(),F1=/[\\^$.*+?()[\]{}|]/g,E1=/^\[object .+?Constructor\]$/,I1=Function.prototype,M1=Object.prototype,A1=I1.toString,N1=M1.hasOwnProperty,q1=RegExp("^"+A1.call(N1).replace(F1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O1(t){if(!R1(t)||T1(t))return!1;var e=k1(t)?q1:E1;return e.test(D1(t))}vx.exports=O1});var Sx=I((wH,wx)=>{"use strict";function L1(t,e){return t?.[e]}wx.exports=L1});var mi=I((SH,xx)=>{"use strict";var B1=yx(),U1=Sx();function $1(t,e){var n=U1(t,e);return B1(n)?n:void 0}xx.exports=$1});var Lu=I((xH,Px)=>{"use strict";var W1=mi(),j1=nr(),z1=W1(j1,"Map");Px.exports=z1});var Hs=I((PH,Cx)=>{"use strict";var H1=mi(),V1=H1(Object,"create");Cx.exports=V1});var Rx=I((CH,Tx)=>{"use strict";var kx=Hs();function G1(){this.__data__=kx?kx(null):{},this.size=0}Tx.exports=G1});var Fx=I((kH,Dx)=>{"use strict";function Q1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Dx.exports=Q1});var Ix=I((TH,Ex)=>{"use strict";var K1=Hs(),J1="__lodash_hash_undefined__",X1=Object.prototype,Y1=X1.hasOwnProperty;function Z1(t){var e=this.__data__;if(K1){var n=e[t];return n===J1?void 0:n}return Y1.call(e,t)?e[t]:void 0}Ex.exports=Z1});var Ax=I((RH,Mx)=>{"use strict";var eO=Hs(),tO=Object.prototype,nO=tO.hasOwnProperty;function rO(t){var e=this.__data__;return eO?e[t]!==void 0:nO.call(e,t)}Mx.exports=rO});var qx=I((DH,Nx)=>{"use strict";var iO=Hs(),oO="__lodash_hash_undefined__";function sO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=iO&&e===void 0?oO:e,this}Nx.exports=sO});var Lx=I((FH,Ox)=>{"use strict";var aO=Rx(),cO=Fx(),uO=Ix(),lO=Ax(),dO=qx();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Bx=Lx(),fO=Ws(),hO=Lu();function gO(){this.size=0,this.__data__={hash:new Bx,map:new(hO||fO),string:new Bx}}Ux.exports=gO});var jx=I((IH,Wx)=>{"use strict";function pO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}Wx.exports=pO});var Vs=I((MH,zx)=>{"use strict";var mO=jx();function bO(t,e){var n=t.__data__;return mO(e)?n[typeof e=="string"?"string":"hash"]:n.map}zx.exports=bO});var Vx=I((AH,Hx)=>{"use strict";var _O=Vs();function vO(t){var e=_O(this,t).delete(t);return this.size-=e?1:0,e}Hx.exports=vO});var Qx=I((NH,Gx)=>{"use strict";var yO=Vs();function wO(t){return yO(this,t).get(t)}Gx.exports=wO});var Jx=I((qH,Kx)=>{"use strict";var SO=Vs();function xO(t){return SO(this,t).has(t)}Kx.exports=xO});var Yx=I((OH,Xx)=>{"use strict";var PO=Vs();function CO(t,e){var n=PO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}Xx.exports=CO});var eP=I((LH,Zx)=>{"use strict";var kO=$x(),TO=Vx(),RO=Qx(),DO=Jx(),FO=Yx();function Bo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var EO=Ws(),IO=Lu(),MO=eP(),AO=200;function NO(t,e){var n=this.__data__;if(n instanceof EO){var i=n.__data__;if(!IO||i.length{"use strict";var qO=Ws(),OO=VS(),LO=QS(),BO=JS(),UO=YS(),$O=nP();function Uo(t){var e=this.__data__=new qO(t);this.size=e.size}Uo.prototype.clear=OO;Uo.prototype.delete=LO;Uo.prototype.get=BO;Uo.prototype.has=UO;Uo.prototype.set=$O;rP.exports=Uo});var sP=I(($H,oP)=>{"use strict";function WO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var jO=mi(),zO=function(){try{var t=jO(Object,"defineProperty");return t({},"",{}),t}catch{}}();aP.exports=zO});var dg=I((jH,lP)=>{"use strict";var uP=cP();function HO(t,e,n){e=="__proto__"&&uP?uP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}lP.exports=HO});var fg=I((zH,dP)=>{"use strict";var VO=dg(),GO=sg(),QO=Object.prototype,KO=QO.hasOwnProperty;function JO(t,e,n){var i=t[e];(!(KO.call(t,e)&&GO(i,n))||n===void 0&&!(e in t))&&VO(t,e,n)}dP.exports=JO});var Gs=I((HH,fP)=>{"use strict";var XO=fg(),YO=dg();function ZO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function eL(t,e){for(var n=-1,i=Array(t);++n{"use strict";function tL(t){return t!=null&&typeof t=="object"}pP.exports=tL});var bP=I((QH,mP)=>{"use strict";var nL=zs(),rL=$o(),iL="[object Arguments]";function oL(t){return rL(t)&&nL(t)==iL}mP.exports=oL});var wP=I((KH,yP)=>{"use strict";var _P=bP(),sL=$o(),vP=Object.prototype,aL=vP.hasOwnProperty,cL=vP.propertyIsEnumerable,uL=_P(function(){return arguments}())?_P:function(t){return sL(t)&&aL.call(t,"callee")&&!cL.call(t,"callee")};yP.exports=uL});var Bu=I((JH,SP)=>{"use strict";var lL=Array.isArray;SP.exports=lL});var PP=I((XH,xP)=>{"use strict";function dL(){return!1}xP.exports=dL});var hg=I((Qs,Wo)=>{"use strict";var fL=nr(),hL=PP(),TP=typeof Qs=="object"&&Qs&&!Qs.nodeType&&Qs,CP=TP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,gL=CP&&CP.exports===TP,kP=gL?fL.Buffer:void 0,pL=kP?kP.isBuffer:void 0,mL=pL||hL;Wo.exports=mL});var DP=I((YH,RP)=>{"use strict";var bL=9007199254740991,_L=/^(?:0|[1-9]\d*)$/;function vL(t,e){var n=typeof t;return e=e??bL,!!e&&(n=="number"||n!="symbol"&&_L.test(t))&&t>-1&&t%1==0&&t{"use strict";var yL=9007199254740991;function wL(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=yL}FP.exports=wL});var IP=I((eV,EP)=>{"use strict";var SL=zs(),xL=gg(),PL=$o(),CL="[object Arguments]",kL="[object Array]",TL="[object Boolean]",RL="[object Date]",DL="[object Error]",FL="[object Function]",EL="[object Map]",IL="[object Number]",ML="[object Object]",AL="[object RegExp]",NL="[object Set]",qL="[object String]",OL="[object WeakMap]",LL="[object ArrayBuffer]",BL="[object DataView]",UL="[object Float32Array]",$L="[object Float64Array]",WL="[object Int8Array]",jL="[object Int16Array]",zL="[object Int32Array]",HL="[object Uint8Array]",VL="[object Uint8ClampedArray]",GL="[object Uint16Array]",QL="[object Uint32Array]",lt={};lt[UL]=lt[$L]=lt[WL]=lt[jL]=lt[zL]=lt[HL]=lt[VL]=lt[GL]=lt[QL]=!0;lt[CL]=lt[kL]=lt[LL]=lt[TL]=lt[BL]=lt[RL]=lt[DL]=lt[FL]=lt[EL]=lt[IL]=lt[ML]=lt[AL]=lt[NL]=lt[qL]=lt[OL]=!1;function KL(t){return PL(t)&&xL(t.length)&&!!lt[SL(t)]}EP.exports=KL});var Uu=I((tV,MP)=>{"use strict";function JL(t){return function(e){return t(e)}}MP.exports=JL});var $u=I((Ks,jo)=>{"use strict";var XL=ag(),AP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,Js=AP&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,YL=Js&&Js.exports===AP,pg=YL&&XL.process,ZL=function(){try{var t=Js&&Js.require&&Js.require("util").types;return t||pg&&pg.binding&&pg.binding("util")}catch{}}();jo.exports=ZL});var LP=I((nV,OP)=>{"use strict";var eB=IP(),tB=Uu(),NP=$u(),qP=NP&&NP.isTypedArray,nB=qP?tB(qP):eB;OP.exports=nB});var mg=I((rV,BP)=>{"use strict";var rB=gP(),iB=wP(),oB=Bu(),sB=hg(),aB=DP(),cB=LP(),uB=Object.prototype,lB=uB.hasOwnProperty;function dB(t,e){var n=oB(t),i=!n&&iB(t),s=!n&&!i&&sB(t),c=!n&&!i&&!s&&cB(t),u=n||i||s||c,d=u?rB(t.length,String):[],f=d.length;for(var m in t)(e||lB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||aB(m,f)))&&d.push(m);return d}BP.exports=dB});var Wu=I((iV,UP)=>{"use strict";var fB=Object.prototype;function hB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||fB;return t===n}UP.exports=hB});var bg=I((oV,$P)=>{"use strict";function gB(t,e){return function(n){return t(e(n))}}$P.exports=gB});var jP=I((sV,WP)=>{"use strict";var pB=bg(),mB=pB(Object.keys,Object);WP.exports=mB});var HP=I((aV,zP)=>{"use strict";var bB=Wu(),_B=jP(),vB=Object.prototype,yB=vB.hasOwnProperty;function wB(t){if(!bB(t))return _B(t);var e=[];for(var n in Object(t))yB.call(t,n)&&n!="constructor"&&e.push(n);return e}zP.exports=wB});var _g=I((cV,VP)=>{"use strict";var SB=cg(),xB=gg();function PB(t){return t!=null&&xB(t.length)&&!SB(t)}VP.exports=PB});var ju=I((uV,GP)=>{"use strict";var CB=mg(),kB=HP(),TB=_g();function RB(t){return TB(t)?CB(t):kB(t)}GP.exports=RB});var KP=I((lV,QP)=>{"use strict";var DB=Gs(),FB=ju();function EB(t,e){return t&&DB(e,FB(e),t)}QP.exports=EB});var XP=I((dV,JP)=>{"use strict";function IB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}JP.exports=IB});var ZP=I((fV,YP)=>{"use strict";var MB=Oo(),AB=Wu(),NB=XP(),qB=Object.prototype,OB=qB.hasOwnProperty;function LB(t){if(!MB(t))return NB(t);var e=AB(t),n=[];for(var i in t)i=="constructor"&&(e||!OB.call(t,i))||n.push(i);return n}YP.exports=LB});var zu=I((hV,eC)=>{"use strict";var BB=mg(),UB=ZP(),$B=_g();function WB(t){return $B(t)?BB(t,!0):UB(t)}eC.exports=WB});var nC=I((gV,tC)=>{"use strict";var jB=Gs(),zB=zu();function HB(t,e){return t&&jB(e,zB(e),t)}tC.exports=HB});var aC=I((Xs,zo)=>{"use strict";var VB=nr(),sC=typeof Xs=="object"&&Xs&&!Xs.nodeType&&Xs,rC=sC&&typeof zo=="object"&&zo&&!zo.nodeType&&zo,GB=rC&&rC.exports===sC,iC=GB?VB.Buffer:void 0,oC=iC?iC.allocUnsafe:void 0;function QB(t,e){if(e)return t.slice();var n=t.length,i=oC?oC(n):new t.constructor(n);return t.copy(i),i}zo.exports=QB});var uC=I((pV,cC)=>{"use strict";function KB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function JB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function XB(){return[]}fC.exports=XB});var Hu=I((_V,gC)=>{"use strict";var YB=dC(),ZB=vg(),eU=Object.prototype,tU=eU.propertyIsEnumerable,hC=Object.getOwnPropertySymbols,nU=hC?function(t){return t==null?[]:(t=Object(t),YB(hC(t),function(e){return tU.call(t,e)}))}:ZB;gC.exports=nU});var mC=I((vV,pC)=>{"use strict";var rU=Gs(),iU=Hu();function oU(t,e){return rU(t,iU(t),e)}pC.exports=oU});var yg=I((yV,bC)=>{"use strict";function sU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var aU=bg(),cU=aU(Object.getPrototypeOf,Object);_C.exports=cU});var Sg=I((SV,vC)=>{"use strict";var uU=yg(),lU=wg(),dU=Hu(),fU=vg(),hU=Object.getOwnPropertySymbols,gU=hU?function(t){for(var e=[];t;)uU(e,dU(t)),t=lU(t);return e}:fU;vC.exports=gU});var wC=I((xV,yC)=>{"use strict";var pU=Gs(),mU=Sg();function bU(t,e){return pU(t,mU(t),e)}yC.exports=bU});var xg=I((PV,SC)=>{"use strict";var _U=yg(),vU=Bu();function yU(t,e,n){var i=e(t);return vU(t)?i:_U(i,n(t))}SC.exports=yU});var PC=I((CV,xC)=>{"use strict";var wU=xg(),SU=Hu(),xU=ju();function PU(t){return wU(t,xU,SU)}xC.exports=PU});var kC=I((kV,CC)=>{"use strict";var CU=xg(),kU=Sg(),TU=zu();function RU(t){return CU(t,TU,kU)}CC.exports=RU});var RC=I((TV,TC)=>{"use strict";var DU=mi(),FU=nr(),EU=DU(FU,"DataView");TC.exports=EU});var FC=I((RV,DC)=>{"use strict";var IU=mi(),MU=nr(),AU=IU(MU,"Promise");DC.exports=AU});var IC=I((DV,EC)=>{"use strict";var NU=mi(),qU=nr(),OU=NU(qU,"Set");EC.exports=OU});var AC=I((FV,MC)=>{"use strict";var LU=mi(),BU=nr(),UU=LU(BU,"WeakMap");MC.exports=UU});var Vu=I((EV,$C)=>{"use strict";var Pg=RC(),Cg=Lu(),kg=FC(),Tg=IC(),Rg=AC(),UC=zs(),Ho=lg(),NC="[object Map]",$U="[object Object]",qC="[object Promise]",OC="[object Set]",LC="[object WeakMap]",BC="[object DataView]",WU=Ho(Pg),jU=Ho(Cg),zU=Ho(kg),HU=Ho(Tg),VU=Ho(Rg),Hi=UC;(Pg&&Hi(new Pg(new ArrayBuffer(1)))!=BC||Cg&&Hi(new Cg)!=NC||kg&&Hi(kg.resolve())!=qC||Tg&&Hi(new Tg)!=OC||Rg&&Hi(new Rg)!=LC)&&(Hi=function(t){var e=UC(t),n=e==$U?t.constructor:void 0,i=n?Ho(n):"";if(i)switch(i){case WU:return BC;case jU:return NC;case zU:return qC;case HU:return OC;case VU:return LC}return e});$C.exports=Hi});var jC=I((IV,WC)=>{"use strict";var GU=Object.prototype,QU=GU.hasOwnProperty;function KU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&QU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}WC.exports=KU});var HC=I((MV,zC)=>{"use strict";var JU=nr(),XU=JU.Uint8Array;zC.exports=XU});var Gu=I((AV,GC)=>{"use strict";var VC=HC();function YU(t){var e=new t.constructor(t.byteLength);return new VC(e).set(new VC(t)),e}GC.exports=YU});var KC=I((NV,QC)=>{"use strict";var ZU=Gu();function e$(t,e){var n=e?ZU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}QC.exports=e$});var XC=I((qV,JC)=>{"use strict";var t$=/\w*$/;function n$(t){var e=new t.constructor(t.source,t$.exec(t));return e.lastIndex=t.lastIndex,e}JC.exports=n$});var nk=I((OV,tk)=>{"use strict";var YC=Ou(),ZC=YC?YC.prototype:void 0,ek=ZC?ZC.valueOf:void 0;function r$(t){return ek?Object(ek.call(t)):{}}tk.exports=r$});var ik=I((LV,rk)=>{"use strict";var i$=Gu();function o$(t,e){var n=e?i$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}rk.exports=o$});var sk=I((BV,ok)=>{"use strict";var s$=Gu(),a$=KC(),c$=XC(),u$=nk(),l$=ik(),d$="[object Boolean]",f$="[object Date]",h$="[object Map]",g$="[object Number]",p$="[object RegExp]",m$="[object Set]",b$="[object String]",_$="[object Symbol]",v$="[object ArrayBuffer]",y$="[object DataView]",w$="[object Float32Array]",S$="[object Float64Array]",x$="[object Int8Array]",P$="[object Int16Array]",C$="[object Int32Array]",k$="[object Uint8Array]",T$="[object Uint8ClampedArray]",R$="[object Uint16Array]",D$="[object Uint32Array]";function F$(t,e,n){var i=t.constructor;switch(e){case v$:return s$(t);case d$:case f$:return new i(+t);case y$:return a$(t,n);case w$:case S$:case x$:case P$:case C$:case k$:case T$:case R$:case D$:return l$(t,n);case h$:return new i;case g$:case b$:return new i(t);case p$:return c$(t);case m$:return new i;case _$:return u$(t)}}ok.exports=F$});var uk=I((UV,ck)=>{"use strict";var E$=Oo(),ak=Object.create,I$=function(){function t(){}return function(e){if(!E$(e))return{};if(ak)return ak(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();ck.exports=I$});var dk=I(($V,lk)=>{"use strict";var M$=uk(),A$=wg(),N$=Wu();function q$(t){return typeof t.constructor=="function"&&!N$(t)?M$(A$(t)):{}}lk.exports=q$});var hk=I((WV,fk)=>{"use strict";var O$=Vu(),L$=$o(),B$="[object Map]";function U$(t){return L$(t)&&O$(t)==B$}fk.exports=U$});var bk=I((jV,mk)=>{"use strict";var $$=hk(),W$=Uu(),gk=$u(),pk=gk&&gk.isMap,j$=pk?W$(pk):$$;mk.exports=j$});var vk=I((zV,_k)=>{"use strict";var z$=Vu(),H$=$o(),V$="[object Set]";function G$(t){return H$(t)&&z$(t)==V$}_k.exports=G$});var xk=I((HV,Sk)=>{"use strict";var Q$=vk(),K$=Uu(),yk=$u(),wk=yk&&yk.isSet,J$=wk?K$(wk):Q$;Sk.exports=J$});var Rk=I((VV,Tk)=>{"use strict";var X$=iP(),Y$=sP(),Z$=fg(),eW=KP(),tW=nC(),nW=aC(),rW=uC(),iW=mC(),oW=wC(),sW=PC(),aW=kC(),cW=Vu(),uW=jC(),lW=sk(),dW=dk(),fW=Bu(),hW=hg(),gW=bk(),pW=Oo(),mW=xk(),bW=ju(),_W=zu(),vW=1,yW=2,wW=4,Pk="[object Arguments]",SW="[object Array]",xW="[object Boolean]",PW="[object Date]",CW="[object Error]",Ck="[object Function]",kW="[object GeneratorFunction]",TW="[object Map]",RW="[object Number]",kk="[object Object]",DW="[object RegExp]",FW="[object Set]",EW="[object String]",IW="[object Symbol]",MW="[object WeakMap]",AW="[object ArrayBuffer]",NW="[object DataView]",qW="[object Float32Array]",OW="[object Float64Array]",LW="[object Int8Array]",BW="[object Int16Array]",UW="[object Int32Array]",$W="[object Uint8Array]",WW="[object Uint8ClampedArray]",jW="[object Uint16Array]",zW="[object Uint32Array]",it={};it[Pk]=it[SW]=it[AW]=it[NW]=it[xW]=it[PW]=it[qW]=it[OW]=it[LW]=it[BW]=it[UW]=it[TW]=it[RW]=it[kk]=it[DW]=it[FW]=it[EW]=it[IW]=it[$W]=it[WW]=it[jW]=it[zW]=!0;it[CW]=it[Ck]=it[MW]=!1;function Qu(t,e,n,i,s,c){var u,d=e&vW,f=e&yW,m=e&wW;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!pW(t))return t;var v=fW(t);if(v){if(u=uW(t),!d)return rW(t,u)}else{var x=cW(t),D=x==Ck||x==kW;if(hW(t))return nW(t,d);if(x==kk||x==Pk||D&&!s){if(u=f||D?{}:dW(t),!d)return f?oW(t,tW(u,t)):iW(t,eW(u,t))}else{if(!it[x])return s?t:{};u=lW(t,x,d)}}c||(c=new X$);var N=c.get(t);if(N)return N;c.set(t,u),mW(t)?t.forEach(function(B){u.add(Qu(B,e,n,B,t,c))}):gW(t)&&t.forEach(function(B,K){u.set(K,Qu(B,e,n,K,t,c))});var A=m?f?aW:sW:f?_W:bW,L=v?void 0:A(t);return Y$(L||t,function(B,K){L&&(K=B,B=t[K]),Z$(u,K,Qu(B,e,n,K,t,c))}),u}Tk.exports=Qu});var Fk=I((GV,Dk)=>{"use strict";var HW=Rk(),VW=1,GW=4;function QW(t){return HW(t,VW|GW)}Dk.exports=QW});var Ik=I((Ek,Ku)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Ku=="object"&&Ku.exports?Ku.exports=e():t.log=e()})(Ek,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+xe)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(xe,X){return P=Je(xe),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(xe){F=Je(xe),ve()||B.setLevel(xe,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(xe){B.setLevel(B.levels.TRACE,xe)},B.disableAll=function(xe){B.setLevel(B.levels.SILENT,xe)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var xe in s)s[xe].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Go=I((Vo,ta)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,v=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",xe=800,X=16,z=1,se=2,re=3,De=1/0,pe=9007199254740991,me=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,wr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",lr="[object Array]",Pi="[object AsyncFunction]",dr="[object Boolean]",fr="[object Date]",Ki="[object DOMException]",Sr="[object Error]",xr="[object Function]",Pr="[object GeneratorFunction]",mt="[object Map]",hr="[object Number]",Ji="[object Null]",Bt="[object Object]",Ci="[object Promise]",Hr="[object Proxy]",gr="[object RegExp]",xt="[object Set]",sn="[object String]",Cr="[object Symbol]",Xi="[object Undefined]",jt="[object WeakMap]",ki="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",kr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",tt=/\b__p \+= '';/g,Fe=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(at.source),Yi=/<%-([\s\S]+?)%>/g,xa=/<%([\s\S]+?)%>/g,us=/<%=([\s\S]+?)%>/g,Pa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ca=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ft=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Vr=/^0o[0-7]+$/i,Zi=/^(?:0|[1-9]\d*)$/,ka=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ta=/($^)/,jT=/['\n\r\u2028\u2029\\]/g,Ra="\\ud800-\\udfff",zT="\\u0300-\\u036f",HT="\\ufe20-\\ufe2f",VT="\\u20d0-\\u20ff",Fp=zT+HT+VT,Ep="\\u2700-\\u27bf",Ip="a-z\\xdf-\\xf6\\xf8-\\xff",GT="\\xac\\xb1\\xd7\\xf7",QT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",KT="\\u2000-\\u206f",JT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Mp="A-Z\\xc0-\\xd6\\xd8-\\xde",Ap="\\ufe0e\\ufe0f",Np=GT+QT+KT+JT,Vl="['\u2019]",XT="["+Ra+"]",qp="["+Np+"]",Da="["+Fp+"]",Op="\\d+",YT="["+Ep+"]",Lp="["+Ip+"]",Bp="[^"+Ra+Np+Op+Ep+Ip+Mp+"]",Gl="\\ud83c[\\udffb-\\udfff]",ZT="(?:"+Da+"|"+Gl+")",Up="[^"+Ra+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",eo="["+Mp+"]",$p="\\u200d",Wp="(?:"+Lp+"|"+Bp+")",eR="(?:"+eo+"|"+Bp+")",jp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",zp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",Hp=ZT+"?",Vp="["+Ap+"]?",tR="(?:"+$p+"(?:"+[Up,Ql,Kl].join("|")+")"+Vp+Hp+")*",nR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Gp=Vp+Hp+tR,iR="(?:"+[YT,Ql,Kl].join("|")+")"+Gp,oR="(?:"+[Up+Da+"?",Da,Ql,Kl,XT].join("|")+")",sR=RegExp(Vl,"g"),aR=RegExp(Da,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+oR+Gp,"g"),cR=RegExp([eo+"?"+Lp+"+"+jp+"(?="+[qp,eo,"$"].join("|")+")",eR+"+"+zp+"(?="+[qp,eo+Wp,"$"].join("|")+")",eo+"?"+Wp+"+"+jp,eo+"+"+zp,rR,nR,Op,iR].join("|"),"g"),uR=RegExp("["+$p+Ra+Fp+Ap+"]"),lR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,dR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],fR=-1,ct={};ct[kr]=ct[vn]=ct[C]=ct[H]=ct[Z]=ct[ie]=ct[Ue]=ct[Le]=ct[Ge]=!0,ct[Vn]=ct[lr]=ct[Gn]=ct[dr]=ct[_n]=ct[fr]=ct[Sr]=ct[xr]=ct[mt]=ct[hr]=ct[Bt]=ct[gr]=ct[xt]=ct[sn]=ct[jt]=!1;var nt={};nt[Vn]=nt[lr]=nt[Gn]=nt[_n]=nt[dr]=nt[fr]=nt[kr]=nt[vn]=nt[C]=nt[H]=nt[Z]=nt[mt]=nt[hr]=nt[Bt]=nt[gr]=nt[xt]=nt[sn]=nt[Cr]=nt[ie]=nt[Ue]=nt[Le]=nt[Ge]=!0,nt[Sr]=nt[xr]=nt[jt]=!1;var hR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},gR={"&":"&","<":"<",">":">",'"':""","'":"'"},pR={"&":"&","<":"<",">":">",""":'"',"'":"'"},mR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},bR=parseFloat,_R=parseInt,Qp=typeof global=="object"&&global&&global.Object===Object&&global,vR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Qp||vR||Function("return this")(),Xl=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,Ti=Xl&&typeof ta=="object"&&ta&&!ta.nodeType&&ta,Kp=Ti&&Ti.exports===Xl,Yl=Kp&&Qp.process,En=function(){try{var E=Ti&&Ti.require&&Ti.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Jp=En&&En.isArrayBuffer,Xp=En&&En.isDate,Yp=En&&En.isMap,Zp=En&&En.isRegExp,em=En&&En.isSet,tm=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function yR(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function um(E,W){for(var $=E.length;$--&&to(W,E[$],0)>-1;);return $}function DR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var FR=rd(hR),ER=rd(gR);function IR(E){return"\\"+mR[E]}function MR(E,W){return E==null?t:E[W]}function no(E){return uR.test(E)}function AR(E){return lR.test(E)}function NR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function lm(E,W){return function($){return E(W($))}}function Kr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function SD(r,o){var a=this.__data__,l=Ga(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}Tr.prototype.clear=_D,Tr.prototype.delete=vD,Tr.prototype.get=yD,Tr.prototype.has=wD,Tr.prototype.set=SD;function Rr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&v,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=Pe(r);if(Q){if(S=k0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==xr||J==Pr;if(ni(r))return Vm(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:db(r),!T)return M?p0(r,LD(S,r)):g0(r,Sm(S,r))}else{if(!nt[J])return h?r:{};S=T0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),Ub(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):Lb(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,Re=Q?t:de(r);return In(Re||r,function(fe,Me){Re&&(Me=fe,fe=r[Me]),ms(S,Me,Nn(fe,o,a,Me,r,_))}),S}function BD(r){var o=Ot(r);return function(a){return xm(a,r,o)}}function xm(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function Pm(r,o,a){if(typeof r!="function")throw new Mn(s);return xs(function(){r.apply(t,a)},o)}function bs(r,o,a,l){var h=-1,_=Fa,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=ht(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ls,S=!1,o=new Fi(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:ke(l),l<0&&(l+=h),l=a>l?0:Wb(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Qr(h,T):l||(h[h.length]=T)}return h}var gd=Ym(),Tm=Ym(!0);function pr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&Tm(r,o,Ot)}function Ka(r,o){return Gr(o,function(a){return Mr(r[a])})}function Ii(r,o){o=ei(o,r);for(var a=0,l=o.length;r!=null&&ao}function WD(r,o){return r!=null&&Ke.call(r,o)}function jD(r,o){return r!=null&&o in Ye(r)}function zD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Fi(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&Ua.call(T,M,1),Ua.call(r,M,1);return r}function Lm(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Ir(h)?Ua.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+ja(_m()*(o-r+1))}function r0(r,o,a,l){for(var h=-1,_=At(Wa((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>pe)return a;do o%2&&(a+=r),o=ja(o/2),o&&(r+=r);while(o);return a}function Ee(r,o){return Ud(gb(r,o,dn),r+"")}function i0(r){return wm(ho(r))}function o0(r,o){var a=ho(r);return sc(a,Ei(o,0,a.length))}function ys(r,o,a,l){if(!bt(r))return r;o=ei(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=br(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Ir(o[h+1])?[]:{})}ms(T,M,V),T=T[M]}return r}var Bm=za?function(r,o){return za.set(r,o),r}:dn,s0=$a?function(r,o){return $a(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function a0(r){return sc(ho(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:v0(r);if(V)return Ia(V);S=!1,h=ls,M=new Fi}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=ei(o,r),r=pb(r,o),r==null||delete r[br(On(o))]}function Wm(r,o,a,l){return ys(r,o,a(Ii(r,o)),l)}function Ya(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var Hm=JR||function(r){return qt.clearTimeout(r)};function Vm(r,o){if(o)return r.slice();var a=r.length,l=hm?hm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new La(o).set(new La(r)),o}function l0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function d0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function f0(r){return ps?Ye(ps.call(r)):{}}function Gm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Qm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Km(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function tb(r){return Er(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&ic(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Fi:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(y,`{ +`&&g++}v&&R.length>0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),v=0,g=R.length;if(g===0)return u.create(0,k);for(;vk?g=O:v=O+1}var G=v-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var v=R[k.line],g=k.line+1"u"}p.undefined=v;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Hr,Yi){return k.call(Ie)==="[object Number]"&&Hr<=Ie&&Ie<=Yi}p.numberRange=be;function ht(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ht;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Hr){return Array.isArray(Ie)&&Ie.every(Hr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var wo=Bi(),W_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(W_||(hn.MessageDirection=W_={}));var mh=class{constructor(e){this.method=e}};hn.RegistrationType=mh;var bh=class extends wo.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=bh;var _h=class extends wo.RequestType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolRequestType=_h;var vh=class extends wo.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=vh;var yh=class extends wo.NotificationType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolNotificationType=yh});var Lc=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function WA(t){return t===!0||t===!1}It.boolean=WA;function j_(t){return typeof t=="string"||t instanceof String}It.string=j_;function jA(t){return typeof t=="number"||t instanceof Number}It.number=jA;function zA(t){return t instanceof Error}It.error=zA;function HA(t){return typeof t=="function"}It.func=HA;function z_(t){return Array.isArray(t)}It.array=z_;function VA(t){return z_(t)&&t.every(e=>j_(e))}It.stringArray=VA;function GA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=GA;function QA(t){return t!==null&&typeof t=="object"}It.objectLiteral=QA});var G_=I(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.ImplementationRequest=void 0;var H_=pt(),V_;(function(t){t.method="textDocument/implementation",t.messageDirection=H_.MessageDirection.clientToServer,t.type=new H_.ProtocolRequestType(t.method)})(V_||(Bc.ImplementationRequest=V_={}))});var J_=I(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Uc.TypeDefinitionRequest=void 0;var Q_=pt(),K_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=Q_.MessageDirection.clientToServer,t.type=new Q_.ProtocolRequestType(t.method)})(K_||(Uc.TypeDefinitionRequest=K_={}))});var Z_=I(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.DidChangeWorkspaceFoldersNotification=So.WorkspaceFoldersRequest=void 0;var $c=pt(),X_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=$c.MessageDirection.serverToClient,t.type=new $c.ProtocolRequestType0(t.method)})(X_||(So.WorkspaceFoldersRequest=X_={}));var Y_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=$c.MessageDirection.clientToServer,t.type=new $c.ProtocolNotificationType(t.method)})(Y_||(So.DidChangeWorkspaceFoldersNotification=Y_={}))});var nv=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ConfigurationRequest=void 0;var ev=pt(),tv;(function(t){t.method="workspace/configuration",t.messageDirection=ev.MessageDirection.serverToClient,t.type=new ev.ProtocolRequestType(t.method)})(tv||(Wc.ConfigurationRequest=tv={}))});var ov=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.ColorPresentationRequest=xo.DocumentColorRequest=void 0;var jc=pt(),rv;(function(t){t.method="textDocument/documentColor",t.messageDirection=jc.MessageDirection.clientToServer,t.type=new jc.ProtocolRequestType(t.method)})(rv||(xo.DocumentColorRequest=rv={}));var iv;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=jc.MessageDirection.clientToServer,t.type=new jc.ProtocolRequestType(t.method)})(iv||(xo.ColorPresentationRequest=iv={}))});var cv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.FoldingRangeRefreshRequest=Po.FoldingRangeRequest=void 0;var zc=pt(),sv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolRequestType(t.method)})(sv||(Po.FoldingRangeRequest=sv={}));var av;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(av||(Po.FoldingRangeRefreshRequest=av={}))});var dv=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.DeclarationRequest=void 0;var uv=pt(),lv;(function(t){t.method="textDocument/declaration",t.messageDirection=uv.MessageDirection.clientToServer,t.type=new uv.ProtocolRequestType(t.method)})(lv||(Hc.DeclarationRequest=lv={}))});var gv=I(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});Vc.SelectionRangeRequest=void 0;var fv=pt(),hv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=fv.MessageDirection.clientToServer,t.type=new fv.ProtocolRequestType(t.method)})(hv||(Vc.SelectionRangeRequest=hv={}))});var _v=I(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.WorkDoneProgressCancelNotification=si.WorkDoneProgressCreateRequest=si.WorkDoneProgress=void 0;var KA=Bi(),Gc=pt(),pv;(function(t){t.type=new KA.ProgressType;function e(n){return n===t.type}t.is=e})(pv||(si.WorkDoneProgress=pv={}));var mv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType(t.method)})(mv||(si.WorkDoneProgressCreateRequest=mv={}));var bv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolNotificationType(t.method)})(bv||(si.WorkDoneProgressCancelNotification=bv={}))});var Sv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.CallHierarchyOutgoingCallsRequest=ai.CallHierarchyIncomingCallsRequest=ai.CallHierarchyPrepareRequest=void 0;var Co=pt(),vv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(vv||(ai.CallHierarchyPrepareRequest=vv={}));var yv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(yv||(ai.CallHierarchyIncomingCallsRequest=yv={}));var wv;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(wv||(ai.CallHierarchyOutgoingCallsRequest=wv={}))});var Rv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var qr=pt(),xv;(function(t){t.Relative="relative"})(xv||(gn.TokenFormat=xv={}));var Es;(function(t){t.method="textDocument/semanticTokens",t.type=new qr.RegistrationType(t.method)})(Es||(gn.SemanticTokensRegistrationType=Es={}));var Pv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=qr.MessageDirection.clientToServer,t.type=new qr.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(Pv||(gn.SemanticTokensRequest=Pv={}));var Cv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=qr.MessageDirection.clientToServer,t.type=new qr.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(Cv||(gn.SemanticTokensDeltaRequest=Cv={}));var kv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=qr.MessageDirection.clientToServer,t.type=new qr.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(kv||(gn.SemanticTokensRangeRequest=kv={}));var Tv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=qr.MessageDirection.serverToClient,t.type=new qr.ProtocolRequestType0(t.method)})(Tv||(gn.SemanticTokensRefreshRequest=Tv={}))});var Ev=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.ShowDocumentRequest=void 0;var Dv=pt(),Fv;(function(t){t.method="window/showDocument",t.messageDirection=Dv.MessageDirection.serverToClient,t.type=new Dv.ProtocolRequestType(t.method)})(Fv||(Qc.ShowDocumentRequest=Fv={}))});var Av=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.LinkedEditingRangeRequest=void 0;var Iv=pt(),Mv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Iv.MessageDirection.clientToServer,t.type=new Iv.ProtocolRequestType(t.method)})(Mv||(Kc.LinkedEditingRangeRequest=Mv={}))});var Wv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Nv;(function(t){t.file="file",t.folder="folder"})(Nv||(Qt.FileOperationPatternKind=Nv={}));var qv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(qv||(Qt.WillCreateFilesRequest=qv={}));var Ov;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Ov||(Qt.DidCreateFilesNotification=Ov={}));var Lv;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Lv||(Qt.WillRenameFilesRequest=Lv={}));var Bv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Bv||(Qt.DidRenameFilesNotification=Bv={}));var Uv;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Uv||(Qt.DidDeleteFilesNotification=Uv={}));var $v;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})($v||(Qt.WillDeleteFilesRequest=$v={}))});var Gv=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.MonikerRequest=ci.MonikerKind=ci.UniquenessLevel=void 0;var jv=pt(),zv;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(zv||(ci.UniquenessLevel=zv={}));var Hv;(function(t){t.$import="import",t.$export="export",t.local="local"})(Hv||(ci.MonikerKind=Hv={}));var Vv;(function(t){t.method="textDocument/moniker",t.messageDirection=jv.MessageDirection.clientToServer,t.type=new jv.ProtocolRequestType(t.method)})(Vv||(ci.MonikerRequest=Vv={}))});var Xv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.TypeHierarchySubtypesRequest=ui.TypeHierarchySupertypesRequest=ui.TypeHierarchyPrepareRequest=void 0;var ko=pt(),Qv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Qv||(ui.TypeHierarchyPrepareRequest=Qv={}));var Kv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Kv||(ui.TypeHierarchySupertypesRequest=Kv={}));var Jv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Jv||(ui.TypeHierarchySubtypesRequest=Jv={}))});var ey=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.InlineValueRefreshRequest=To.InlineValueRequest=void 0;var Jc=pt(),Yv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolRequestType(t.method)})(Yv||(To.InlineValueRequest=Yv={}));var Zv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType0(t.method)})(Zv||(To.InlineValueRefreshRequest=Zv={}))});var iy=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.InlayHintRefreshRequest=li.InlayHintResolveRequest=li.InlayHintRequest=void 0;var Ro=pt(),ty;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(ty||(li.InlayHintRequest=ty={}));var ny;(function(t){t.method="inlayHint/resolve",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(ny||(li.InlayHintResolveRequest=ny={}));var ry;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Ro.MessageDirection.serverToClient,t.type=new Ro.ProtocolRequestType0(t.method)})(ry||(li.InlayHintRefreshRequest=ry={}))});var dy=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var ly=Bi(),JA=Lc(),Do=pt(),oy;(function(t){function e(n){let i=n;return i&&JA.boolean(i.retriggerRequest)}t.is=e})(oy||(Un.DiagnosticServerCancellationData=oy={}));var sy;(function(t){t.Full="full",t.Unchanged="unchanged"})(sy||(Un.DocumentDiagnosticReportKind=sy={}));var ay;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new ly.ProgressType})(ay||(Un.DocumentDiagnosticRequest=ay={}));var cy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new ly.ProgressType})(cy||(Un.WorkspaceDiagnosticRequest=cy={}));var uy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(uy||(Un.DiagnosticRefreshRequest=uy={}))});var _y=I(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.DidCloseNotebookDocumentNotification=wt.DidSaveNotebookDocumentNotification=wt.DidChangeNotebookDocumentNotification=wt.NotebookCellArrayChange=wt.DidOpenNotebookDocumentNotification=wt.NotebookDocumentSyncRegistrationType=wt.NotebookDocument=wt.NotebookCell=wt.ExecutionSummary=wt.NotebookCellKind=void 0;var Is=Oc(),er=Lc(),br=pt(),wh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(wh||(wt.NotebookCellKind=wh={}));var Sh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Is.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(Sh||(wt.ExecutionSummary=Sh={}));var Xc;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&wh.is(u.kind)&&Is.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!Sh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.InlineCompletionRequest=void 0;var vy=pt(),yy;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=vy.MessageDirection.clientToServer,t.type=new vy.ProtocolRequestType(t.method)})(yy||(Yc.InlineCompletionRequest=yy={}))});var Aw=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),Sy=Oc(),Lt=Lc(),XA=G_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return XA.ImplementationRequest}});var YA=J_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return YA.TypeDefinitionRequest}});var Fw=Z_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Fw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Fw.DidChangeWorkspaceFoldersNotification}});var ZA=nv();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return ZA.ConfigurationRequest}});var Ew=ov();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Ew.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Ew.ColorPresentationRequest}});var Iw=cv();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Iw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Iw.FoldingRangeRefreshRequest}});var eN=dv();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return eN.DeclarationRequest}});var tN=gv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return tN.SelectionRangeRequest}});var Th=_v();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return Th.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return Th.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return Th.WorkDoneProgressCancelNotification}});var Rh=Sv();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Rh.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Rh.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Rh.CallHierarchyPrepareRequest}});var Eo=Rv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Eo.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Eo.SemanticTokensRegistrationType}});var nN=Ev();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return nN.ShowDocumentRequest}});var rN=Av();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return rN.LinkedEditingRangeRequest}});var Ui=Wv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return Ui.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Ui.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Ui.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Ui.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Ui.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Ui.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Ui.WillDeleteFilesRequest}});var Dh=Gv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Dh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Dh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Dh.MonikerRequest}});var Fh=Xv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Fh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Fh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Fh.TypeHierarchySupertypesRequest}});var Mw=ey();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Mw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Mw.InlineValueRefreshRequest}});var Eh=iy();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Eh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Eh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Eh.InlayHintRefreshRequest}});var Ms=dy();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Ms.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Ms.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Ms.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Ms.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Ms.DiagnosticRefreshRequest}});var _r=_y();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return _r.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return _r.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return _r.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return _r.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return _r.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return _r.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidCloseNotebookDocumentNotification}});var iN=wy();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return iN.InlineCompletionRequest}});var xh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(xh||(w.TextDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(Ph||(w.NotebookDocumentFilter=Ph={}));var Ch;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||Ph.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ch||(w.NotebookCellTextDocumentFilter=Ch={}));var kh;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!xh.is(i)&&!Ch.is(i))return!1;return!0}t.is=e})(kh||(w.DocumentSelector=kh={}));var xy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(xy||(w.RegistrationRequest=xy={}));var Py;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Py||(w.UnregistrationRequest=Py={}));var Cy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(Cy||(w.ResourceOperationKind=Cy={}));var ky;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(ky||(w.FailureHandlingKind=ky={}));var Ty;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(Ty||(w.PositionEncodingKind=Ty={}));var Ry;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Ry||(w.StaticRegistrationOptions=Ry={}));var Dy;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||kh.is(i.documentSelector))}t.is=e})(Dy||(w.TextDocumentRegistrationOptions=Dy={}));var Fy;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(Fy||(w.WorkDoneProgressOptions=Fy={}));var Ey;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ey||(w.InitializeRequest=Ey={}));var Iy;(function(t){t.unknownProtocolVersion=1})(Iy||(w.InitializeErrorCodes=Iy={}));var My;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(My||(w.InitializedNotification=My={}));var Ay;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Ay||(w.ShutdownRequest=Ay={}));var Ny;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Ny||(w.ExitNotification=Ny={}));var qy;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(qy||(w.DidChangeConfigurationNotification=qy={}));var Oy;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(Oy||(w.MessageType=Oy={}));var Ly;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ly||(w.ShowMessageNotification=Ly={}));var By;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(By||(w.ShowMessageRequest=By={}));var Uy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Uy||(w.LogMessageNotification=Uy={}));var $y;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})($y||(w.TelemetryEventNotification=$y={}));var Wy;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Wy||(w.TextDocumentSyncKind=Wy={}));var jy;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidOpenTextDocumentNotification=jy={}));var zy;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(zy||(w.TextDocumentContentChangeEvent=zy={}));var Hy;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Hy||(w.DidChangeTextDocumentNotification=Hy={}));var Vy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Vy||(w.DidCloseTextDocumentNotification=Vy={}));var Gy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Gy||(w.DidSaveTextDocumentNotification=Gy={}));var Qy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(Qy||(w.TextDocumentSaveReason=Qy={}));var Ky;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Ky||(w.WillSaveTextDocumentNotification=Ky={}));var Jy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Jy||(w.WillSaveTextDocumentWaitUntilRequest=Jy={}));var Xy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Xy||(w.DidChangeWatchedFilesNotification=Xy={}));var Yy;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Yy||(w.FileChangeType=Yy={}));var Zy;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Sy.URI.is(i.baseUri)||Sy.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Zy||(w.RelativePattern=Zy={}));var ew;(function(t){t.Create=1,t.Change=2,t.Delete=4})(ew||(w.WatchKind=ew={}));var tw;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(tw||(w.PublishDiagnosticsNotification=tw={}));var nw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(nw||(w.CompletionTriggerKind=nw={}));var rw;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(rw||(w.CompletionRequest=rw={}));var iw;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.CompletionResolveRequest=iw={}));var ow;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.HoverRequest=ow={}));var sw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(sw||(w.SignatureHelpTriggerKind=sw={}));var aw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.SignatureHelpRequest=aw={}));var cw;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.DefinitionRequest=cw={}));var uw;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.ReferencesRequest=uw={}));var lw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.DocumentHighlightRequest=lw={}));var dw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.DocumentSymbolRequest=dw={}));var fw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.CodeActionRequest=fw={}));var hw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeActionResolveRequest=hw={}));var gw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(gw||(w.WorkspaceSymbolRequest=gw={}));var pw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(pw||(w.WorkspaceSymbolResolveRequest=pw={}));var mw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.CodeLensRequest=mw={}));var bw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.CodeLensResolveRequest=bw={}));var _w;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(_w||(w.CodeLensRefreshRequest=_w={}));var vw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentLinkRequest=vw={}));var yw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentLinkResolveRequest=yw={}));var ww;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ww||(w.DocumentFormattingRequest=ww={}));var Sw;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Sw||(w.DocumentRangeFormattingRequest=Sw={}));var xw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.DocumentRangesFormattingRequest=xw={}));var Pw;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.DocumentOnTypeFormattingRequest=Pw={}));var Cw;(function(t){t.Identifier=1})(Cw||(w.PrepareSupportDefaultBehavior=Cw={}));var kw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(kw||(w.RenameRequest=kw={}));var Tw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Tw||(w.PrepareRenameRequest=Tw={}));var Rw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Rw||(w.ExecuteCommandRequest=Rw={}));var Dw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(Dw||(w.ApplyWorkspaceEditRequest=Dw={}))});var qw=I(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});Zc.createProtocolConnection=void 0;var Nw=Bi();function oN(t,e,n,i){return Nw.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Nw.createMessageConnection)(t,e,n,i)}Zc.createProtocolConnection=oN});var Lw=I(pn=>{"use strict";var sN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),eu=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&sN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;eu(Bi(),pn);eu(Oc(),pn);eu(pt(),pn);eu(Aw(),pn);var aN=qw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return aN.createProtocolConnection}});var Ow;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Ow||(pn.LSPErrorCodes=Ow={}))});var kt=I(vr=>{"use strict";var cN=vr&&vr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Bw=vr&&vr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cN(e,t,n)};Object.defineProperty(vr,"__esModule",{value:!0});vr.createProtocolConnection=void 0;var uN=ph();Bw(ph(),vr);Bw(Lw(),vr);function lN(t,e,n,i){return(0,uN.createMessageConnection)(t,e,n,i)}vr.createProtocolConnection=lN});var Ih=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var As=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},Ns=class t extends As{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};Ns._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];Ns._timeHighBits=["8","9","a","b"];$n.empty=new As("00000000-0000-0000-0000-000000000000");function Uw(){return new Ns}$n.v4=Uw;var dN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function $w(t){return dN.test(t)}$n.isUUID=$w;function fN(t){if(!$w(t))throw new Error("invalid uuid");return new As(t)}$n.parse=fN;function hN(){return Uw().asHex()}$n.generateUuid=hN});var Ww=I(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.attachPartialResult=fi.ProgressFeature=fi.attachWorkDone=void 0;var di=kt(),gN=Ih(),$i=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(di.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(di.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(di.WorkDoneProgress.type,this._token,{kind:"end"})}};$i.Instances=new Map;var tu=class extends $i{constructor(e,n){super(e,n),this._source=new di.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},qs=class{constructor(){}begin(){}report(){}done(){}},nu=class extends qs{constructor(){super(),this._source=new di.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function pN(t,e){if(e===void 0||e.workDoneToken===void 0)return new qs;let n=e.workDoneToken;return delete e.workDoneToken,new $i(t,n)}fi.attachWorkDone=pN;var mN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(di.WorkDoneProgressCancelNotification.type,n=>{let i=$i.Instances.get(n.token);(i instanceof tu||i instanceof nu)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new qs:new $i(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,gN.generateUuid)();return this.connection.sendRequest(di.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new tu(this.connection,e))}else return Promise.resolve(new nu)}};fi.ProgressFeature=mN;var Mh;(function(t){t.type=new di.ProgressType})(Mh||(Mh={}));var Ah=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Mh.type,this._token,e)}};function bN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Ah(t,n)}fi.attachPartialResult=bN});var jw=I(ru=>{"use strict";Object.defineProperty(ru,"__esModule",{value:!0});ru.ConfigurationFeature=void 0;var _N=kt(),vN=gc(),yN=t=>class extends t{getConfiguration(e){return e?vN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(_N.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};ru.ConfigurationFeature=yN});var zw=I(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.WorkspaceFoldersFeature=void 0;var iu=kt(),wN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new iu.Emitter,this.connection.onNotification(iu.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(iu.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(iu.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};ou.WorkspaceFoldersFeature=wN});var Hw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.CallHierarchyFeature=void 0;var Nh=kt(),SN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Nh.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Nh.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Nh.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};su.CallHierarchyFeature=SN});var Oh=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.SemanticTokensBuilder=hi.SemanticTokensDiff=hi.SemanticTokensFeature=void 0;var au=kt(),xN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(au.SemanticTokensRefreshRequest.type),on:e=>{let n=au.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=au.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=au.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};hi.SemanticTokensFeature=xN;var cu=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new cu(this._prevData,this._data).computeDiff()}:this.build()}};hi.SemanticTokensBuilder=qh});var Vw=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.ShowDocumentFeature=void 0;var PN=kt(),CN=t=>class extends t{showDocument(e){return this.connection.sendRequest(PN.ShowDocumentRequest.type,e)}};uu.ShowDocumentFeature=CN});var Gw=I(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.FileOperationsFeature=void 0;var Io=kt(),kN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Io.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Io.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Io.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Io.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Io.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Io.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};lu.FileOperationsFeature=kN});var Qw=I(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.LinkedEditingRangeFeature=void 0;var TN=kt(),RN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(TN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};du.LinkedEditingRangeFeature=RN});var Kw=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.TypeHierarchyFeature=void 0;var Lh=kt(),DN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Lh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Lh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Lh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};fu.TypeHierarchyFeature=DN});var Xw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.InlineValueFeature=void 0;var Jw=kt(),FN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Jw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Jw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};hu.InlineValueFeature=FN});var Zw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.FoldingRangeFeature=void 0;var Yw=kt(),EN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Yw.FoldingRangeRefreshRequest.type),on:e=>{let n=Yw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gu.FoldingRangeFeature=EN});var eS=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.InlayHintFeature=void 0;var Bh=kt(),IN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Bh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Bh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Bh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};pu.InlayHintFeature=IN});var tS=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.DiagnosticFeature=void 0;var Os=kt(),MN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Os.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Os.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Os.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Os.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Os.WorkspaceDiagnosticRequest.partialResult,n)))}}};mu.DiagnosticFeature=MN});var $h=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.TextDocuments=void 0;var Wi=kt(),Uh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new Wi.Emitter,this._onDidOpen=new Wi.Emitter,this._onDidClose=new Wi.Emitter,this._onDidSave=new Wi.Emitter,this._onWillSave=new Wi.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=Wi.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),Wi.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};bu.TextDocuments=Uh});var jh=I(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.NotebookDocuments=Mo.NotebookSyncFeature=void 0;var Wn=kt(),nS=$h(),AN=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Mo.NotebookSyncFeature=AN;var _u=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};_u.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var Wh=class{constructor(e){e instanceof nS.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new nS.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new _u,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],y=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),y.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of y)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Mo.NotebookDocuments=Wh});var rS=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.MonikerFeature=void 0;var NN=kt(),qN=t=>class extends t{get moniker(){return{on:e=>{let n=NN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};vu.MonikerFeature=qN});var Kh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=gc(),Hh=Ih(),we=Ww(),ON=jw(),LN=zw(),BN=Hw(),UN=Oh(),$N=Vw(),WN=Gw(),jN=Qw(),zN=Kw(),HN=Xw(),VN=Zw(),GN=eS(),QN=tS(),KN=jh(),JN=rS();function zh(t){if(t!==null)return t}var Vh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Vh;var yu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(zh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(zh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(zh)}},iS=(0,$N.ShowDocumentFeature)((0,we.ProgressFeature)(Gh)),oS;(function(t){function e(){return new wu}t.create=e})(oS||($e.BulkRegistration=oS={}));var wu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=Hh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},sS;(function(t){function e(){return new Ls(void 0,[])}t.create=e})(sS||($e.BulkUnregistration=sS={}));var Ls=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Su=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof wu?this.registerMany(e):e instanceof Ls?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=Hh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=Hh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Ls(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Qh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},aS=(0,WN.FileOperationsFeature)((0,LN.WorkspaceFoldersFeature)((0,ON.ConfigurationFeature)(Qh))),xu=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Pu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Cu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Cu;var cS=(0,VN.FoldingRangeFeature)((0,JN.MonikerFeature)((0,QN.DiagnosticFeature)((0,GN.InlayHintFeature)((0,HN.InlineValueFeature)((0,zN.TypeHierarchyFeature)((0,jN.LinkedEditingRangeFeature)((0,UN.SemanticTokensFeature)((0,BN.CallHierarchyFeature)(Cu))))))))),ku=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=ku;var uS=(0,KN.NotebookSyncFeature)(ku);function lS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=hS;function gS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=gS;function pS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=pS;function mS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=mS;function bS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=bS;function XN(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,lS),tracer:n(t.tracer,e.tracer,fS),telemetry:n(t.telemetry,e.telemetry,dS),client:n(t.client,e.client,hS),window:n(t.window,e.window,gS),workspace:n(t.workspace,e.workspace,pS),languages:n(t.languages,e.languages,mS),notebooks:n(t.notebooks,e.notebooks,bS)}}$e.combineFeatures=XN;function YN(t,e,n){let i=n&&n.console?new(n.console(yu)):new yu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(xu)):new xu,u=n&&n.telemetry?new(n.telemetry(Pu)):new Pu,d=n&&n.client?new(n.client(Su)):new Su,f=n&&n.window?new(n.window(iS)):new iS,m=n&&n.workspace?new(n.workspace(aS)):new aS,y=n&&n.languages?new(n.languages(cS)):new cS,x=n&&n.notebooks?new(n.notebooks(uS)):new uS,D=[i,c,u,d,f,m,y,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return y},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=YN});var _S=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var ZN=require("url"),tr=require("path"),Jh=require("fs"),eg=require("child_process");function eq(t){let e=ZN.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=eq;function Xh(){return process.platform==="win32"}function Tu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(y=>m[y]=f[y]),e&&Jh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let y=(0,eg.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(y.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}y.on("error",D=>{d(D)}),y.on("message",D=>{D.c==="r"&&(y.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};y.send(x)}catch(y){d(y)}})}mn.resolve=Tu;function Yh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Xh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,eg.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Xh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Yh;function tq(t){let e="yarn",n={encoding:"utf8"};Xh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,eg.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=tq;var Zh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Jh.existsSync(__filename.toUpperCase())||!Jh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Zh||(mn.FileSystem=Zh={}));function nq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Tu(e,n,n,i).then(s=>Zh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Tu(e,Yh(i),t,i))):Tu(e,Yh(i),t,i)}mn.resolveModulePath=nq});var tg=I((Tz,vS)=>{"use strict";vS.exports=kt()});var yS=I(Ru=>{"use strict";Object.defineProperty(Ru,"__esModule",{value:!0});Ru.InlineCompletionFeature=void 0;var rq=kt(),iq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(rq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Ru.InlineCompletionFeature=iq});var xS=I(Kt=>{"use strict";var oq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),SS=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&oq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var sq=Oh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return sq.SemanticTokensBuilder}});var aq=yS();SS(kt(),Kt);var cq=$h();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return cq.TextDocuments}});var uq=jh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return uq.NotebookDocuments}});SS(Kh(),Kt);var wS;(function(t){t.all={__brand:"features",languages:aq.InlineCompletionFeature}})(wS||(Kt.ProposedFeatures=wS={}))});var rg=I(zn=>{"use strict";var lq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),TS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&lq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var PS=require("node:util"),ng=gc(),dq=Kh(),Bs=_S(),ji=tg();TS(tg(),zn);TS(xS(),zn);var CS;(function(t){t.uriToFilePath=Bs.uriToFilePath,t.resolveGlobalNodePath=Bs.resolveGlobalNodePath,t.resolveGlobalYarnPath=Bs.resolveGlobalYarnPath,t.resolve=Bs.resolve,t.resolveModulePath=Bs.resolveModulePath})(CS||(zn.Files=CS={}));var kS;function Du(){if(kS!==void 0)try{kS.end()}catch{}}var Ao=!1,RS;function fq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(RS=setInterval(()=>{try{process.kill(i,0)}catch{Du(),process.exit(Ao?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;ng.number(e)&&RS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(Ao?0:1)}},3e3)},get shutdownReceived(){return Ao},set shutdownReceived(t){Ao=t},exit:t=>{Du(),process.exit(t)}};function gq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),ji.ConnectionStrategy.is(t)||ji.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),pq(c,u,d,s)}zn.createConnection=gq;function pq(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,y=process.argv.slice(2);for(let x=0;x{Du(),process.exit(Ao?0:1)}),f.on("close",()=>{Du(),process.exit(Ao?0:1)})}let d=f=>{let m=(0,ji.createProtocolConnection)(t,e,f,n);return s&&mq(f),m};return(0,dq.createConnection)(d,hq,i)}function mq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,PS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,PS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} +${c}`)},console.warn=function(...s){t.warn(e(s))}}});var FS=I((Iz,DS)=>{"use strict";DS.exports=rg()});var qS=I((Gz,NS)=>{"use strict";function Sq(){this.__data__=[],this.size=0}NS.exports=Sq});var ag=I((Qz,OS)=>{"use strict";function xq(t,e){return t===e||t!==t&&e!==e}OS.exports=xq});var $s=I((Kz,LS)=>{"use strict";var Pq=ag();function Cq(t,e){for(var n=t.length;n--;)if(Pq(t[n][0],e))return n;return-1}LS.exports=Cq});var US=I((Jz,BS)=>{"use strict";var kq=$s(),Tq=Array.prototype,Rq=Tq.splice;function Dq(t){var e=this.__data__,n=kq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Rq.call(e,n,1),--this.size,!0}BS.exports=Dq});var WS=I((Xz,$S)=>{"use strict";var Fq=$s();function Eq(t){var e=this.__data__,n=Fq(e,t);return n<0?void 0:e[n][1]}$S.exports=Eq});var zS=I((Yz,jS)=>{"use strict";var Iq=$s();function Mq(t){return Iq(this.__data__,t)>-1}jS.exports=Mq});var VS=I((Zz,HS)=>{"use strict";var Aq=$s();function Nq(t,e){var n=this.__data__,i=Aq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}HS.exports=Nq});var Ws=I((eH,GS)=>{"use strict";var qq=qS(),Oq=US(),Lq=WS(),Bq=zS(),Uq=VS();function No(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var $q=Ws();function Wq(){this.__data__=new $q,this.size=0}QS.exports=Wq});var XS=I((nH,JS)=>{"use strict";function jq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}JS.exports=jq});var ZS=I((rH,YS)=>{"use strict";function zq(t){return this.__data__.get(t)}YS.exports=zq});var tx=I((iH,ex)=>{"use strict";function Hq(t){return this.__data__.has(t)}ex.exports=Hq});var cg=I((oH,nx)=>{"use strict";var Vq=typeof global=="object"&&global&&global.Object===Object&&global;nx.exports=Vq});var nr=I((sH,rx)=>{"use strict";var Gq=cg(),Qq=typeof self=="object"&&self&&self.Object===Object&&self,Kq=Gq||Qq||Function("return this")();rx.exports=Kq});var Au=I((aH,ix)=>{"use strict";var Jq=nr(),Xq=Jq.Symbol;ix.exports=Xq});var cx=I((cH,ax)=>{"use strict";var ox=Au(),sx=Object.prototype,Yq=sx.hasOwnProperty,Zq=sx.toString,js=ox?ox.toStringTag:void 0;function e1(t){var e=Yq.call(t,js),n=t[js];try{t[js]=void 0;var i=!0}catch{}var s=Zq.call(t);return i&&(e?t[js]=n:delete t[js]),s}ax.exports=e1});var lx=I((uH,ux)=>{"use strict";var t1=Object.prototype,n1=t1.toString;function r1(t){return n1.call(t)}ux.exports=r1});var zs=I((lH,hx)=>{"use strict";var dx=Au(),i1=cx(),o1=lx(),s1="[object Null]",a1="[object Undefined]",fx=dx?dx.toStringTag:void 0;function c1(t){return t==null?t===void 0?a1:s1:fx&&fx in Object(t)?i1(t):o1(t)}hx.exports=c1});var qo=I((dH,gx)=>{"use strict";function u1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}gx.exports=u1});var ug=I((fH,px)=>{"use strict";var l1=zs(),d1=qo(),f1="[object AsyncFunction]",h1="[object Function]",g1="[object GeneratorFunction]",p1="[object Proxy]";function m1(t){if(!d1(t))return!1;var e=l1(t);return e==h1||e==g1||e==f1||e==p1}px.exports=m1});var bx=I((hH,mx)=>{"use strict";var b1=nr(),_1=b1["__core-js_shared__"];mx.exports=_1});var yx=I((gH,vx)=>{"use strict";var lg=bx(),_x=function(){var t=/[^.]+$/.exec(lg&&lg.keys&&lg.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function v1(t){return!!_x&&_x in t}vx.exports=v1});var dg=I((pH,wx)=>{"use strict";var y1=Function.prototype,w1=y1.toString;function S1(t){if(t!=null){try{return w1.call(t)}catch{}try{return t+""}catch{}}return""}wx.exports=S1});var xx=I((mH,Sx)=>{"use strict";var x1=ug(),P1=yx(),C1=qo(),k1=dg(),T1=/[\\^$.*+?()[\]{}|]/g,R1=/^\[object .+?Constructor\]$/,D1=Function.prototype,F1=Object.prototype,E1=D1.toString,I1=F1.hasOwnProperty,M1=RegExp("^"+E1.call(I1).replace(T1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function A1(t){if(!C1(t)||P1(t))return!1;var e=x1(t)?M1:R1;return e.test(k1(t))}Sx.exports=A1});var Cx=I((bH,Px)=>{"use strict";function N1(t,e){return t?.[e]}Px.exports=N1});var pi=I((_H,kx)=>{"use strict";var q1=xx(),O1=Cx();function L1(t,e){var n=O1(t,e);return q1(n)?n:void 0}kx.exports=L1});var Nu=I((vH,Tx)=>{"use strict";var B1=pi(),U1=nr(),$1=B1(U1,"Map");Tx.exports=$1});var Hs=I((yH,Rx)=>{"use strict";var W1=pi(),j1=W1(Object,"create");Rx.exports=j1});var Ex=I((wH,Fx)=>{"use strict";var Dx=Hs();function z1(){this.__data__=Dx?Dx(null):{},this.size=0}Fx.exports=z1});var Mx=I((SH,Ix)=>{"use strict";function H1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Ix.exports=H1});var Nx=I((xH,Ax)=>{"use strict";var V1=Hs(),G1="__lodash_hash_undefined__",Q1=Object.prototype,K1=Q1.hasOwnProperty;function J1(t){var e=this.__data__;if(V1){var n=e[t];return n===G1?void 0:n}return K1.call(e,t)?e[t]:void 0}Ax.exports=J1});var Ox=I((PH,qx)=>{"use strict";var X1=Hs(),Y1=Object.prototype,Z1=Y1.hasOwnProperty;function eO(t){var e=this.__data__;return X1?e[t]!==void 0:Z1.call(e,t)}qx.exports=eO});var Bx=I((CH,Lx)=>{"use strict";var tO=Hs(),nO="__lodash_hash_undefined__";function rO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=tO&&e===void 0?nO:e,this}Lx.exports=rO});var $x=I((kH,Ux)=>{"use strict";var iO=Ex(),oO=Mx(),sO=Nx(),aO=Ox(),cO=Bx();function Oo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Wx=$x(),uO=Ws(),lO=Nu();function dO(){this.size=0,this.__data__={hash:new Wx,map:new(lO||uO),string:new Wx}}jx.exports=dO});var Vx=I((RH,Hx)=>{"use strict";function fO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}Hx.exports=fO});var Vs=I((DH,Gx)=>{"use strict";var hO=Vx();function gO(t,e){var n=t.__data__;return hO(e)?n[typeof e=="string"?"string":"hash"]:n.map}Gx.exports=gO});var Kx=I((FH,Qx)=>{"use strict";var pO=Vs();function mO(t){var e=pO(this,t).delete(t);return this.size-=e?1:0,e}Qx.exports=mO});var Xx=I((EH,Jx)=>{"use strict";var bO=Vs();function _O(t){return bO(this,t).get(t)}Jx.exports=_O});var Zx=I((IH,Yx)=>{"use strict";var vO=Vs();function yO(t){return vO(this,t).has(t)}Yx.exports=yO});var tP=I((MH,eP)=>{"use strict";var wO=Vs();function SO(t,e){var n=wO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}eP.exports=SO});var rP=I((AH,nP)=>{"use strict";var xO=zx(),PO=Kx(),CO=Xx(),kO=Zx(),TO=tP();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var RO=Ws(),DO=Nu(),FO=rP(),EO=200;function IO(t,e){var n=this.__data__;if(n instanceof RO){var i=n.__data__;if(!DO||i.length{"use strict";var MO=Ws(),AO=KS(),NO=XS(),qO=ZS(),OO=tx(),LO=oP();function Bo(t){var e=this.__data__=new MO(t);this.size=e.size}Bo.prototype.clear=AO;Bo.prototype.delete=NO;Bo.prototype.get=qO;Bo.prototype.has=OO;Bo.prototype.set=LO;sP.exports=Bo});var uP=I((OH,cP)=>{"use strict";function BO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var UO=pi(),$O=function(){try{var t=UO(Object,"defineProperty");return t({},"",{}),t}catch{}}();lP.exports=$O});var fg=I((BH,hP)=>{"use strict";var fP=dP();function WO(t,e,n){e=="__proto__"&&fP?fP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}hP.exports=WO});var hg=I((UH,gP)=>{"use strict";var jO=fg(),zO=ag(),HO=Object.prototype,VO=HO.hasOwnProperty;function GO(t,e,n){var i=t[e];(!(VO.call(t,e)&&zO(i,n))||n===void 0&&!(e in t))&&jO(t,e,n)}gP.exports=GO});var Gs=I(($H,pP)=>{"use strict";var QO=hg(),KO=fg();function JO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function XO(t,e){for(var n=-1,i=Array(t);++n{"use strict";function YO(t){return t!=null&&typeof t=="object"}_P.exports=YO});var yP=I((zH,vP)=>{"use strict";var ZO=zs(),eL=Uo(),tL="[object Arguments]";function nL(t){return eL(t)&&ZO(t)==tL}vP.exports=nL});var PP=I((HH,xP)=>{"use strict";var wP=yP(),rL=Uo(),SP=Object.prototype,iL=SP.hasOwnProperty,oL=SP.propertyIsEnumerable,sL=wP(function(){return arguments}())?wP:function(t){return rL(t)&&iL.call(t,"callee")&&!oL.call(t,"callee")};xP.exports=sL});var qu=I((VH,CP)=>{"use strict";var aL=Array.isArray;CP.exports=aL});var TP=I((GH,kP)=>{"use strict";function cL(){return!1}kP.exports=cL});var gg=I((Qs,$o)=>{"use strict";var uL=nr(),lL=TP(),FP=typeof Qs=="object"&&Qs&&!Qs.nodeType&&Qs,RP=FP&&typeof $o=="object"&&$o&&!$o.nodeType&&$o,dL=RP&&RP.exports===FP,DP=dL?uL.Buffer:void 0,fL=DP?DP.isBuffer:void 0,hL=fL||lL;$o.exports=hL});var IP=I((QH,EP)=>{"use strict";var gL=9007199254740991,pL=/^(?:0|[1-9]\d*)$/;function mL(t,e){var n=typeof t;return e=e??gL,!!e&&(n=="number"||n!="symbol"&&pL.test(t))&&t>-1&&t%1==0&&t{"use strict";var bL=9007199254740991;function _L(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=bL}MP.exports=_L});var NP=I((JH,AP)=>{"use strict";var vL=zs(),yL=pg(),wL=Uo(),SL="[object Arguments]",xL="[object Array]",PL="[object Boolean]",CL="[object Date]",kL="[object Error]",TL="[object Function]",RL="[object Map]",DL="[object Number]",FL="[object Object]",EL="[object RegExp]",IL="[object Set]",ML="[object String]",AL="[object WeakMap]",NL="[object ArrayBuffer]",qL="[object DataView]",OL="[object Float32Array]",LL="[object Float64Array]",BL="[object Int8Array]",UL="[object Int16Array]",$L="[object Int32Array]",WL="[object Uint8Array]",jL="[object Uint8ClampedArray]",zL="[object Uint16Array]",HL="[object Uint32Array]",dt={};dt[OL]=dt[LL]=dt[BL]=dt[UL]=dt[$L]=dt[WL]=dt[jL]=dt[zL]=dt[HL]=!0;dt[SL]=dt[xL]=dt[NL]=dt[PL]=dt[qL]=dt[CL]=dt[kL]=dt[TL]=dt[RL]=dt[DL]=dt[FL]=dt[EL]=dt[IL]=dt[ML]=dt[AL]=!1;function VL(t){return wL(t)&&yL(t.length)&&!!dt[vL(t)]}AP.exports=VL});var Ou=I((XH,qP)=>{"use strict";function GL(t){return function(e){return t(e)}}qP.exports=GL});var Lu=I((Ks,Wo)=>{"use strict";var QL=cg(),OP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,Js=OP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,KL=Js&&Js.exports===OP,mg=KL&&QL.process,JL=function(){try{var t=Js&&Js.require&&Js.require("util").types;return t||mg&&mg.binding&&mg.binding("util")}catch{}}();Wo.exports=JL});var $P=I((YH,UP)=>{"use strict";var XL=NP(),YL=Ou(),LP=Lu(),BP=LP&&LP.isTypedArray,ZL=BP?YL(BP):XL;UP.exports=ZL});var bg=I((ZH,WP)=>{"use strict";var eB=bP(),tB=PP(),nB=qu(),rB=gg(),iB=IP(),oB=$P(),sB=Object.prototype,aB=sB.hasOwnProperty;function cB(t,e){var n=nB(t),i=!n&&tB(t),s=!n&&!i&&rB(t),c=!n&&!i&&!s&&oB(t),u=n||i||s||c,d=u?eB(t.length,String):[],f=d.length;for(var m in t)(e||aB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||iB(m,f)))&&d.push(m);return d}WP.exports=cB});var Bu=I((eV,jP)=>{"use strict";var uB=Object.prototype;function lB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||uB;return t===n}jP.exports=lB});var _g=I((tV,zP)=>{"use strict";function dB(t,e){return function(n){return t(e(n))}}zP.exports=dB});var VP=I((nV,HP)=>{"use strict";var fB=_g(),hB=fB(Object.keys,Object);HP.exports=hB});var QP=I((rV,GP)=>{"use strict";var gB=Bu(),pB=VP(),mB=Object.prototype,bB=mB.hasOwnProperty;function _B(t){if(!gB(t))return pB(t);var e=[];for(var n in Object(t))bB.call(t,n)&&n!="constructor"&&e.push(n);return e}GP.exports=_B});var vg=I((iV,KP)=>{"use strict";var vB=ug(),yB=pg();function wB(t){return t!=null&&yB(t.length)&&!vB(t)}KP.exports=wB});var Uu=I((oV,JP)=>{"use strict";var SB=bg(),xB=QP(),PB=vg();function CB(t){return PB(t)?SB(t):xB(t)}JP.exports=CB});var YP=I((sV,XP)=>{"use strict";var kB=Gs(),TB=Uu();function RB(t,e){return t&&kB(e,TB(e),t)}XP.exports=RB});var eC=I((aV,ZP)=>{"use strict";function DB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}ZP.exports=DB});var nC=I((cV,tC)=>{"use strict";var FB=qo(),EB=Bu(),IB=eC(),MB=Object.prototype,AB=MB.hasOwnProperty;function NB(t){if(!FB(t))return IB(t);var e=EB(t),n=[];for(var i in t)i=="constructor"&&(e||!AB.call(t,i))||n.push(i);return n}tC.exports=NB});var $u=I((uV,rC)=>{"use strict";var qB=bg(),OB=nC(),LB=vg();function BB(t){return LB(t)?qB(t,!0):OB(t)}rC.exports=BB});var oC=I((lV,iC)=>{"use strict";var UB=Gs(),$B=$u();function WB(t,e){return t&&UB(e,$B(e),t)}iC.exports=WB});var lC=I((Xs,jo)=>{"use strict";var jB=nr(),uC=typeof Xs=="object"&&Xs&&!Xs.nodeType&&Xs,sC=uC&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,zB=sC&&sC.exports===uC,aC=zB?jB.Buffer:void 0,cC=aC?aC.allocUnsafe:void 0;function HB(t,e){if(e)return t.slice();var n=t.length,i=cC?cC(n):new t.constructor(n);return t.copy(i),i}jo.exports=HB});var fC=I((dV,dC)=>{"use strict";function VB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function GB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function QB(){return[]}pC.exports=QB});var Wu=I((gV,bC)=>{"use strict";var KB=gC(),JB=yg(),XB=Object.prototype,YB=XB.propertyIsEnumerable,mC=Object.getOwnPropertySymbols,ZB=mC?function(t){return t==null?[]:(t=Object(t),KB(mC(t),function(e){return YB.call(t,e)}))}:JB;bC.exports=ZB});var vC=I((pV,_C)=>{"use strict";var eU=Gs(),tU=Wu();function nU(t,e){return eU(t,tU(t),e)}_C.exports=nU});var wg=I((mV,yC)=>{"use strict";function rU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var iU=_g(),oU=iU(Object.getPrototypeOf,Object);wC.exports=oU});var xg=I((_V,SC)=>{"use strict";var sU=wg(),aU=Sg(),cU=Wu(),uU=yg(),lU=Object.getOwnPropertySymbols,dU=lU?function(t){for(var e=[];t;)sU(e,cU(t)),t=aU(t);return e}:uU;SC.exports=dU});var PC=I((vV,xC)=>{"use strict";var fU=Gs(),hU=xg();function gU(t,e){return fU(t,hU(t),e)}xC.exports=gU});var Pg=I((yV,CC)=>{"use strict";var pU=wg(),mU=qu();function bU(t,e,n){var i=e(t);return mU(t)?i:pU(i,n(t))}CC.exports=bU});var TC=I((wV,kC)=>{"use strict";var _U=Pg(),vU=Wu(),yU=Uu();function wU(t){return _U(t,yU,vU)}kC.exports=wU});var DC=I((SV,RC)=>{"use strict";var SU=Pg(),xU=xg(),PU=$u();function CU(t){return SU(t,PU,xU)}RC.exports=CU});var EC=I((xV,FC)=>{"use strict";var kU=pi(),TU=nr(),RU=kU(TU,"DataView");FC.exports=RU});var MC=I((PV,IC)=>{"use strict";var DU=pi(),FU=nr(),EU=DU(FU,"Promise");IC.exports=EU});var NC=I((CV,AC)=>{"use strict";var IU=pi(),MU=nr(),AU=IU(MU,"Set");AC.exports=AU});var OC=I((kV,qC)=>{"use strict";var NU=pi(),qU=nr(),OU=NU(qU,"WeakMap");qC.exports=OU});var ju=I((TV,zC)=>{"use strict";var Cg=EC(),kg=Nu(),Tg=MC(),Rg=NC(),Dg=OC(),jC=zs(),zo=dg(),LC="[object Map]",LU="[object Object]",BC="[object Promise]",UC="[object Set]",$C="[object WeakMap]",WC="[object DataView]",BU=zo(Cg),UU=zo(kg),$U=zo(Tg),WU=zo(Rg),jU=zo(Dg),zi=jC;(Cg&&zi(new Cg(new ArrayBuffer(1)))!=WC||kg&&zi(new kg)!=LC||Tg&&zi(Tg.resolve())!=BC||Rg&&zi(new Rg)!=UC||Dg&&zi(new Dg)!=$C)&&(zi=function(t){var e=jC(t),n=e==LU?t.constructor:void 0,i=n?zo(n):"";if(i)switch(i){case BU:return WC;case UU:return LC;case $U:return BC;case WU:return UC;case jU:return $C}return e});zC.exports=zi});var VC=I((RV,HC)=>{"use strict";var zU=Object.prototype,HU=zU.hasOwnProperty;function VU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&HU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}HC.exports=VU});var QC=I((DV,GC)=>{"use strict";var GU=nr(),QU=GU.Uint8Array;GC.exports=QU});var zu=I((FV,JC)=>{"use strict";var KC=QC();function KU(t){var e=new t.constructor(t.byteLength);return new KC(e).set(new KC(t)),e}JC.exports=KU});var YC=I((EV,XC)=>{"use strict";var JU=zu();function XU(t,e){var n=e?JU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}XC.exports=XU});var ek=I((IV,ZC)=>{"use strict";var YU=/\w*$/;function ZU(t){var e=new t.constructor(t.source,YU.exec(t));return e.lastIndex=t.lastIndex,e}ZC.exports=ZU});var ok=I((MV,ik)=>{"use strict";var tk=Au(),nk=tk?tk.prototype:void 0,rk=nk?nk.valueOf:void 0;function e$(t){return rk?Object(rk.call(t)):{}}ik.exports=e$});var ak=I((AV,sk)=>{"use strict";var t$=zu();function n$(t,e){var n=e?t$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}sk.exports=n$});var uk=I((NV,ck)=>{"use strict";var r$=zu(),i$=YC(),o$=ek(),s$=ok(),a$=ak(),c$="[object Boolean]",u$="[object Date]",l$="[object Map]",d$="[object Number]",f$="[object RegExp]",h$="[object Set]",g$="[object String]",p$="[object Symbol]",m$="[object ArrayBuffer]",b$="[object DataView]",_$="[object Float32Array]",v$="[object Float64Array]",y$="[object Int8Array]",w$="[object Int16Array]",S$="[object Int32Array]",x$="[object Uint8Array]",P$="[object Uint8ClampedArray]",C$="[object Uint16Array]",k$="[object Uint32Array]";function T$(t,e,n){var i=t.constructor;switch(e){case m$:return r$(t);case c$:case u$:return new i(+t);case b$:return i$(t,n);case _$:case v$:case y$:case w$:case S$:case x$:case P$:case C$:case k$:return a$(t,n);case l$:return new i;case d$:case g$:return new i(t);case f$:return o$(t);case h$:return new i;case p$:return s$(t)}}ck.exports=T$});var fk=I((qV,dk)=>{"use strict";var R$=qo(),lk=Object.create,D$=function(){function t(){}return function(e){if(!R$(e))return{};if(lk)return lk(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();dk.exports=D$});var gk=I((OV,hk)=>{"use strict";var F$=fk(),E$=Sg(),I$=Bu();function M$(t){return typeof t.constructor=="function"&&!I$(t)?F$(E$(t)):{}}hk.exports=M$});var mk=I((LV,pk)=>{"use strict";var A$=ju(),N$=Uo(),q$="[object Map]";function O$(t){return N$(t)&&A$(t)==q$}pk.exports=O$});var yk=I((BV,vk)=>{"use strict";var L$=mk(),B$=Ou(),bk=Lu(),_k=bk&&bk.isMap,U$=_k?B$(_k):L$;vk.exports=U$});var Sk=I((UV,wk)=>{"use strict";var $$=ju(),W$=Uo(),j$="[object Set]";function z$(t){return W$(t)&&$$(t)==j$}wk.exports=z$});var kk=I(($V,Ck)=>{"use strict";var H$=Sk(),V$=Ou(),xk=Lu(),Pk=xk&&xk.isSet,G$=Pk?V$(Pk):H$;Ck.exports=G$});var Ek=I((WV,Fk)=>{"use strict";var Q$=aP(),K$=uP(),J$=hg(),X$=YP(),Y$=oC(),Z$=lC(),eW=fC(),tW=vC(),nW=PC(),rW=TC(),iW=DC(),oW=ju(),sW=VC(),aW=uk(),cW=gk(),uW=qu(),lW=gg(),dW=yk(),fW=qo(),hW=kk(),gW=Uu(),pW=$u(),mW=1,bW=2,_W=4,Tk="[object Arguments]",vW="[object Array]",yW="[object Boolean]",wW="[object Date]",SW="[object Error]",Rk="[object Function]",xW="[object GeneratorFunction]",PW="[object Map]",CW="[object Number]",Dk="[object Object]",kW="[object RegExp]",TW="[object Set]",RW="[object String]",DW="[object Symbol]",FW="[object WeakMap]",EW="[object ArrayBuffer]",IW="[object DataView]",MW="[object Float32Array]",AW="[object Float64Array]",NW="[object Int8Array]",qW="[object Int16Array]",OW="[object Int32Array]",LW="[object Uint8Array]",BW="[object Uint8ClampedArray]",UW="[object Uint16Array]",$W="[object Uint32Array]",it={};it[Tk]=it[vW]=it[EW]=it[IW]=it[yW]=it[wW]=it[MW]=it[AW]=it[NW]=it[qW]=it[OW]=it[PW]=it[CW]=it[Dk]=it[kW]=it[TW]=it[RW]=it[DW]=it[LW]=it[BW]=it[UW]=it[$W]=!0;it[SW]=it[Rk]=it[FW]=!1;function Hu(t,e,n,i,s,c){var u,d=e&mW,f=e&bW,m=e&_W;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!fW(t))return t;var y=uW(t);if(y){if(u=sW(t),!d)return eW(t,u)}else{var x=oW(t),D=x==Rk||x==xW;if(lW(t))return Z$(t,d);if(x==Dk||x==Tk||D&&!s){if(u=f||D?{}:cW(t),!d)return f?nW(t,Y$(u,t)):tW(t,X$(u,t))}else{if(!it[x])return s?t:{};u=aW(t,x,d)}}c||(c=new Q$);var N=c.get(t);if(N)return N;c.set(t,u),hW(t)?t.forEach(function(B){u.add(Hu(B,e,n,B,t,c))}):dW(t)&&t.forEach(function(B,K){u.set(K,Hu(B,e,n,K,t,c))});var A=m?f?iW:rW:f?pW:gW,L=y?void 0:A(t);return K$(L||t,function(B,K){L&&(K=B,B=t[K]),J$(u,K,Hu(B,e,n,K,t,c))}),u}Fk.exports=Hu});var Mk=I((jV,Ik)=>{"use strict";var WW=Ek(),jW=1,zW=4;function HW(t){return WW(t,jW|zW)}Ik.exports=HW});var Fg=I((Ak,Vu)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Vu=="object"&&Vu.exports?Vu.exports=e():t.log=e()})(Ak,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+xe)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(xe,X){return P=Je(xe),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(xe){F=Je(xe),ve()||B.setLevel(xe,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(xe){B.setLevel(B.levels.TRACE,xe)},B.disableAll=function(xe){B.setLevel(B.levels.SILENT,xe)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var xe in s)s[xe].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Vo=I((Ho,ta)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,y=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",xe=800,X=16,z=1,se=2,re=3,De=1/0,ge=9007199254740991,pe=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,yr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",ur="[object Array]",xi="[object AsyncFunction]",lr="[object Boolean]",dr="[object Date]",Qi="[object DOMException]",wr="[object Error]",Sr="[object Function]",xr="[object GeneratorFunction]",mt="[object Map]",fr="[object Number]",Ki="[object Null]",Bt="[object Object]",Pi="[object Promise]",zr="[object Proxy]",hr="[object RegExp]",xt="[object Set]",sn="[object String]",Pr="[object Symbol]",Ji="[object Undefined]",jt="[object WeakMap]",Ci="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",Cr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",et=/\b__p \+= '';/g,Fe=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,ct=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(ct.source),Xi=/<%-([\s\S]+?)%>/g,wa=/<%([\s\S]+?)%>/g,us=/<%=([\s\S]+?)%>/g,Sa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xa=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,v=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Hr=/^0o[0-7]+$/i,Yi=/^(?:0|[1-9]\d*)$/,Pa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ca=/($^)/,$T=/['\n\r\u2028\u2029\\]/g,ka="\\ud800-\\udfff",WT="\\u0300-\\u036f",jT="\\ufe20-\\ufe2f",zT="\\u20d0-\\u20ff",Mp=WT+jT+zT,Ap="\\u2700-\\u27bf",Np="a-z\\xdf-\\xf6\\xf8-\\xff",HT="\\xac\\xb1\\xd7\\xf7",VT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",GT="\\u2000-\\u206f",QT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",qp="A-Z\\xc0-\\xd6\\xd8-\\xde",Op="\\ufe0e\\ufe0f",Lp=HT+VT+GT+QT,Vl="['\u2019]",KT="["+ka+"]",Bp="["+Lp+"]",Ta="["+Mp+"]",Up="\\d+",JT="["+Ap+"]",$p="["+Np+"]",Wp="[^"+ka+Lp+Up+Ap+Np+qp+"]",Gl="\\ud83c[\\udffb-\\udfff]",XT="(?:"+Ta+"|"+Gl+")",jp="[^"+ka+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",Zi="["+qp+"]",zp="\\u200d",Hp="(?:"+$p+"|"+Wp+")",YT="(?:"+Zi+"|"+Wp+")",Vp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",Gp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",Qp=XT+"?",Kp="["+Op+"]?",ZT="(?:"+zp+"(?:"+[jp,Ql,Kl].join("|")+")"+Kp+Qp+")*",eR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",tR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Jp=Kp+Qp+ZT,nR="(?:"+[JT,Ql,Kl].join("|")+")"+Jp,rR="(?:"+[jp+Ta+"?",Ta,Ql,Kl,KT].join("|")+")",iR=RegExp(Vl,"g"),oR=RegExp(Ta,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+rR+Jp,"g"),sR=RegExp([Zi+"?"+$p+"+"+Vp+"(?="+[Bp,Zi,"$"].join("|")+")",YT+"+"+Gp+"(?="+[Bp,Zi+Hp,"$"].join("|")+")",Zi+"?"+Hp+"+"+Vp,Zi+"+"+Gp,tR,eR,Up,nR].join("|"),"g"),aR=RegExp("["+zp+ka+Mp+Op+"]"),cR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,uR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],lR=-1,ut={};ut[Cr]=ut[vn]=ut[C]=ut[H]=ut[Z]=ut[ie]=ut[Ue]=ut[Le]=ut[Ge]=!0,ut[Vn]=ut[ur]=ut[Gn]=ut[lr]=ut[_n]=ut[dr]=ut[wr]=ut[Sr]=ut[mt]=ut[fr]=ut[Bt]=ut[hr]=ut[xt]=ut[sn]=ut[jt]=!1;var tt={};tt[Vn]=tt[ur]=tt[Gn]=tt[_n]=tt[lr]=tt[dr]=tt[Cr]=tt[vn]=tt[C]=tt[H]=tt[Z]=tt[mt]=tt[fr]=tt[Bt]=tt[hr]=tt[xt]=tt[sn]=tt[Pr]=tt[ie]=tt[Ue]=tt[Le]=tt[Ge]=!0,tt[wr]=tt[Sr]=tt[jt]=!1;var dR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},fR={"&":"&","<":"<",">":">",'"':""","'":"'"},hR={"&":"&","<":"<",">":">",""":'"',"'":"'"},gR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},pR=parseFloat,mR=parseInt,Xp=typeof global=="object"&&global&&global.Object===Object&&global,bR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Xp||bR||Function("return this")(),Xl=typeof Ho=="object"&&Ho&&!Ho.nodeType&&Ho,ki=Xl&&typeof ta=="object"&&ta&&!ta.nodeType&&ta,Yp=ki&&ki.exports===Xl,Yl=Yp&&Xp.process,En=function(){try{var E=ki&&ki.require&&ki.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Zp=En&&En.isArrayBuffer,em=En&&En.isDate,tm=En&&En.isMap,nm=En&&En.isRegExp,rm=En&&En.isSet,im=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function _R(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function fm(E,W){for(var $=E.length;$--&&eo(W,E[$],0)>-1;);return $}function TR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var RR=rd(dR),DR=rd(fR);function FR(E){return"\\"+gR[E]}function ER(E,W){return E==null?t:E[W]}function to(E){return aR.test(E)}function IR(E){return cR.test(E)}function MR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function hm(E,W){return function($){return E(W($))}}function Qr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function yD(r,o){var a=this.__data__,l=Ha(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}kr.prototype.clear=mD,kr.prototype.delete=bD,kr.prototype.get=_D,kr.prototype.has=vD,kr.prototype.set=yD;function Tr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&y,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=Pe(r);if(Q){if(S=P0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==Sr||J==xr;if(ti(r))return Km(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:gb(r),!T)return M?h0(r,qD(S,r)):f0(r,Cm(S,r))}else{if(!tt[J])return h?r:{};S=C0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),jb(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):$b(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,Re=Q?t:de(r);return In(Re||r,function(fe,Me){Re&&(Me=fe,fe=r[Me]),ms(S,Me,Nn(fe,o,a,Me,r,_))}),S}function OD(r){var o=Ot(r);return function(a){return km(a,r,o)}}function km(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function Tm(r,o,a){if(typeof r!="function")throw new Mn(s);return xs(function(){r.apply(t,a)},o)}function bs(r,o,a,l){var h=-1,_=Ra,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=gt(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ls,S=!1,o=new Di(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:Te(l),l<0&&(l+=h),l=a>l?0:Hb(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Gr(h,T):l||(h[h.length]=T)}return h}var gd=tb(),Fm=tb(!0);function gr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&Fm(r,o,Ot)}function Ga(r,o){return Vr(o,function(a){return Ir(r[a])})}function Ei(r,o){o=Zr(o,r);for(var a=0,l=o.length;r!=null&&ao}function UD(r,o){return r!=null&&Ke.call(r,o)}function $D(r,o){return r!=null&&o in Ye(r)}function WD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Di(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&La.call(T,M,1),La.call(r,M,1);return r}function $m(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Er(h)?La.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+$a(wm()*(o-r+1))}function t0(r,o,a,l){for(var h=-1,_=At(Ua((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=$a(o/2),o&&(r+=r);while(o);return a}function Ee(r,o){return Ud(bb(r,o,dn),r+"")}function n0(r){return Pm(fo(r))}function r0(r,o){var a=fo(r);return ic(a,Fi(o,0,a.length))}function ys(r,o,a,l){if(!bt(r))return r;o=Zr(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=mr(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Er(o[h+1])?[]:{})}ms(T,M,V),T=T[M]}return r}var Wm=Wa?function(r,o){return Wa.set(r,o),r}:dn,i0=Ba?function(r,o){return Ba(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function o0(r){return ic(fo(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:b0(r);if(V)return Fa(V);S=!1,h=ls,M=new Di}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=Zr(o,r),r=_b(r,o),r==null||delete r[mr(On(o))]}function Hm(r,o,a,l){return ys(r,o,a(Ei(r,o)),l)}function Ja(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var Qm=QR||function(r){return qt.clearTimeout(r)};function Km(r,o){if(o)return r.slice();var a=r.length,l=mm?mm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new qa(o).set(new qa(r)),o}function c0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function u0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function l0(r){return ps?Ye(ps.call(r)):{}}function Jm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Xm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Ym(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function ib(r){return Fr(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&nc(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Di:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(v,`{ /* [wrapped with `+o+`] */ -`)}function D0(r){return Pe(r)||Ni(r)||!!(mm&&r&&r[mm])}function Ir(r,o){var a=typeof r;return o=o??pe,!!o&&(a=="number"||a!="symbol"&&Zi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=xe)return arguments[0]}else o=0;return r.apply(t,arguments)}}function sc(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,kb(r,a)});function Tb(r){var o=b(r);return o.__chain__=!0,o}function UF(r,o){return o(r),r}function ac(r,o){return o(r)}var $F=Er(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Ir(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:ac,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function WF(){return Tb(this)}function jF(){return new An(this.value(),this.__chain__)}function zF(){this.__values__===t&&(this.__values__=$b(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function HF(){return this}function VF(r){for(var o,a=this;a instanceof Va;){var l=yb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function GF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:ac,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function QF(){return jm(this.__wrapped__,this.__actions__)}var KF=Za(function(r,o,a){Ke.call(r,a)?++r[a]:Dr(r,a,1)});function JF(r,o,a){var l=Pe(r)?nm:UD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function XF(r,o){var a=Pe(r)?Gr:km;return a(r,le(o,3))}var YF=eb(wb),ZF=eb(Sb);function eE(r,o){return Ut(cc(r,o),1)}function tE(r,o){return Ut(cc(r,o),De)}function nE(r,o,a){return a=a===t?1:ke(a),Ut(cc(r,o),a)}function Rb(r,o){var a=Pe(r)?In:Yr;return a(r,le(o,3))}function Db(r,o){var a=Pe(r)?wR:Cm;return a(r,le(o,3))}var rE=Za(function(r,o,a){Ke.call(r,a)?r[a].push(o):Dr(r,a,[o])});function iE(r,o,a,l){r=un(r)?r:ho(r),a=a&&!l?ke(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),hc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&to(r,o,a)>-1}var oE=Ee(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Yr(r,function(S){_[++l]=h?wn(o,S,a):_s(S,o,a)}),_}),sE=Za(function(r,o,a){Dr(r,a,o)});function cc(r,o){var a=Pe(r)?ht:Im;return a(r,le(o,3))}function aE(r,o,a,l){return r==null?[]:(Pe(o)||(o=o==null?[]:[o]),a=l?t:a,Pe(a)||(a=a==null?[]:[a]),qm(r,o,a))}var cE=Za(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function uE(r,o,a){var l=Pe(r)?ed:sm,h=arguments.length<3;return l(r,le(o,4),a,h,Yr)}function lE(r,o,a){var l=Pe(r)?SR:sm,h=arguments.length<3;return l(r,le(o,4),a,h,Cm)}function dE(r,o){var a=Pe(r)?Gr:km;return a(r,dc(le(o,3)))}function fE(r){var o=Pe(r)?wm:i0;return o(r)}function hE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=ke(o);var l=Pe(r)?ND:o0;return l(r,o)}function gE(r){var o=Pe(r)?qD:a0;return o(r)}function pE(r){if(r==null)return 0;if(un(r))return hc(r)?ro(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function mE(r,o,a){var l=Pe(r)?td:c0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var bE=Ee(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),qm(r,Ut(o,1),[])}),uc=XR||function(){return qt.Date.now()};function _E(r,o){if(typeof o!="function")throw new Mn(s);return r=ke(r),function(){if(--r<1)return o.apply(this,arguments)}}function Fb(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Fr(r,te,t,t,t,t,o)}function Eb(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=ke(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=Ee(function(r,o,a){var l=A;if(a.length){var h=Kr(a,lo(jd));l|=P}return Fr(r,l,o,a,h)}),Ib=Ee(function(r,o,a){var l=A|L;if(a.length){var h=Kr(a,lo(Ib));l|=P}return Fr(o,l,r,a,h)});function Mb(r,o,a){o=a?t:o;var l=Fr(r,K,t,t,t,t,t,o);return l.placeholder=Mb.placeholder,l}function Ab(r,o,a){o=a?t:o;var l=Fr(r,F,t,t,t,t,t,o);return l.placeholder=Ab.placeholder,l}function Nb(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Nr=h;return l=h=t,V=Ct,S=r.apply(Nr,Yn),S}function de(Ct){return V=Ct,T=xs(Me,o),Q?ae(Ct):S}function Re(Ct){var Yn=Ct-M,Nr=Ct-V,e_=o-Yn;return J?zt(e_,_-Nr):e_}function fe(Ct){var Yn=Ct-M,Nr=Ct-V;return M===t||Yn>=o||Yn<0||J&&Nr>=_}function Me(){var Ct=uc();if(fe(Ct))return qe(Ct);T=xs(Me,Re(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&Hm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(uc())}function kn(){var Ct=uc(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return Hm(T),T=xs(Me,o),ae(M)}return T===t&&(T=xs(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var vE=Ee(function(r,o){return Pm(r,1,o)}),yE=Ee(function(r,o,a){return Pm(r,Ln(o)||0,a)});function wE(r){return Fr(r,Be)}function lc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(lc.Cache||Rr),a}lc.Cache=Rr;function dc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function SE(r){return Eb(2,r)}var xE=u0(function(r,o){o=o.length==1&&Pe(o[0])?ht(o[0],Sn(le())):ht(Ut(o,1),Sn(le()));var a=o.length;return Ee(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=Ee(function(r,o){var a=Kr(o,lo(zd));return Fr(r,P,t,o,a)}),qb=Ee(function(r,o){var a=Kr(o,lo(qb));return Fr(r,U,t,o,a)}),PE=Er(function(r,o){return Fr(r,ve,t,t,t,o)});function CE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:ke(o),Ee(r,o)}function kE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(ke(o),0),Ee(function(a){var l=a[o],h=ti(a,0,o);return l&&Qr(h,l),wn(r,this,h)})}function TE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Nb(r,o,{leading:l,maxWait:o,trailing:h})}function RE(r){return Fb(r,1)}function DE(r,o){return zd(Rd(o),r)}function FE(){if(!arguments.length)return[];var r=arguments[0];return Pe(r)?r:[r]}function EE(r){return Nn(r,x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function ME(r){return Nn(r,m|x)}function AE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function NE(r,o){return o==null||xm(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var qE=rc(md),OE=rc(function(r,o){return r>=o}),Ni=Dm(function(){return arguments}())?Dm:function(r){return yt(r)&&Ke.call(r,"callee")&&!pm.call(r,"callee")},Pe=$.isArray,LE=Jp?Sn(Jp):VD;function un(r){return r!=null&&fc(r.length)&&!Mr(r)}function Pt(r){return yt(r)&&un(r)}function BE(r){return r===!0||r===!1||yt(r)&&Zt(r)==dr}var ni=ZR||tf,UE=Xp?Sn(Xp):GD;function $E(r){return yt(r)&&r.nodeType===1&&!Ps(r)}function WE(r){if(r==null)return!0;if(un(r)&&(Pe(r)||typeof r=="string"||typeof r.splice=="function"||ni(r)||fo(r)||Ni(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(Ss(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function jE(r,o){return vs(r,o)}function zE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?vs(r,o,t,a):!!l}function Hd(r){if(!yt(r))return!1;var o=Zt(r);return o==Sr||o==Ki||typeof r.message=="string"&&typeof r.name=="string"&&!Ps(r)}function HE(r){return typeof r=="number"&&bm(r)}function Mr(r){if(!bt(r))return!1;var o=Zt(r);return o==xr||o==Pr||o==Pi||o==Hr}function Ob(r){return typeof r=="number"&&r==ke(r)}function fc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=pe}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function yt(r){return r!=null&&typeof r=="object"}var Lb=Yp?Sn(Yp):KD;function VE(r,o){return r===o||_d(r,o,Nd(o))}function GE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function QE(r){return Bb(r)&&r!=+r}function KE(r){if(I0(r))throw new ye(i);return Fm(r)}function JE(r){return r===null}function XE(r){return r==null}function Bb(r){return typeof r=="number"||yt(r)&&Zt(r)==hr}function Ps(r){if(!yt(r)||Zt(r)!=Bt)return!1;var o=Ba(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Na.call(a)==GR}var Vd=Zp?Sn(Zp):JD;function YE(r){return Ob(r)&&r>=-pe&&r<=pe}var Ub=em?Sn(em):XD;function hc(r){return typeof r=="string"||!Pe(r)&&yt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||yt(r)&&Zt(r)==Cr}var fo=tm?Sn(tm):YD;function ZE(r){return r===t}function eI(r){return yt(r)&&Ht(r)==jt}function tI(r){return yt(r)&&Zt(r)==ki}var nI=rc(yd),rI=rc(function(r,o){return r<=o});function $b(r){if(!r)return[];if(un(r))return hc(r)?Kn(r):cn(r);if(ds&&r[ds])return NR(r[ds]());var o=Ht(r),a=o==mt?ad:o==xt?Ia:ho;return a(r)}function Ar(r){if(!r)return r===0?r:0;if(r=Ln(r),r===De||r===-De){var o=r<0?-1:1;return o*me}return r===r?r:0}function ke(r){var o=Ar(r),a=o%1;return o===o?a?o-a:o:0}function Wb(r){return r?Ei(ke(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=am(r);var a=Qn.test(r);return a||Vr.test(r)?_R(r.slice(2),a?2:8):yn.test(r)?St:+r}function jb(r){return mr(r,ln(r))}function iI(r){return r?Ei(ke(r),-pe,pe):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var oI=co(function(r,o){if(Ss(o)||un(o)){mr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&ms(r,a,o[a])}),zb=co(function(r,o){mr(o,ln(o),r)}),gc=co(function(r,o,a,l){mr(o,ln(o),r,l)}),sI=co(function(r,o,a,l){mr(o,Ot(o),r,l)}),aI=Er(hd);function cI(r,o){var a=ao(r);return o==null?a:Sm(a,o)}var uI=Ee(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),mr(r,Md(r),a),l&&(a=Nn(a,m|v|x,y0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function TI(r,o){return Vb(r,dc(le(o)))}var RI=Er(function(r,o){return r==null?{}:t0(r,o)});function Vb(r,o){if(r==null)return{};var a=ht(Md(r),function(l){return[l]});return o=le(o),Om(r,a,function(l,h){return o(l,h[0])})}function DI(r,o,a){o=ei(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=_m();return zt(r+h*(o-r+bR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var UI=uo(function(r,o,a){return o=o.toLowerCase(),r+(a?Kb(o):o)});function Kb(r){return Kd(Ve(r).toLowerCase())}function Jb(r){return r=Ve(r),r&&r.replace(ka,FR).replace(aR,"")}function $I(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Ei(ke(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function WI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(at,ER):r}function jI(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var zI=uo(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),HI=uo(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),VI=Zm("toLowerCase");function GI(r,o,a){r=Ve(r),o=ke(o);var l=o?ro(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return nc(ja(h),a)+r+nc(Wa(h),a)}function QI(r,o,a){r=Ve(r),o=ke(o);var l=o?ro(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&no(r))?ti(Kn(r),0,a):r.split(o,a)):[]}var tM=uo(function(r,o,a){return r+(a?" ":"")+Kd(o)});function nM(r,o,a){return r=Ve(r),a=a==null?0:Ei(ke(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function rM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=gc({},o,l,sb);var h=gc({},o.imports,l.imports,sb),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ta,J="__p += '",ne=cd((o.escape||Ta).source+"|"+Q.source+"|"+(Q===us?Xe:Ta).source+"|"+(o.evaluate||Ta).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++fR+"]")+` -`;r.replace(ne,function(fe,Me,qe,Cn,tn,kn){return qe||(qe=Cn),J+=r.slice(V,kn).replace(jT,IR),Me&&(T=!0,J+=`' + +`)}function T0(r){return Pe(r)||Ai(r)||!!(vm&&r&&r[vm])}function Er(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Yi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=xe)return arguments[0]}else o=0;return r.apply(t,arguments)}}function ic(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,Db(r,a)});function Fb(r){var o=b(r);return o.__chain__=!0,o}function LF(r,o){return o(r),r}function oc(r,o){return o(r)}var BF=Fr(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Er(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:oc,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function UF(){return Fb(this)}function $F(){return new An(this.value(),this.__chain__)}function WF(){this.__values__===t&&(this.__values__=zb(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function jF(){return this}function zF(r){for(var o,a=this;a instanceof za;){var l=xb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function HF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:oc,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function VF(){return Vm(this.__wrapped__,this.__actions__)}var GF=Xa(function(r,o,a){Ke.call(r,a)?++r[a]:Rr(r,a,1)});function QF(r,o,a){var l=Pe(r)?om:LD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function KF(r,o){var a=Pe(r)?Vr:Dm;return a(r,le(o,3))}var JF=rb(Pb),XF=rb(Cb);function YF(r,o){return Ut(sc(r,o),1)}function ZF(r,o){return Ut(sc(r,o),De)}function eE(r,o,a){return a=a===t?1:Te(a),Ut(sc(r,o),a)}function Eb(r,o){var a=Pe(r)?In:Xr;return a(r,le(o,3))}function Ib(r,o){var a=Pe(r)?vR:Rm;return a(r,le(o,3))}var tE=Xa(function(r,o,a){Ke.call(r,a)?r[a].push(o):Rr(r,a,[o])});function nE(r,o,a,l){r=un(r)?r:fo(r),a=a&&!l?Te(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),dc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&eo(r,o,a)>-1}var rE=Ee(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Xr(r,function(S){_[++l]=h?wn(o,S,a):_s(S,o,a)}),_}),iE=Xa(function(r,o,a){Rr(r,a,o)});function sc(r,o){var a=Pe(r)?gt:Nm;return a(r,le(o,3))}function oE(r,o,a,l){return r==null?[]:(Pe(o)||(o=o==null?[]:[o]),a=l?t:a,Pe(a)||(a=a==null?[]:[a]),Bm(r,o,a))}var sE=Xa(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function aE(r,o,a){var l=Pe(r)?ed:um,h=arguments.length<3;return l(r,le(o,4),a,h,Xr)}function cE(r,o,a){var l=Pe(r)?yR:um,h=arguments.length<3;return l(r,le(o,4),a,h,Rm)}function uE(r,o){var a=Pe(r)?Vr:Dm;return a(r,uc(le(o,3)))}function lE(r){var o=Pe(r)?Pm:n0;return o(r)}function dE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=Te(o);var l=Pe(r)?MD:r0;return l(r,o)}function fE(r){var o=Pe(r)?AD:o0;return o(r)}function hE(r){if(r==null)return 0;if(un(r))return dc(r)?no(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function gE(r,o,a){var l=Pe(r)?td:s0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var pE=Ee(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),Bm(r,Ut(o,1),[])}),ac=KR||function(){return qt.Date.now()};function mE(r,o){if(typeof o!="function")throw new Mn(s);return r=Te(r),function(){if(--r<1)return o.apply(this,arguments)}}function Mb(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Dr(r,te,t,t,t,t,o)}function Ab(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=Te(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=Ee(function(r,o,a){var l=A;if(a.length){var h=Qr(a,uo(jd));l|=P}return Dr(r,l,o,a,h)}),Nb=Ee(function(r,o,a){var l=A|L;if(a.length){var h=Qr(a,uo(Nb));l|=P}return Dr(o,l,r,a,h)});function qb(r,o,a){o=a?t:o;var l=Dr(r,K,t,t,t,t,t,o);return l.placeholder=qb.placeholder,l}function Ob(r,o,a){o=a?t:o;var l=Dr(r,F,t,t,t,t,t,o);return l.placeholder=Ob.placeholder,l}function Lb(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Ar=h;return l=h=t,V=Ct,S=r.apply(Ar,Yn),S}function de(Ct){return V=Ct,T=xs(Me,o),Q?ae(Ct):S}function Re(Ct){var Yn=Ct-M,Ar=Ct-V,r_=o-Yn;return J?zt(r_,_-Ar):r_}function fe(Ct){var Yn=Ct-M,Ar=Ct-V;return M===t||Yn>=o||Yn<0||J&&Ar>=_}function Me(){var Ct=ac();if(fe(Ct))return qe(Ct);T=xs(Me,Re(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&Qm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(ac())}function kn(){var Ct=ac(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return Qm(T),T=xs(Me,o),ae(M)}return T===t&&(T=xs(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var bE=Ee(function(r,o){return Tm(r,1,o)}),_E=Ee(function(r,o,a){return Tm(r,Ln(o)||0,a)});function vE(r){return Dr(r,Be)}function cc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(cc.Cache||Tr),a}cc.Cache=Tr;function uc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function yE(r){return Ab(2,r)}var wE=a0(function(r,o){o=o.length==1&&Pe(o[0])?gt(o[0],Sn(le())):gt(Ut(o,1),Sn(le()));var a=o.length;return Ee(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=Ee(function(r,o){var a=Qr(o,uo(zd));return Dr(r,P,t,o,a)}),Bb=Ee(function(r,o){var a=Qr(o,uo(Bb));return Dr(r,U,t,o,a)}),SE=Fr(function(r,o){return Dr(r,ve,t,t,t,o)});function xE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:Te(o),Ee(r,o)}function PE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(Te(o),0),Ee(function(a){var l=a[o],h=ei(a,0,o);return l&&Gr(h,l),wn(r,this,h)})}function CE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Lb(r,o,{leading:l,maxWait:o,trailing:h})}function kE(r){return Mb(r,1)}function TE(r,o){return zd(Rd(o),r)}function RE(){if(!arguments.length)return[];var r=arguments[0];return Pe(r)?r:[r]}function DE(r){return Nn(r,x)}function FE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function EE(r){return Nn(r,m|x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function ME(r,o){return o==null||km(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var AE=tc(md),NE=tc(function(r,o){return r>=o}),Ai=Im(function(){return arguments}())?Im:function(r){return yt(r)&&Ke.call(r,"callee")&&!_m.call(r,"callee")},Pe=$.isArray,qE=Zp?Sn(Zp):zD;function un(r){return r!=null&&lc(r.length)&&!Ir(r)}function Pt(r){return yt(r)&&un(r)}function OE(r){return r===!0||r===!1||yt(r)&&Zt(r)==lr}var ti=XR||tf,LE=em?Sn(em):HD;function BE(r){return yt(r)&&r.nodeType===1&&!Ps(r)}function UE(r){if(r==null)return!0;if(un(r)&&(Pe(r)||typeof r=="string"||typeof r.splice=="function"||ti(r)||lo(r)||Ai(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(Ss(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function $E(r,o){return vs(r,o)}function WE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?vs(r,o,t,a):!!l}function Hd(r){if(!yt(r))return!1;var o=Zt(r);return o==wr||o==Qi||typeof r.message=="string"&&typeof r.name=="string"&&!Ps(r)}function jE(r){return typeof r=="number"&&ym(r)}function Ir(r){if(!bt(r))return!1;var o=Zt(r);return o==Sr||o==xr||o==xi||o==zr}function Ub(r){return typeof r=="number"&&r==Te(r)}function lc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function yt(r){return r!=null&&typeof r=="object"}var $b=tm?Sn(tm):GD;function zE(r,o){return r===o||_d(r,o,Nd(o))}function HE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function VE(r){return Wb(r)&&r!=+r}function GE(r){if(F0(r))throw new ye(i);return Mm(r)}function QE(r){return r===null}function KE(r){return r==null}function Wb(r){return typeof r=="number"||yt(r)&&Zt(r)==fr}function Ps(r){if(!yt(r)||Zt(r)!=Bt)return!1;var o=Oa(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Ma.call(a)==HR}var Vd=nm?Sn(nm):QD;function JE(r){return Ub(r)&&r>=-ge&&r<=ge}var jb=rm?Sn(rm):KD;function dc(r){return typeof r=="string"||!Pe(r)&&yt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||yt(r)&&Zt(r)==Pr}var lo=im?Sn(im):JD;function XE(r){return r===t}function YE(r){return yt(r)&&Ht(r)==jt}function ZE(r){return yt(r)&&Zt(r)==Ci}var eI=tc(yd),tI=tc(function(r,o){return r<=o});function zb(r){if(!r)return[];if(un(r))return dc(r)?Kn(r):cn(r);if(ds&&r[ds])return MR(r[ds]());var o=Ht(r),a=o==mt?ad:o==xt?Fa:fo;return a(r)}function Mr(r){if(!r)return r===0?r:0;if(r=Ln(r),r===De||r===-De){var o=r<0?-1:1;return o*pe}return r===r?r:0}function Te(r){var o=Mr(r),a=o%1;return o===o?a?o-a:o:0}function Hb(r){return r?Fi(Te(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=lm(r);var a=Qn.test(r);return a||Hr.test(r)?mR(r.slice(2),a?2:8):yn.test(r)?St:+r}function Vb(r){return pr(r,ln(r))}function nI(r){return r?Fi(Te(r),-ge,ge):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var rI=ao(function(r,o){if(Ss(o)||un(o)){pr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&ms(r,a,o[a])}),Gb=ao(function(r,o){pr(o,ln(o),r)}),fc=ao(function(r,o,a,l){pr(o,ln(o),r,l)}),iI=ao(function(r,o,a,l){pr(o,Ot(o),r,l)}),oI=Fr(hd);function sI(r,o){var a=so(r);return o==null?a:Cm(a,o)}var aI=Ee(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),pr(r,Md(r),a),l&&(a=Nn(a,m|y|x,_0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function CI(r,o){return Kb(r,uc(le(o)))}var kI=Fr(function(r,o){return r==null?{}:ZD(r,o)});function Kb(r,o){if(r==null)return{};var a=gt(Md(r),function(l){return[l]});return o=le(o),Um(r,a,function(l,h){return o(l,h[0])})}function TI(r,o,a){o=Zr(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=wm();return zt(r+h*(o-r+pR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var LI=co(function(r,o,a){return o=o.toLowerCase(),r+(a?Yb(o):o)});function Yb(r){return Kd(Ve(r).toLowerCase())}function Zb(r){return r=Ve(r),r&&r.replace(Pa,RR).replace(oR,"")}function BI(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Fi(Te(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function UI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(ct,DR):r}function $I(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var WI=co(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),jI=co(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),zI=nb("toLowerCase");function HI(r,o,a){r=Ve(r),o=Te(o);var l=o?no(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return ec($a(h),a)+r+ec(Ua(h),a)}function VI(r,o,a){r=Ve(r),o=Te(o);var l=o?no(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&to(r))?ei(Kn(r),0,a):r.split(o,a)):[]}var ZI=co(function(r,o,a){return r+(a?" ":"")+Kd(o)});function eM(r,o,a){return r=Ve(r),a=a==null?0:Fi(Te(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function tM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=fc({},o,l,ub);var h=fc({},o.imports,l.imports,ub),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ca,J="__p += '",ne=cd((o.escape||Ca).source+"|"+Q.source+"|"+(Q===us?Xe:Ca).source+"|"+(o.evaluate||Ca).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++lR+"]")+` +`;r.replace(ne,function(fe,Me,qe,Cn,tn,kn){return qe||(qe=Cn),J+=r.slice(V,kn).replace($T,FR),Me&&(T=!0,J+=`' + __e(`+Me+`) + '`),tn&&(M=!0,J+=`'; `+tn+`; @@ -52,40 +52,40 @@ __p += '`),qe&&(J+=`' + `;var de=Ke.call(o,"variable")&&o.variable;if(!de)J=`with (obj) { `+J+` } -`;else if(be.test(de))throw new ye(c);J=(M?J.replace(tt,""):J).replace(Fe,"$1").replace(Qe,"$1;"),J="function("+(de||"obj")+`) { +`;else if(be.test(de))throw new ye(c);J=(M?J.replace(et,""):J).replace(Fe,"$1").replace(Qe,"$1;"),J="function("+(de||"obj")+`) { `+(de?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(T?", __e = _.escape":"")+(M?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+J+`return __p -}`;var Re=Yb(function(){return ze(_,ae+"return "+J).apply(t,S)});if(Re.source=J,Hd(Re))throw Re;return Re}function iM(r){return Ve(r).toLowerCase()}function oM(r){return Ve(r).toUpperCase()}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return am(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=cm(l,h),S=um(l,h)+1;return ti(l,_,S).join("")}function aM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,dm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=um(l,Kn(o))+1;return ti(l,0,h).join("")}function cM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=cm(l,Kn(o));return ti(l,h).join("")}function uM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?ke(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(no(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-ro(l);if(T<1)return l;var M=S?ti(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function lM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,BR):r}var dM=uo(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=Zm("toUpperCase");function Xb(r,o,a){return r=Ve(r),o=a?t:o,o===t?AR(r)?WR(r):CR(r):r.match(o)||[]}var Yb=Ee(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),fM=Er(function(r,o){return In(o,function(a){a=br(a),Dr(r,a,jd(r[a],r))}),r});function hM(r){var o=r==null?0:r.length,a=le();return r=o?ht(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Ee(function(l){for(var h=-1;++hpe)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=ke(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},pr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||Pe(S),J=function(Me){var qe=h.apply(b,Qr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,Re=M&&!ae;if(!_&&Q){S=Re?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ac,args:[J],thisArg:t}),new An(fe,ne)}return de&&Re?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ma[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(Pe(_)?_:[],h)}return this[a](function(S){return o.apply(Pe(S)?S:[],h)})}}),pr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(so,l)||(so[l]=[]),so[l].push({name:o,func:a})}}),so[ec(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=lD,Ae.prototype.reverse=dD,Ae.prototype.value=fD,b.prototype.at=$F,b.prototype.chain=WF,b.prototype.commit=jF,b.prototype.next=zF,b.prototype.plant=VF,b.prototype.reverse=GF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=QF,b.prototype.first=b.prototype.head,ds&&(b.prototype[ds]=HF),b},Jr=jR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Jr,define(function(){return Jr})):Ti?((Ti.exports=Jr)._=Jr,Xl._=Jr):qt._=Jr}).call(Vo)});var Gk=I((p3,rj)=>{rj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var hT=I((mG,fT)=>{"use strict";function iT(t){return Array.isArray(t)?t:[t]}var cT="",oT=" ",Gg="\\",mj=/^\s+$/,bj=/(?:[^\\]|^)\\$/,_j=/^\\!/,vj=/^\\#/,yj=/\r?\n/g,wj=/^\.*\/|^\.+$/,Qg="/",uT="node-ignore";typeof Symbol<"u"&&(uT=Symbol.for("node-ignore"));var sT=uT,Sj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),xj=/([0-z])-([0-z])/g,lT=()=>!1,Pj=t=>t.replace(xj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:cT),Cj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},kj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?oT:cT],[/\\\s/g,()=>oT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Gg],[/\\\\/g,()=>Gg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Gg?`\\[${n}${Cj(i)}${s}`:s==="]"&&i.length%2===0?`[${Pj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],aT=Object.create(null),Tj=(t,e)=>{let n=aT[t];return n||(n=kj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),aT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Xg=t=>typeof t=="string",Rj=t=>t&&Xg(t)&&!mj.test(t)&&!bj.test(t)&&t.indexOf("#")!==0,Dj=t=>t.split(yj),Kg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Fj=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(_j,"!").replace(vj,"#");let s=Tj(t,e);return new Kg(n,t,i,s)},Ej=(t,e)=>{throw new e(t)},Ur=(t,e,n)=>Xg(t)?t?Ur.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),dT=t=>wj.test(t);Ur.isNotRelative=dT;Ur.convert=t=>t;var Jg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){Sj(this,sT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[sT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Rj(e)){let n=Fj(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,iT(Xg(e)?Dj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Ur.convert(e);return Ur(c,e,this._allowRelativePaths?lT:Ej),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Qg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Qg)+Qg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return iT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Jg(t),Ij=t=>Ur(t&&Ur.convert(t),t,lT);hl.isPathValid=Ij;hl.default=hl;fT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Ur.convert=t;let e=/^[a-z]:\//i;Ur.isNotRelative=n=>e.test(n)||dT(n)}});var r2={};nA(r2,{API_ENDPOINT:()=>Zj});module.exports=rA(r2);var zl=gt(require("fs")),BT=gt(require("os")),Sa=gt(require("path"));var mc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=i_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,v=n_(i.text,!1,c);if(f-d===v.length)for(let D=0,N=v.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&r_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},qi;(function(t){function e(s,c,u,d){return new mc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof mc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(iA),(v,x)=>{let D=v.range.start.line-x.range.start.line;return D===0?v.range.start.character-x.range.start.character:D}),f=0,m=[];for(let v of d){let x=s.offsetAt(v.range.start);if(xf&&m.push(u.substring(f,x)),v.newText.length&&m.push(v.newText),f=s.offsetAt(v.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(qi||(qi={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function iA(t){let e=i_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Se=gt(TS());var RS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function yq(t){return typeof t=="string"&&RS.test(t)}var rg=yq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function DS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var FS=require("crypto"),Au=new Uint8Array(256),Mu=Au.length;function ig(){return Mu>Au.length-16&&((0,FS.randomFillSync)(Au),Mu=0),Au.slice(Mu,Mu+=16)}var ES=require("crypto"),og={randomUUID:ES.randomUUID};function wq(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return DS(i)}var Us=wq;var Nu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var qu=class extends Error{constructor(){super("No models available")}},pi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},vt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(Sq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?xq.has(n.status):!1}};function Sq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var xq=new Set([3,1]);function Pq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Te(t,e=!1){if(t instanceof Error){if(e){let n=Pq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Vk=gt(Fk());var Ju=gt(require("fs")),Zs=gt(Ik()),Ak=gt(require("os")),ea=gt(require("path")),KW=process.env.TEST_TMPDIR?ea.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ea.default.join(Ak.default.homedir(),".local","state"),Mk=ea.default.join(KW,"augment","augment-server.log"),Ys;function JW(){if(Ys)return Ys;let t=ea.default.dirname(Mk);Ju.default.existsSync(t)||Ju.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"warn").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?Zs.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "warn"`,Zs.default.setLevel("warn")),Zs.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Ju.default.appendFileSync(Mk,`${c} [${i.toUpperCase()}] ${s} -`)}},Ys=Zs.default.getLogger("server"),n&&Ys.warn(n),Ys}function _e(t){let e=JW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var na=gt(Go()),Qo=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,na.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: +}`;var Re=t_(function(){return ze(_,ae+"return "+J).apply(t,S)});if(Re.source=J,Hd(Re))throw Re;return Re}function nM(r){return Ve(r).toLowerCase()}function rM(r){return Ve(r).toUpperCase()}function iM(r,o,a){if(r=Ve(r),r&&(a||o===t))return lm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=dm(l,h),S=fm(l,h)+1;return ei(l,_,S).join("")}function oM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,gm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=fm(l,Kn(o))+1;return ei(l,0,h).join("")}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=dm(l,Kn(o));return ei(l,h).join("")}function aM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Te(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(to(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-no(l);if(T<1)return l;var M=S?ei(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function cM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,OR):r}var uM=co(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=nb("toUpperCase");function e_(r,o,a){return r=Ve(r),o=a?t:o,o===t?IR(r)?UR(r):xR(r):r.match(o)||[]}var t_=Ee(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),lM=Fr(function(r,o){return In(o,function(a){a=mr(a),Rr(r,a,jd(r[a],r))}),r});function dM(r){var o=r==null?0:r.length,a=le();return r=o?gt(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Ee(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Te(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},gr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||Pe(S),J=function(Me){var qe=h.apply(b,Gr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,Re=M&&!ae;if(!_&&Q){S=Re?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:oc,args:[J],thisArg:t}),new An(fe,ne)}return de&&Re?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ea[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(Pe(_)?_:[],h)}return this[a](function(S){return o.apply(Pe(S)?S:[],h)})}}),gr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(oo,l)||(oo[l]=[]),oo[l].push({name:o,func:a})}}),oo[Ya(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=cD,Ae.prototype.reverse=uD,Ae.prototype.value=lD,b.prototype.at=BF,b.prototype.chain=UF,b.prototype.commit=$F,b.prototype.next=WF,b.prototype.plant=zF,b.prototype.reverse=HF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=VF,b.prototype.first=b.prototype.head,ds&&(b.prototype[ds]=jF),b},Kr=$R();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Kr,define(function(){return Kr})):ki?((ki.exports=Kr)._=Kr,Xl._=Kr):qt._=Kr}).call(Ho)});var Kk=I((f3,tj)=>{tj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var pT=I((hG,gT)=>{"use strict";function sT(t){return Array.isArray(t)?t:[t]}var lT="",aT=" ",Jg="\\",gj=/^\s+$/,pj=/(?:[^\\]|^)\\$/,mj=/^\\!/,bj=/^\\#/,_j=/\r?\n/g,vj=/^\.*\/|^\.+$/,Xg="/",dT="node-ignore";typeof Symbol<"u"&&(dT=Symbol.for("node-ignore"));var cT=dT,yj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),wj=/([0-z])-([0-z])/g,fT=()=>!1,Sj=t=>t.replace(wj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:lT),xj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Pj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?aT:lT],[/\\\s/g,()=>aT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Jg],[/\\\\/g,()=>Jg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Jg?`\\[${n}${xj(i)}${s}`:s==="]"&&i.length%2===0?`[${Sj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],uT=Object.create(null),Cj=(t,e)=>{let n=uT[t];return n||(n=Pj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),uT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},ep=t=>typeof t=="string",kj=t=>t&&ep(t)&&!gj.test(t)&&!pj.test(t)&&t.indexOf("#")!==0,Tj=t=>t.split(_j),Yg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Rj=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(mj,"!").replace(bj,"#");let s=Cj(t,e);return new Yg(n,t,i,s)},Dj=(t,e)=>{throw new e(t)},Br=(t,e,n)=>ep(t)?t?Br.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),hT=t=>vj.test(t);Br.isNotRelative=hT;Br.convert=t=>t;var Zg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){yj(this,cT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[cT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(kj(e)){let n=Rj(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,sT(ep(e)?Tj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Br.convert(e);return Br(c,e,this._allowRelativePaths?fT:Dj),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Xg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Xg)+Xg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return sT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Zg(t),Fj=t=>Br(t&&Br.convert(t),t,fT);hl.isPathValid=Fj;hl.default=hl;gT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Br.convert=t;let e=/^[a-z]:\//i;Br.isNotRelative=n=>e.test(n)||hT(n)}});var Zj={};module.exports=eA(Zj);var UT=nt(require("os")),zl=nt(require("path"));var hc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=a_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,y=o_(i.text,!1,c);if(f-d===y.length)for(let D=0,N=y.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&s_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},Ni;(function(t){function e(s,c,u,d){return new hc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof hc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=rf(c.map(tA),(y,x)=>{let D=y.range.start.line-x.range.start.line;return D===0?y.range.start.character-x.range.start.character:D}),f=0,m=[];for(let y of d){let x=s.offsetAt(y.range.start);if(xf&&m.push(u.substring(f,x)),y.newText.length&&m.push(y.newText),f=s.offsetAt(y.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(Ni||(Ni={}));function rf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);rf(i,e),rf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function tA(t){let e=a_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Se=nt(FS());var ES=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function bq(t){return typeof t=="string"&&ES.test(t)}var ig=bq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function IS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var MS=require("crypto"),Eu=new Uint8Array(256),Fu=Eu.length;function og(){return Fu>Eu.length-16&&((0,MS.randomFillSync)(Eu),Fu=0),Eu.slice(Fu,Fu+=16)}var AS=require("crypto"),sg={randomUUID:AS.randomUUID};function _q(t,e,n){if(sg.randomUUID&&!e&&!t)return sg.randomUUID();t=t||{};let i=t.random||(t.rng||og)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return IS(i)}var Us=_q;var Iu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var Mu=class extends Error{constructor(){super("No models available")}},gi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},vt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(vq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?yq.has(n.status):!1}};function vq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var yq=new Set([3,1]);function wq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function ke(t,e=!1){if(t instanceof Error){if(e){let n=wq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Qk=nt(Mk());var Gu=nt(require("fs")),Zs=nt(Fg()),qk=nt(require("os")),ea=nt(require("path")),VW=process.env.TEST_TMPDIR?ea.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ea.default.join(qk.default.homedir(),".local","state"),Nk=ea.default.join(VW,"augment","augment-server.log"),Ys;function GW(){if(Ys)return Ys;let t=ea.default.dirname(Nk);Gu.default.existsSync(t)||Gu.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"warn").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?Zs.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "warn"`,Zs.default.setLevel("warn")),Zs.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Gu.default.appendFileSync(Nk,`${c} [${i.toUpperCase()}] ${s} +`)}},Ys=Zs.default.getLogger("server"),n&&Ys.warn(n),Ys}function _e(t){let e=GW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var na=nt(Vo()),Go=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,na.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: ${this.diff(this.value,e).map(n=>` - ${n}`).join(` -`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,na.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,na.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var Wk=require("events"),Dn=gt(require("fs")),jk=gt(ng());var Nk;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var v,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else v===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",v=!1,x=arguments.length-1;x>=-1&&!v;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,v=D.charCodeAt(0)===47)}return m=u(m,!v),v?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,v=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&v&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=v:f+="/"+v)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var v=1;vL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(v+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(v+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=v+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),v=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?v?"/":".":v&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var v,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(v=f.length-1;v>=0;--v){var B=f.charCodeAt(v);if(B===47){if(!N){x=v+1;break}}else L===-1&&(N=!1,L=v+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=v):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(v=f.length-1;v>=0;--v)if(f.charCodeAt(v)===47){if(!N){x=v+1;break}}else D===-1&&(N=!1,D=v+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,v=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){v=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===v+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,v){var x=v.dir||v.root,D=v.base||(v.name||"")+(v.ext||"");return x?x===v.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var v,x=f.charCodeAt(0),D=x===47;D?(m.root="/",v=1):v=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=v;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>xe}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",v="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,De,pe,me=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,me),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==v&&(We=v+We):We=v}return We}(this.scheme,re||m),this.query=De||m,this.fragment=pe||m,f(this,me))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:De,query:pe,fragment:me}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),De===void 0?De=this.path:De===null&&(De=m),pe===void 0?pe=this.query:pe===null&&(pe=m),me===void 0?me=this.fragment:me===null&&(me=m),se===this.scheme&&re===this.authority&&De===this.path&&pe===this.query&&me===this.fragment?this:new A(se,re,De,pe,me)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,v)),z[0]===v&&z[1]===v){let re=z.indexOf(v,2);re===-1?(se=z.substring(2),z=v):(se=z.substring(2,re),z=z.substring(re)||v)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,De=-1;for(let pe=0;pe=97&&me<=122||me>=65&&me<=90||me>=48&&me<=57||me===45||me===46||me===95||me===126||z&&me===47||se&&me===91||se&&me===93||se&&me===58)De!==-1&&(re+=encodeURIComponent(X.substring(De,pe)),De=-1),re!==void 0&&(re+=X.charAt(pe));else{re===void 0&&(re=X.substr(0,pe));let St=L[me];St!==void 0?(De!==-1&&(re+=encodeURIComponent(X.substring(De,pe)),De=-1),re+=St):De===-1&&(De=pe)}}return De!==-1&&(re+=encodeURIComponent(X.substring(De))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:De,authority:pe,path:me,query:St,fragment:We}=X;if(De&&(re+=De,re+=":"),(pe||De==="file")&&(re+=v,re+=v),pe){let je=pe.indexOf("@");if(je!==-1){let bn=pe.substr(0,je);pe=pe.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}pe=pe.toLowerCase(),je=pe.lastIndexOf(":"),je===-1?re+=se(pe,!1,!0):(re+=se(pe.substr(0,je),!1,!0),re+=pe.substr(je))}if(me){if(me.length>=3&&me.charCodeAt(0)===47&&me.charCodeAt(2)===58){let je=me.charCodeAt(1);je>=65&&je<=90&&(me=`/${String.fromCharCode(je+32)}:${me.substr(3)}`)}else if(me.length>=2&&me.charCodeAt(1)===58){let je=me.charCodeAt(0);je>=65&&je<=90&&(me=`${String.fromCharCode(je+32)}:${me.substr(2)}`)}re+=se(me,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var xe;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,De=!1;re[0]!==Dt&&(re=Dt+re,De=!0);let pe=Je.resolve(re,...se);return De&&pe[0]===Dt&&!z.authority&&(pe=pe.substring(1)),z.with({path:pe})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(xe||(xe={}))})(),Nk=i})();var{URI:Ze,Utils:Tt}=Nk;var Xu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=qi.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Vi=gt(require("fs")),nn=gt(require("fs/promises"));function XW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function YW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function qk(t){return{size:t.size,type:YW(t),mtime:Math.floor(t.mtimeMs)}}async function Ok(t){let e=await nn.lstat(t);return qk(e)}function Lk(t){try{return Gi(t).type==="File"}catch{return!1}}async function Bk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Gi(t){let e=Vi.lstatSync(t);return qk(e)}function ra(t){let e=[],n=Vi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,XW(i)]);return e}async function ia(t){await nn.mkdir(t,{recursive:!0})}async function Dg(t,e){await nn.rename(t,e)}async function Uk(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Yu(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function $k(t){return Vi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Lr=class t{_position;constructor(e,n){this._position=jk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},_i=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Lr(e,n),this.end=new Lr(i,s);else if(e instanceof Lr&&n instanceof Lr)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},vi=class{constructor(e){this.document=e}get uri(){return Ze.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Lr(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new Wk.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Br=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},ZW=new ue,Ig=new ue,Mg=new ue,Ag=new ue,ej=new ue,tj=new ue;var Fg=new ue,zk=[];function Hk(t){zk=t.map((e,n)=>({uri:Ze.parse(e.uri),name:e.name,index:n}))}var Rt={onDidChangeConfiguration:ZW.event,getConfiguration:t=>t==="augment"?{}:{},onDidOpenTextDocument:Ig.event,onDidChangeTextDocument:Mg.event,onDidCloseTextDocument:Ag.event,onWillRenameFiles:ej.event,onDidChangeWorkspaceFolders:tj.event,documents:new Xu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new vi(t))},get workspaceFolders(){return zk}},Eg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Fg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Fg.fire({key:e}))}onDidChange=Fg.event},Zu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=$k(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},oa=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Eg(e),this.globalState=new Zu(this.globalStorageUri),this.workspaceState=new Zu(this.storageUri)}};var nj=128*1024,qg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:nj,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Ng=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Vk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??qg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Ng(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Br().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var ij=Gk(),Og=[],oj=new Set;for(let t of ij){Og.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)oj.add(e)}function sa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function yi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){sa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Lg(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function aa(t,e=""){let n=[];if(typeof t!="object"||t===null)return Qk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${aa(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(aa(s,e+" "))):n.push(`${e}${i}: ${Qk(s)}`);return n.join(` -`)}function Qk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var sj={initialMS:100,mult:2,maxMS:3e4};function ca(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Bg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=sj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>vt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Bg(i)}}async function Ug(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var $g=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Wg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return Us()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,v=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,v=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Qi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Ug(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Te(U,!0)}`),vt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?vt.fromResponse(B):(B.status===401&&v&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),vt.fromResponse(B).status===10&&this._logger.debug(`object size is ${aa(s)} `),vt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new $g(Te(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let v;try{v=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Qi}if(!v.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Ug(this._fetchFunction(v.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${v.toString()} failed: ${Te(P,!0)}`),P.stack&&this._logger.error(P.stack),vt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?vt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${v.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${v.toString()} response ${L.status}: ${L.statusText}`),vt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?aa(s):0} `),vt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` +`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,na.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,na.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var Wk=require("events"),Dn=nt(require("fs")),jk=nt(Fg()),zk=nt(require("os")),Xu=nt(require("path")),Hk=nt(rg());var Ok;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var y,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else y===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",y=!1,x=arguments.length-1;x>=-1&&!y;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,y=D.charCodeAt(0)===47)}return m=u(m,!y),y?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,y=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&y&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=y:f+="/"+y)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var y=1;yL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(y+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(y+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=y+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),y=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?y?"/":".":y&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var y,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(y=f.length-1;y>=0;--y){var B=f.charCodeAt(y);if(B===47){if(!N){x=y+1;break}}else L===-1&&(N=!1,L=y+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=y):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(y=f.length-1;y>=0;--y)if(f.charCodeAt(y)===47){if(!N){x=y+1;break}}else D===-1&&(N=!1,D=y+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,y=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){y=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===y+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,y){var x=y.dir||y.root,D=y.base||(y.name||"")+(y.ext||"");return x?x===y.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var y,x=f.charCodeAt(0),D=x===47;D?(m.root="/",y=1):y=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=y;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>xe}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",y="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,De,ge,pe=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,pe),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==y&&(We=y+We):We=y}return We}(this.scheme,re||m),this.query=De||m,this.fragment=ge||m,f(this,pe))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:De,query:ge,fragment:pe}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),De===void 0?De=this.path:De===null&&(De=m),ge===void 0?ge=this.query:ge===null&&(ge=m),pe===void 0?pe=this.fragment:pe===null&&(pe=m),se===this.scheme&&re===this.authority&&De===this.path&&ge===this.query&&pe===this.fragment?this:new A(se,re,De,ge,pe)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,y)),z[0]===y&&z[1]===y){let re=z.indexOf(y,2);re===-1?(se=z.substring(2),z=y):(se=z.substring(2,re),z=z.substring(re)||y)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,De=-1;for(let ge=0;ge=97&&pe<=122||pe>=65&&pe<=90||pe>=48&&pe<=57||pe===45||pe===46||pe===95||pe===126||z&&pe===47||se&&pe===91||se&&pe===93||se&&pe===58)De!==-1&&(re+=encodeURIComponent(X.substring(De,ge)),De=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[pe];St!==void 0?(De!==-1&&(re+=encodeURIComponent(X.substring(De,ge)),De=-1),re+=St):De===-1&&(De=ge)}}return De!==-1&&(re+=encodeURIComponent(X.substring(De))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:De,authority:ge,path:pe,query:St,fragment:We}=X;if(De&&(re+=De,re+=":"),(ge||De==="file")&&(re+=y,re+=y),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(pe){if(pe.length>=3&&pe.charCodeAt(0)===47&&pe.charCodeAt(2)===58){let je=pe.charCodeAt(1);je>=65&&je<=90&&(pe=`/${String.fromCharCode(je+32)}:${pe.substr(3)}`)}else if(pe.length>=2&&pe.charCodeAt(1)===58){let je=pe.charCodeAt(0);je>=65&&je<=90&&(pe=`${String.fromCharCode(je+32)}:${pe.substr(2)}`)}re+=se(pe,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var xe;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,De=!1;re[0]!==Dt&&(re=Dt+re,De=!0);let ge=Je.resolve(re,...se);return De&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(xe||(xe={}))})(),Ok=i})();var{URI:ot,Utils:Tt}=Ok;var Qu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=Ni.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Hi=nt(require("fs")),nn=nt(require("fs/promises"));function QW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function KW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Lk(t){return{size:t.size,type:KW(t),mtime:Math.floor(t.mtimeMs)}}async function Bk(t){let e=await nn.lstat(t);return Lk(e)}function Ku(t){try{return Vi(t).type==="File"}catch{return!1}}async function Uk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Vi(t){let e=Hi.lstatSync(t);return Lk(e)}function ra(t){let e=[],n=Hi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,QW(i)]);return e}async function ia(t){await nn.mkdir(t,{recursive:!0})}async function Eg(t,e){await nn.rename(t,e)}async function $k(t){return await nn.readFile(t)}async function Qo(t){return await nn.readFile(t,{encoding:"utf8"})}async function Ju(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Ig(t){return Hi.readFileSync(t,{encoding:"utf8"})}var Ko=class extends Error{constructor(){super("Operation cancelled")}};var Or=class t{_position;constructor(e,n){this._position=Hk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},bi=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Or(e,n),this.end=new Or(i,s);else if(e instanceof Or&&n instanceof Or)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},_i=class{constructor(e){this.document=e}get uri(){return ot.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Or(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new Wk.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Lr=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},JW=new ue,Ng=new ue,qg=new ue,Og=new ue,XW=new ue,YW=new ue;var Mg=new ue,Vk=[];function Gk(t){Vk=t.map((e,n)=>({uri:ot.parse(e.uri),name:e.name,index:n}))}function ZW(){let t=(0,jk.getLogger)("WorkspaceConfig"),e=process.env.TEST_TMPDIR?Xu.join(process.env.TEST_TMPDIR,"config"):process.env.XDG_CONFIG_HOME||Xu.join(zk.default.homedir(),".config"),n=process.env.AUGMENT_CONFIG_PATH||Xu.join(e,"augment","user_config.json");try{if(t.debug(`Checking for user config at ${n}`),!Ku(n))return t.debug(`File doesn't exist: ${n}`),{};let i=Ig(n),s=JSON.parse(i);return t.info(`Found user config: ${JSON.stringify(s)}`),s}catch(i){t.error(`Failed to read augment config at ${n}: ${ke(i)}`)}return{}}var Rt={onDidChangeConfiguration:JW.event,getConfiguration:t=>t==="augment"?ZW():{},onDidOpenTextDocument:Ng.event,onDidChangeTextDocument:qg.event,onDidCloseTextDocument:Og.event,onWillRenameFiles:XW.event,onDidChangeWorkspaceFolders:YW.event,documents:new Qu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new _i(t))},get workspaceFolders(){return Vk}},Ag=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Mg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Mg.fire({key:e}))}onDidChange=Mg.event},Yu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Ig(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},Zu=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Ag(e),this.globalState=new Yu(this.globalStorageUri),this.workspaceState=new Yu(this.storageUri)}};var ej=128*1024,Bg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:ej,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Lg=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Qk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Go("feature flags",this._logger),this._flags.update(e?.initialFlags??Bg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Lg(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Lr().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var nj=Kk(),Ug=[],rj=new Set;for(let t of nj){Ug.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)rj.add(e)}function oa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function vi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Jo(t,e,n){oa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function $g(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function sa(t,e=""){let n=[];if(typeof t!="object"||t===null)return Jk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${sa(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(sa(s,e+" "))):n.push(`${e}${i}: ${Jk(s)}`);return n.join(` +`)}function Jk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var ij={initialMS:100,mult:2,maxMS:3e4};function aa(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Wg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=ij){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>vt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Wg(i)}}async function jg(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var zg=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Hg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return Us()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,y=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,y=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Gi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await jg(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${ke(U,!0)}`),vt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?vt.fromResponse(B):(B.status===401&&y&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),vt.fromResponse(B).status===10&&this._logger.debug(`object size is ${sa(s)} `),vt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new zg(ke(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let y;try{y=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Gi}if(!y.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await jg(this._fetchFunction(y.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${y.toString()} failed: ${ke(P,!0)}`),P.stack&&this._logger.error(P.stack),vt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?vt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${y.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${y.toString()} response ${L.status}: ${L.statusText}`),vt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?sa(s):0} `),vt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` `);){let Je=te.indexOf(` -`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let xe=JSON.parse(Dt);yield c(xe)}catch(xe){K.error(`JSON parse failed for ${Dt}: ${Te(xe)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,v,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(v??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},v=>this.toMemorizeResult(v),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!vt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Lg("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:yi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:yi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:yi("BackChatResultNode","id",d.id),type:yi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,v,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,v,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:v,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?yi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:yi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:yi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);sa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);sa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=qg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version),e.feature_flags.vscode_agent_mode_min_version!==void 0&&(s.vscodeAgentModeMinVersion=e.feature_flags.vscode_agent_mode_min_version)}let c=[];if(e.languages===void 0)c=Og;else{sa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Qi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Wg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},ot=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var aj={Augment:null},cj="augment-vim-extension",rl=class t extends ot{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||aj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||cj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model},integrations:{...e.advanced.integrations}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:dt(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:dt(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:dt(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:uj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:dt(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:dt(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:dt(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:dt(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:dt(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:dt(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:dt(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:dt(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:dt(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:dt(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:dt(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:dt(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:dt(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:dt(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:dt(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:dt(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:dt(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:dt(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:dt(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:dt(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:dt(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:dt(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model},integrations:{...e.advanced?.integrations}}}}};function dt(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function uj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Jk=gt(Go());var ua="augment.sessions",Kk=["email"],il=class extends ot{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===ua&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(ua,JSON.stringify({accessToken:n,tenantURL:i,scopes:Kk}))}async getSession(){let n=await this._context.secrets.get(ua);if(n){let i=JSON.parse(n);if((0,Jk.isEqual)(i.scopes,Kk))return i}return null}async removeSession(){await this._context.secrets.get(ua)&&await this._context.secrets.delete(ua)}};var la=require("crypto"),zg=require("url");var ol="augment.oauth-state",lj=process.env.TEST_HOSTNAME??".augmentcode.com",dj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=Ze.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=jg((0,la.randomBytes)(32)),n=jg(fj(Buffer.from(e))),i=jg((0,la.randomBytes)(8)),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Xk(t,e){return(...n)=>{let i=performance.now(),s=hj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function gj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function Yk(t){return t.map(e=>gj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} +`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let xe=JSON.parse(Dt);yield c(xe)}catch(xe){K.error(`JSON parse failed for ${Dt}: ${ke(xe)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Jo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Jo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:$g("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,y,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(y??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},y=>this.toMemorizeResult(y),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!vt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Jo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Jo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Jo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:$g("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:vi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:vi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:vi("BackChatResultNode","id",d.id),type:vi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,y,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:y,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,y,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:y,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?vi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:vi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:vi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);oa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);oa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=Bg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version),e.feature_flags.vscode_agent_mode_min_version!==void 0&&(s.vscodeAgentModeMinVersion=e.feature_flags.vscode_agent_mode_min_version)}let c=[];if(e.languages===void 0)c=Ug;else{oa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Gi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Hg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},st=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var oj={Augment:null},sj="augment-vim-extension",rl=class t extends st{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Go("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||oj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||sj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model},integrations:{...e.advanced.integrations}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:ft(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:ft(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:ft(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:aj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:ft(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:ft(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:ft(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:ft(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:ft(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:ft(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:ft(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:ft(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:ft(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:ft(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:ft(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:ft(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:ft(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:ft(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:ft(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:ft(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:ft(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:ft(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:ft(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:ft(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:ft(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:ft(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model},integrations:{...e.advanced?.integrations}}}}};function ft(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function aj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Yk=nt(Vo());var ca="augment.sessions",Xk=["email"],il=class extends st{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===ca&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(ca,JSON.stringify({accessToken:n,tenantURL:i,scopes:Xk}))}async getSession(){let n=await this._context.secrets.get(ca);if(n){let i=JSON.parse(n);if((0,Yk.isEqual)(i.scopes,Xk))return i}return null}async removeSession(){await this._context.secrets.get(ca)&&await this._context.secrets.delete(ca)}};var ua=require("crypto"),Gg=require("url");var ol="augment.oauth-state",cj=process.env.TEST_HOSTNAME??".augmentcode.com",uj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=ot.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Vg((0,ua.randomBytes)(32)),n=Vg(lj(Buffer.from(e))),i=Vg((0,ua.randomBytes)(8)),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Zk(t,e){return(...n)=>{let i=performance.now(),s=dj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function fj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function eT(t){return t.map(e=>fj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} suffixReplacementText: ${this.suffixReplacementText} skippedSuffix: ${this.skippedSuffix} start: ${this.range.startOffset} - end: ${this.range.endOffset}`}};var ul=class{constructor(e,n,i){this._extension=e;this._configListener=n;this._metricsReporter=i;this.generateCompletion=Xk(this.generateCompletion.bind(this),s=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:s})})}_logger=_e("CompletionsModel");_completionSerial=0;async generateCompletion(e,n,i){let s=this._extension.workspaceManager;if(s===void 0)return;let c=s.completionServer,u=c.createRequestId(),d=s.safeResolvePathName(e.uri);if(d===void 0)return;let[f,m]=[d.rootPath,d.relPath],v=e.offsetAt(n),[x,D,N,A,L]=this._extractPrefixAndSuffix(e,v);v+=L;let B={prefixBegin:N,cursorPosition:v,suffixEnd:A},F=(await this._requestCompletion(s,c,u,e,x,D,B,d,i)).completionItems;if(F.length===0)return{completions:[],document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,occuredAt:new Date,isReused:!1};F.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],te=F[0];return te.skippedSuffix.includes(` -`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let v=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(v))throw new pi(`Language ${v} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,v,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),pj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(vt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new pi("Cancelled in back end");if(vt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new pi("Retriable error on back end");let U=Te(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let v=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new _i(v,x),L=new _i(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends Zo{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function Hg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends Zo{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=Hg(i),[f,m]=Hg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Yu(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Ko(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Bk(n.fsPath)||await ia(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var eT=gt(require("crypto")),fa=2023102300,da=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},es=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=eT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new da(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var MT=gt(Go());var Vg=class{async read(e){try{return await Uk(e)}catch{return}}stat(e){try{return Gi(e)}catch{return}}};function tT(){return new Vg}var nT=gt(require("crypto"));function rT(t){let e=nT.createHash("sha256");return e.update(t),e.digest("hex")}var np=gt(hT());var ha=class{accepted=!0},wi=class{accepted=!1};var st=gt(require("node:path"));var ga=st.posix.sep,Mj=new RegExp("/\\/g");function gT(t){return st.isAbsolute(t)}function Aj(t){return st.sep==="\\"?t.replace(Mj,ga):t}function pT(t){return Aj(t)}function mT(t){return t.with({path:st.dirname(t.fsPath)})}function gl(t){let e=st.dirname(t);return e==="."?"":Nj(e)}function Nj(t){return t.endsWith(ga)?t:t+ga}function ts(t){for(;;){if(t===st.sep||t===ga||!t.endsWith(ga)&&!t.endsWith(st.sep))return t;t=t.slice(0,-1)}}function pa(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return st.relative(n,i)}function $r(t,e){let n=pa(t,e);return n==="."?"":n.length>0&&!n.endsWith(st.sep)?n+st.sep:n}function et(t,e,n=!1){let i=st.join(t,e);return n&&!i.endsWith(st.sep)&&(i+=st.sep),i}function ma(t,e){let n=pa(t,e);if(!(n===".."||n.startsWith(".."+st.sep)||n.startsWith(".."+st.posix.sep)))return n}function or(t,e){return ma(t,e)!==void 0}function pl(t,e){let n=pa(t,e);return n===""||n==="."||n==="."+st.sep||n==="."+st.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?Ze.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await Ok(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=st.dirname(i.fsPath);if(st.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function qj(t){return!1}function Jt(t){return ts(t.fsPath)}function bT(t){return t.fsPath}function Wr(t){if(t.scheme==="file"||t.scheme==="untitled"||qj(t))return Jt(t)}var Si=class extends ha{explicit=!1;format(){return"Tracked"}},Yg=class extends ha{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},Zg=class extends wi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},ep=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if($r(i,n)!==""){let u=n;for(;;){u=mT(u);let d=$r(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=$r(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new Zg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new Yg(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new Si}},tp=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await ep.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new Si}};async function Oj(t,e){let n=Tt.joinPath(t,e);try{let i=await Ko(n.fsPath),s=(0,np.default)({ignorecase:!1});return s.add(i),s}catch{}}var ns=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await tp.buildNew(this._ignoreSources,e,n)}},ba=class{constructor(e){this.filename=e}getName(e){return bT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Oj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,np.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: + end: ${this.range.endOffset}`}};var ul=class{constructor(e,n,i){this._extension=e;this._configListener=n;this._metricsReporter=i;this.generateCompletion=Zk(this.generateCompletion.bind(this),s=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:s})})}_logger=_e("CompletionsModel");_completionSerial=0;async generateCompletion(e,n,i){let s=this._extension.workspaceManager;if(s===void 0)return;let c=s.completionServer,u=c.createRequestId(),d=s.safeResolvePathName(e.uri);if(d===void 0)return;let[f,m]=[d.rootPath,d.relPath],y=e.offsetAt(n),[x,D,N,A,L]=this._extractPrefixAndSuffix(e,y);y+=L;let B={prefixBegin:N,cursorPosition:y,suffixEnd:A},F=(await this._requestCompletion(s,c,u,e,x,D,B,d,i)).completionItems;if(F.length===0)return{completions:[],document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,occuredAt:new Date,isReused:!1};F.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],te=F[0];return te.skippedSuffix.includes(` +`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let y=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(y))throw new gi(`Language ${y} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,y,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),hj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(vt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new gi("Cancelled in back end");if(vt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new gi("Retriable error on back end");let U=ke(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let y=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new bi(y,x),L=new bi(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends Yo{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function Qg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends Yo{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=Qg(i),[f,m]=Qg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Ju(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Qo(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Uk(n.fsPath)||await ia(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var nT=nt(require("crypto")),da=2023102300,la=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},Zo=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=nT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new la(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var NT=nt(Vo());var Kg=class{async read(e){try{return await $k(e)}catch{return}}stat(e){try{return Vi(e)}catch{return}}};function rT(){return new Kg}var iT=nt(require("crypto"));function oT(t){let e=iT.createHash("sha256");return e.update(t),e.digest("hex")}var op=nt(pT());var fa=class{accepted=!0},yi=class{accepted=!1};var at=nt(require("node:path"));var ha=at.posix.sep,Ej=new RegExp("/\\/g");function mT(t){return at.isAbsolute(t)}function Ij(t){return at.sep==="\\"?t.replace(Ej,ha):t}function bT(t){return Ij(t)}function _T(t){return t.with({path:at.dirname(t.fsPath)})}function gl(t){let e=at.dirname(t);return e==="."?"":Mj(e)}function Mj(t){return t.endsWith(ha)?t:t+ha}function es(t){for(;;){if(t===at.sep||t===ha||!t.endsWith(ha)&&!t.endsWith(at.sep))return t;t=t.slice(0,-1)}}function ga(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return at.relative(n,i)}function Ur(t,e){let n=ga(t,e);return n==="."?"":n.length>0&&!n.endsWith(at.sep)?n+at.sep:n}function Ze(t,e,n=!1){let i=at.join(t,e);return n&&!i.endsWith(at.sep)&&(i+=at.sep),i}function pa(t,e){let n=ga(t,e);if(!(n===".."||n.startsWith(".."+at.sep)||n.startsWith(".."+at.posix.sep)))return n}function or(t,e){return pa(t,e)!==void 0}function pl(t,e){let n=ga(t,e);return n===""||n==="."||n==="."+at.sep||n==="."+at.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?ot.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await Bk(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=at.dirname(i.fsPath);if(at.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function Aj(t){return!1}function Jt(t){return es(t.fsPath)}function vT(t){return t.fsPath}function $r(t){if(t.scheme==="file"||t.scheme==="untitled"||Aj(t))return Jt(t)}var wi=class extends fa{explicit=!1;format(){return"Tracked"}},tp=class extends fa{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},np=class extends yi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},rp=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if(Ur(i,n)!==""){let u=n;for(;;){u=_T(u);let d=Ur(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=Ur(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new np(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new tp(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new wi}},ip=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await rp.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new wi}};async function Nj(t,e){let n=Tt.joinPath(t,e);try{let i=await Qo(n.fsPath),s=(0,op.default)({ignorecase:!1});return s.add(i),s}catch{}}var ts=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await ip.buildNew(this._ignoreSources,e,n)}},ma=class{constructor(e){this.filename=e}getName(e){return vT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Nj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,op.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: `:"")+Array.from(this).map(([n,i])=>` - ${n}: ${i} ms`).join(` -`)}},yl=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},rp=class extends yl{increment(e=1){this._add(e)}},ip=class extends yl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},rs=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new rp,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new ip,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` +`)}},yl=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},sp=class extends yl{increment(e=1){this._add(e)}},ap=class extends yl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},ns=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new sp,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new ap,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` `),i=" - timing stats:",s=Array.from(this.timings.entries()).map(([c,u])=>` - ${c}: ${u.value} ms`).join(` `);return e+` `+n+` `+i+` -`+s}};var _T=gt(require("os"));function vT(t){let e=_T.default.homedir();return pl(t,e)}var _a=gt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=$r(e,x),A=ra(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=et(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new sp(c,i)}var is=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!_a.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!_a.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new rs("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=$r(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ra(s.fsPath);this._readDirMs.stop();for(let[m,v]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=et(u,m,v==="Directory"),A=d.getPathInfo(N,v);this._filterMs.stop();let L=N;v==="File"?this._filesEmitted.increment():v==="Directory"?(L=ts(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,v,A],this._yieldMs.stop(),v==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},op=class extends wi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=_a.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new op(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new Si:i.getPathInfo(e)}},sp=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new ap(i,this._fileExtensions)}_getIgnoreStack(n){if(gT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},ap=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var cp=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends ot{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new cp;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var up=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends up{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},jr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var Lj=Object.freeze({git:{name:".git",type:"Directory"}});async function yT(t){for(let[e,n]of Object.entries(Lj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var va=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},lp=class{throwError(e,n){throw new va(e,n)}},dp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},fp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},hp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},gp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new fp(i,this.process)}},pp=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof va?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof va&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function os(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends ot{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=os(e,n),s=os(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=os(e.addedBlobs,n.addedBlobs),u=os(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=os(e.deletedBlobs,n.deletedBlobs),u=os(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";vt.isAPIErrorWithStatus(d,5)||vt.isAPIErrorWithStatus(d,4)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function xi(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var mp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},bp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends ot{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new rs("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=pT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return ca(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return et(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof da){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,Te(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let v={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,v)}_newProbeBatch(){return new bp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),xi(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),xi(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,v]of i.items)this._pathMapVerify(v.folderId,v.relPath,m)&&(u.has(v.blobName)?this._enqueueForUpload(m,v.folderId,v.relPath,!1):d.has(v.blobName)?this._enqueueForProbeRetry(m,v):this._pathMapUpdate(v.folderId,v.relPath,m,v.blobName,v.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new mp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:v}]=n;if(!this._pathMapVerify(m,v,f))return;let x=this._getMtime(d,m,v,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,v,f);if(D===void 0)return;let N=this._calculateBlobName(v,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,v,f,Te(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:v,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let v of f)this._pathMapInvalidate(v.folderId,v.pathName,v.seq,this._fileUploadFailure);else for(let v of f){let x={folderId:v.folderId,relPath:v.pathName,blobName:m,mtime:v.mtime,startTime:Date.now()};this._enqueueForProbeRetry(v.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Te(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var zr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},_p=class{constructor(e=fa){this.namingVersion=e}entries=new Array};function Uj(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function $j(t){return et(t,zr.cacheFileName)}function Fl(t){let e=$j(t);return Lk(e)}async function ST(t,e){let n=et(t,zr.cacheFileName),i=et(e,zr.cacheFileName);await ia(e),await Dg(n,i)}async function xT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=et(e,zr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Ko(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==fa)i.info(`blob naming version ${d.namingVersion} !== ${fa}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let v=Uj(m);v!==void 0&&(n.set(f,{mtime:v.mtime,name:v.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=Te(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends zr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=et(this._cacheDirName,zr.cacheFileName),this._tmpFileName=et(this._cacheDirName,zr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new _p;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await ia(this._cacheDirName),await Yu(this._tmpFileName,JSON.stringify(i,void 0,4)),await Dg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${fa} to ${this._cacheFileName}`)}};var CT=gt(Go());var PT=require("console");var vp=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},ss=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},as=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new ss(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,v=Math.min(m,e-s.length);s.length+=v,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=v;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var kT=6,TT=6,ya=kT*TT,jj=1e3,zj=2e3,Hj=60*1e3,Vj=200,Gj=30*1e3,Qj=30*1e3,Kj=60*1e3,yp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Yo(TT),this.addChangeset(s),this.changesSinceUpload=new as}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new as})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},wp=class extends yp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends ot{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new jr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,zj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new jr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,Hj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new jr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let v=m.recentChanges(!1);if(v===void 0||v.blobName===void 0)continue;d.set(f,v.blobName);let x=m.getText(),D=v.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:v.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let v=m.changeTracker.getChunks(n,f.getText().length);if(v.length!==0)for(let x of v)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new wp(n,i,d,f,d),c.set(i,u);let m=u.getText(),v=this._blobNameCalculator.calculate(i,m);if(v===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(v)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=v,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let v of c){let[x,D,N]=v;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let v=d.changesSinceUpload.length>=Vj;v||(v=d.changesSinceUpload.countChunks(this._chunkSize)>=ya),v&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let v=s.changesSinceUpload.countChunks(this._chunkSize);v>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),v>=ya&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=kT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),v=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,CT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:v,changesSinceUpload:new as},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Gj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${Te(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${Te(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Kj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size{if(!(Date.now()-u>Qj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let v of m)this.notifyMissingBlob(v.folderId,v.pathName,f);else if(d.has(f))for(let v of m)this._requeueVerifyWaiter(v,f);else for(let v of m)this._commit(v,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),xi(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),xi(this._logger,i,n.nonindexedBlobNames,5))}};var Sp=gt(Go());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] +`+s}};var yT=nt(require("os"));function wT(t){let e=yT.default.homedir();return pl(t,e)}var ba=nt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=Ur(e,x),A=ra(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=Ze(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new up(c,i)}var rs=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!ba.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!ba.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new ns("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=Ur(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ra(s.fsPath);this._readDirMs.stop();for(let[m,y]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=Ze(u,m,y==="Directory"),A=d.getPathInfo(N,y);this._filterMs.stop();let L=N;y==="File"?this._filesEmitted.increment():y==="Directory"?(L=es(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,y,A],this._yieldMs.stop(),y==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},cp=class extends yi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=ba.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new cp(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new wi:i.getPathInfo(e)}},up=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new lp(i,this._fileExtensions)}_getIgnoreStack(n){if(mT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},lp=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var dp=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends st{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new dp;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var fp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends fp{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},Wr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var qj=Object.freeze({git:{name:".git",type:"Directory"}});async function ST(t){for(let[e,n]of Object.entries(qj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var _a=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},hp=class{throwError(e,n){throw new _a(e,n)}},gp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},pp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},mp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},bp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new pp(i,this.process)}},_p=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof _a?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof _a&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function is(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends st{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=is(e,n),s=is(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=is(e.addedBlobs,n.addedBlobs),u=is(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=is(e.deletedBlobs,n.deletedBlobs),u=is(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";vt.isAPIErrorWithStatus(d,5)||vt.isAPIErrorWithStatus(d,4)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function Si(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var vp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},yp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends st{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new ns("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=bT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return aa(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return Ze(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof la){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,ke(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let y={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,y)}_newProbeBatch(){return new yp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),Si(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),Si(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,y]of i.items)this._pathMapVerify(y.folderId,y.relPath,m)&&(u.has(y.blobName)?this._enqueueForUpload(m,y.folderId,y.relPath,!1):d.has(y.blobName)?this._enqueueForProbeRetry(m,y):this._pathMapUpdate(y.folderId,y.relPath,m,y.blobName,y.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new vp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:y}]=n;if(!this._pathMapVerify(m,y,f))return;let x=this._getMtime(d,m,y,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,y,f);if(D===void 0)return;let N=this._calculateBlobName(y,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,y,f,ke(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:y,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let y of f)this._pathMapInvalidate(y.folderId,y.pathName,y.seq,this._fileUploadFailure);else for(let y of f){let x={folderId:y.folderId,relPath:y.pathName,blobName:m,mtime:y.mtime,startTime:Date.now()};this._enqueueForProbeRetry(y.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${ke(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var jr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},wp=class{constructor(e=da){this.namingVersion=e}entries=new Array};function Lj(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function Bj(t){return Ze(t,jr.cacheFileName)}function Fl(t){let e=Bj(t);return Ku(e)}async function PT(t,e){let n=Ze(t,jr.cacheFileName),i=Ze(e,jr.cacheFileName);await ia(e),await Eg(n,i)}async function CT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=Ze(e,jr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Qo(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==da)i.info(`blob naming version ${d.namingVersion} !== ${da}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let y=Lj(m);y!==void 0&&(n.set(f,{mtime:y.mtime,name:y.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=ke(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends jr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=Ze(this._cacheDirName,jr.cacheFileName),this._tmpFileName=Ze(this._cacheDirName,jr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new wp;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await ia(this._cacheDirName),await Ju(this._tmpFileName,JSON.stringify(i,void 0,4)),await Eg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${da} to ${this._cacheFileName}`)}};var TT=nt(Vo());var kT=require("console");var Sp=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},os=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},ss=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new os(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,y=Math.min(m,e-s.length);s.length+=y,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=y;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var RT=6,DT=6,va=RT*DT,$j=1e3,Wj=2e3,jj=60*1e3,zj=200,Hj=30*1e3,Vj=30*1e3,Gj=60*1e3,xp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Xo(DT),this.addChangeset(s),this.changesSinceUpload=new ss}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new ss})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},Pp=class extends xp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends st{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new Wr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new Wr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,Wj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new Wr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,jj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new Wr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let y=m.recentChanges(!1);if(y===void 0||y.blobName===void 0)continue;d.set(f,y.blobName);let x=m.getText(),D=y.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:y.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let y=m.changeTracker.getChunks(n,f.getText().length);if(y.length!==0)for(let x of y)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new Pp(n,i,d,f,d),c.set(i,u);let m=u.getText(),y=this._blobNameCalculator.calculate(i,m);if(y===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(y)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=y,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let y of c){let[x,D,N]=y;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let y=d.changesSinceUpload.length>=zj;y||(y=d.changesSinceUpload.countChunks(this._chunkSize)>=va),y&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let y=s.changesSinceUpload.countChunks(this._chunkSize);y>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),y>=va&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=RT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),y=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,TT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:y,changesSinceUpload:new ss},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Hj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${ke(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${ke(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Gj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size<$j)return}let i=this._grabVerifyBatch();if(i===void 0)return;let s=[...i.keys()];this._logger.verbose(`verify batch: blob count = ${s.length}`);let c;try{let u=Date.now();c=await Fn(async()=>{if(!(Date.now()-u>Vj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let y of m)this.notifyMissingBlob(y.folderId,y.pathName,f);else if(d.has(f))for(let y of m)this._requeueVerifyWaiter(y,f);else for(let y of m)this._commit(y,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),Si(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),Si(this._logger,i,n.nonindexedBlobNames,5))}};var Cp=nt(Vo());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] [${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.getBlobName(e,n)}handleMissingBlob(e,n,i){if(this.isV2Enabled){let s=this._openFileManagerV2.handleMissingBlob(e,n,i);return this._openFileManagerV1.notifyMissingBlob(e,n,i)||s}else return this._openFileManagerV1.notifyMissingBlob(e,n,i)}loseFocus(){this._openFileManagerV1.loseFocus()}stopTracking(e,n){this._openFileManagerV1.stopTracking(e,n),this.isV2Enabled&&this._openFileManagerV2.stopTracking(e,n)}handleClosedDocument(e){this._openFileManagerV1.stopTracking(e.folderId,e.relPath,0),this.isV2Enabled&&this._openFileManagerV2.handleClosedDocument(e)}handleChangedDocument(e){this._openFileManagerV1.applyTextDocumentChange(e.folderId,e.relPath,e.event),this.isV2Enabled&&this._openFileManagerV2.handleChangedDocument(e)}isTracked(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.isTracked(e,n),s=this._openFileManagerV1.isTracked(e,n);return i!==s&&this._logger.debug(`[WARN] isTracked returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] -[${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.isTracked(e,n)}getTrackedPaths(e){if(this.isV2Enabled){let n=this._openFileManagerV2.getTrackedPaths(e),i=this._openFileManagerV1.getTrackedPaths(e),s=(0,Sp.difference)(n,i);s.length>0&&this._logger.debug(`[WARN] getTrackedPaths in new but not in old [${e}] -[${JSON.stringify(s)}]`);let c=(0,Sp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] +[${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.isTracked(e,n)}getTrackedPaths(e){if(this.isV2Enabled){let n=this._openFileManagerV2.getTrackedPaths(e),i=this._openFileManagerV1.getTrackedPaths(e),s=(0,Cp.difference)(n,i);s.length>0&&this._logger.debug(`[WARN] getTrackedPaths in new but not in old [${e}] +[${JSON.stringify(s)}]`);let c=(0,Cp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] [${JSON.stringify(c)}]`),i}else return this._openFileManagerV1.getTrackedPaths(e)}dispose(){this._openFileManagerV2?.dispose(),this._openFileManagerV1.dispose()}getRecencySummary(e){return this._openFileManagerV1.getRecencySummary(e)}translateRange(e,n,i,s){if(this.isV2Enabled){let c=this._openFileManagerV2.translateRange(e,n,i,s),u=this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s});return(c?.blobName!==u?.blobName||c?.beginOffset!==u?.beginOffset||c?.endOffset!==u?.endOffset)&&this._logger.debug(`[WARN] translateRange returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(c)}] -[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var RT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new es(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,RT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return et(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=DT(e)?et(e.rootPath,e.relPath):e.fsPath,s=DT(n)?et(n.rootPath,n.relPath):n.fsPath;return i===s}};function DT(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new xp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},xp=class extends ot{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return et(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var Pp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=et(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.debug(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(Ze.file(e)):n==="change"?this._onDidChange.fire(Ze.file(e)):n==="delete"&&this._onDidDelete.fire(Ze.file(e))}dispose(){this.watcher.close()}},Cp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function FT(t){try{return new Pp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Cp}}var kp=class extends wi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends ot{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new is(this.folderName,Ze.file(this.folderRoot),Ze.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Gi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new kp(Te(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=Wr(n);if(i!==void 0)return ma(this.repoRoot,i)}_createFilesystemWatcher(n){let i=FT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function ET(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),v;for(;(v=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=$r(c,v),N=n.makeLocalPathFilter(D),A=ra(v);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=et(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(et(v,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(Ze.file(e),Ze.file(n),new ns(i),this._fileExtensions);return await ET(Ze.file(e),Ze.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=et(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends ot{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&xi(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return pa(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Rp=class extends ot{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Jj=new Set(["home directory","too large"]),Xj=new Set(["nested"]);function wa(t){return Jj.has(t)}function IT(t){return Xj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends ot{constructor(n,i,s,c,u,d,f,m,v=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of v)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,tT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ba(".gitignore"),new _l(n),new ba(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new Si;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await ca(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return wa(s)||IT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await ca(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(wa(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?vT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);wa(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);wa(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Br;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{v.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,v]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new Tp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await ST(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Te(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=rT(t._textEncoder.encode(n));return et(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Te(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Te(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(Ze.file(n.folderRoot),Ze.file(n.repoRoot),new ns(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Rp(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await yT(n))?.root),i!==void 0?[AT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=Wr(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return cs.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,v=m&&this._validateCheckpointManagerContext,x;if(!m||v){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new cs(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new cs(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=Ze.file(n.repoRoot),u=new is(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,v]of u)this._handlePathFound(n,f,m,v)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ma(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=Wr(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Gi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=Wr(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,v=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(v=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:v,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends ot{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Br;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Te(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,NT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession())return}else{if(!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new qu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,qT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Nu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(vt.isAPIErrorWithStatus(c,7))return;if(c instanceof Qi)return;if(c instanceof Jo)return;let u=Te(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new es(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),vt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Qi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Bg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function OT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=Us(),t.update("sessionId",e)),e}var on=(0,Se.createConnection)(),UT,Yj=".config/augment/api_token",Zj="https://staging-shard-0.api.augmentcode.com/",e2={clientID:"augment-vim-extension",url:process.env.AUGMENT_AUTH_URL??"https://auth.augmentcode.com"},t2=process.env.TEST_TMPDIR?Sa.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||Sa.join(BT.default.homedir(),".local","share"),$T=Sa.join(t2,"vim-augment"),LT=Sa.join(process.env.HOME||"~",Yj),n2=zl.existsSync(LT)?zl.readFileSync(LT,"utf8").trim():"",ge=_e("server"),jl,Dp,ur,Xt,Wl=new rl;async function WT(t,e){if(await ur.initState(),!ur.isLoggedIn)throw new Error("Not logged in. Please login first.");return Hk(e),new $l(t,Wl,jl,ur)}on.onInitialize(async t=>{ge.info("Initializing Language Server"),UT=t;let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;ge.info(`User agent: ${s}`);let c=t.workspaceFolders??[];ge.info(`Roots: ${JSON.stringify(c)}`);for(let x of c)ge.info(`Root name, URI: ${x.name}, ${x.uri}`);let u;try{u=new oa(Ze.file($T))}catch(x){throw ge.error(`Error initializing server context storage: ${Te(x)}`),x}ur=new il(u,Wl);let d=new fl(u),f=OT(d);ge.info(`Session ID: ${f}`);let m={...Wl.config,oauth:e2,apiToken:n2};jl=new nl(Wl,ur,f,s,global.fetch),Dp=new sl(u,m,jl,ur);let v={capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Se.TextDocumentSyncKind.Incremental}};try{Xt=await WT(u,c),await Xt.enable(),ge.info("Initialized completion server")}catch(x){ge.error(`Error initializing completion server: ${Te(x)}`)}return v});on.onInitialized(()=>{ge.info("Language server initialized")});on.onCompletion(async t=>{let e=Rt.documents.get(t.textDocument.uri);if(!e)return ge.warn(`Not tracking the document ${t.textDocument.uri}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return ge.debug("Completion server is not initialized."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return ge.debug("Not logged in. Please login first."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Not logged in. Please login first.");try{let n=new vi(e),i=new Lr(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return ge.info(`Completion: ${s?.requestId}`),ge.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof pi?(ge.debug(`Completion was cancelled or skipped: ${Te(n)}`),[]):(ge.error(`Error getting completion: ${Te(n)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Error getting completion: ${Te(n)}`))}});on.onRequest("augment/login",async()=>{try{return ur.isLoggedIn?(ge.info("Already logged in"),{loggedIn:!0,url:""}):(ge.info("Logging in..."),{loggedIn:!1,url:await Dp.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return ge.error(`Error handling augment/login: ${n}`),ge.error(`Stack trace: ${e}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await ur.removeSession(),Xt?.disable(),ge.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Te(t);return ge.error(`Error handling augment/logout: ${n}`),ge.error(`Stack trace: ${e}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{await Dp.handleAuthJson(t.code)}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return ge.error(`Error handling user code: ${i}`),ge.error(`Stack trace: ${n}`),e instanceof SyntaxError?new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to parse user code. Did you paste the code provided by the sign in page?"):i==="Unknown state"?new Se.ResponseError(Se.ErrorCodes.InternalError,"Could not find sign in state. Did you navigate to the full sign in URL (it may wrap onto multiple lines)?"):new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process user code. Please try again.")}try{if(!Xt){let e=new oa(Ze.file($T)),n=UT?.workspaceFolders??[];Xt=await WT(e,n),ge.info("Initialized completion server")}return await Xt.enable(),ge.info("Logged in."),{}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Te(e);return ge.error(`Error creating completion server: ${i}`),ge.error(`Stack trace: ${n}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{let t=!!ur.isLoggedIn;if(!Xt?.workspaceManager)return{loggedIn:t};let e=0,n=0,i=Xt.workspaceManager.getSyncingProgress();for(let c of i){if(!c.progress)return{loggedIn:t,syncPercentage:void 0};c.progress.newlyTracked&&(ge.info(`New folder ${c.folderRoot} sync progress: tracked=${c.progress.trackedFiles}, backlog=${c.progress.backlogSize}`),e+=c.progress.trackedFiles,n+=c.progress.trackedFiles-c.progress.backlogSize)}let s=e>0?Math.floor(n/e*100):100;return{loggedIn:t,syncPercentage:s}});on.onRequest("augment/chat",async t=>{let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||ge.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return ge.debug("Completion server is not initialized."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Completion server is not initialized");if(!ur.isLoggedIn)return ge.debug("Not logged in. Please login first."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Not logged in. Please login first.");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),v=Xt.completionServer.createRequestId();ge.info(`Chat (${v}) requested`),n&&(ge.debug(`Document URI: ${n.uri}`),ge.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&ge.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(v,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){ge.debug(`Chat chunk for ${v}: ${L.text}`);let B={requestId:v,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return ge.error(`Error streaming chat: ${Te(A)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Error streaming chat: ${Te(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:v,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Se.ResponseError(Se.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return ge.error(`Failed to fetch version: ${f.statusText}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let v=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!v)return new Se.ResponseError(Se.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(v[1]),D=parseInt(v[2]),N=parseInt(v[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Se.ResponseError(Se.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Se.ResponseError(Se.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return ge.error(`Error fetching version: ${Te(d)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Te(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(ge.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){ge.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{ge.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=qi.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ig.fire(new vi(n))});on.onDidCloseTextDocument(t=>{ge.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Ag.fire(new vi(e)))});on.onDidChangeTextDocument(t=>{ge.debug(`Document changed: ${t.textDocument.uri}`),ge.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){ge.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new _i(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new _i(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=qi.update(e,[s],t.textDocument.version),ge.debug(`Updated document (${e.version}): -${e.getText()}`)}Rt.documents.add(e);let i={document:new vi(e),contentChanges:n};Mg.fire(i)});on.listen();0&&(module.exports={API_ENDPOINT}); +[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var FT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new Zo(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,FT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return Ze(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=ET(e)?Ze(e.rootPath,e.relPath):e.fsPath,s=ET(n)?Ze(n.rootPath,n.relPath):n.fsPath;return i===s}};function ET(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new kp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},kp=class extends st{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return Ze(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var Tp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=Ze(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.debug(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(ot.file(e)):n==="change"?this._onDidChange.fire(ot.file(e)):n==="delete"&&this._onDidDelete.fire(ot.file(e))}dispose(){this.watcher.close()}},Rp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function IT(t){try{return new Tp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Rp}}var Dp=class extends yi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends st{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new rs(this.folderName,ot.file(this.folderRoot),ot.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Vi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Dp(ke(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=$r(n);if(i!==void 0)return pa(this.repoRoot,i)}_createFilesystemWatcher(n){let i=IT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function MT(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),y;for(;(y=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=Ur(c,y),N=n.makeLocalPathFilter(D),A=ra(y);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=Ze(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(Ze(y,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(ot.file(e),ot.file(n),new ts(i),this._fileExtensions);return await MT(ot.file(e),ot.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=Ze(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends st{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&Si(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return ga(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Ep=class extends st{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Qj=new Set(["home directory","too large"]),Kj=new Set(["nested"]);function ya(t){return Qj.has(t)}function AT(t){return Kj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends st{constructor(n,i,s,c,u,d,f,m,y=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of y)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,rT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ma(".gitignore"),new _l(n),new ma(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new wi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return ya(s)||AT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await aa(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return ya(s)||AT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await aa(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(ya(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?wT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);ya(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);ya(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Lr;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{y.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,y]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new Fp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await PT(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${ke(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=oT(t._textEncoder.encode(n));return Ze(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${ke(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${ke(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(ot.file(n.folderRoot),ot.file(n.repoRoot),new ts(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Ep(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await ST(n))?.root),i!==void 0?[qT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=$r(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return as.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,y=m&&this._validateCheckpointManagerContext,x;if(!m||y){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new as(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new as(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=ot.file(n.repoRoot),u=new rs(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,y]of u)this._handlePathFound(n,f,m,y)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))pa(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Vi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=$r(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,y=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(y=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:y,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends st{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Lr;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${ke(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,OT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession()){this._logger.info("Auth session not found. Please log in.");return}}else{if(this._logger.info("Using API token"),!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new Mu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,LT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Iu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(vt.isAPIErrorWithStatus(c,7))return;if(c instanceof Gi)return;if(c instanceof Ko)return;let u=ke(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new Zo(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}this.enabled=!0}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Ko;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),vt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Gi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Ko;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Wg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function BT(t){let e=t.get("sessionId");return(e===void 0||!ig(e))&&(e=Us(),t.update("sessionId",e)),e}var on=(0,Se.createConnection)(),Jj=process.env.TEST_TMPDIR?zl.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||zl.join(UT.default.homedir(),".local","share"),Xj=zl.join(Jj,"vim-augment"),me=_e("server"),jl,Ip,cs,Xt,Wl=new rl;async function Yj(t,e){cs=new il(t,Wl);let n=new fl(t),i=BT(n);me.info(`Session ID: ${i}`),jl=new nl(Wl,cs,i,e,global.fetch),Ip=new sl(t,Wl,jl,cs),Xt=new $l(t,Wl,jl,cs),await Xt.enable()}on.onInitialize(async t=>{me.info("Initializing Language Server");let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;me.info(`User agent: ${s}`);let c=t.workspaceFolders??[];me.info(`Roots: ${JSON.stringify(c)}`);for(let f of c)me.info(`Root name, URI: ${f.name}, ${f.uri}`);Gk(c);let u;try{u=new Zu(ot.file(Xj))}catch(f){throw me.error(`Error initializing server context storage: ${ke(f)}`),f}return await Yj(u,s),{capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Se.TextDocumentSyncKind.Incremental}}});on.onInitialized(()=>{me.info("Language server initialized")});on.onCompletion(async t=>{if(!Xt?.ready)return me.debug("Not logged in. Please login first."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Not logged in. Please login first.");let e=Rt.documents.get(t.textDocument.uri);if(!e)return me.warn(`Not tracking the document ${t.textDocument.uri}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return me.debug("Completion server is not initialized."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Completion server is not initialized");try{let n=new _i(e),i=new Or(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return me.info(`Completion: ${s?.requestId}`),me.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof gi?(me.debug(`Completion was cancelled or skipped: ${ke(n)}`),[]):(me.error(`Error getting completion: ${ke(n)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Error getting completion: ${ke(n)}`))}});on.onRequest("augment/login",async()=>{try{return cs.isLoggedIn?(me.info("Already logged in"),{loggedIn:!0,url:""}):(me.info("Logging in..."),{loggedIn:!1,url:await Ip.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=ke(t);return me.error(`Error handling augment/login: ${n}`),me.error(`Stack trace: ${e}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await cs.removeSession(),Xt?.disable(),me.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=ke(t);return me.error(`Error handling augment/logout: ${n}`),me.error(`Stack trace: ${e}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{await Ip.handleAuthJson(t.code)}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=ke(e);return me.error(`Error handling user code: ${i}`),me.error(`Stack trace: ${n}`),e instanceof SyntaxError?new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to parse user code. Did you paste the code provided by the sign in page?"):i==="Unknown state"?new Se.ResponseError(Se.ErrorCodes.InternalError,"Could not find sign in state. Did you navigate to the full sign in URL (it may wrap onto multiple lines)?"):new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process user code. Please try again.")}try{return await Xt?.enable(),me.info("Logged in."),{}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=ke(e);return me.error(`Error enabling extension: ${i}`),me.error(`Stack trace: ${n}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{if(!Xt?.ready)return{loggedIn:!1};let t=Xt?.workspaceManager?.getSyncingProgress();if(!t)return{loggedIn:!0};let e=0,n=0;for(let s of t){if(!s.progress)return{loggedIn:!0};s.progress.newlyTracked&&(me.info(`New folder ${s.folderRoot} sync progress: tracked=${s.progress.trackedFiles}, backlog=${s.progress.backlogSize}`),e+=s.progress.trackedFiles,n+=s.progress.trackedFiles-s.progress.backlogSize)}return{loggedIn:!0,syncPercentage:e>0?Math.floor(n/e*100):100}});on.onRequest("augment/chat",async t=>{if(!Xt?.ready)return me.debug("Not logged in. Please login first."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Not logged in. Please login first.");let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||me.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return me.debug("Completion server is not initialized."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Completion server is not initialized");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),y=Xt.completionServer.createRequestId();me.info(`Chat (${y}) requested`),n&&(me.debug(`Document URI: ${n.uri}`),me.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&me.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(y,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){me.debug(`Chat chunk for ${y}: ${L.text}`);let B={requestId:y,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return me.error(`Error streaming chat: ${ke(A)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Error streaming chat: ${ke(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:y,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Se.ResponseError(Se.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return me.error(`Failed to fetch version: ${f.statusText}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let y=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!y)return new Se.ResponseError(Se.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(y[1]),D=parseInt(y[2]),N=parseInt(y[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Se.ResponseError(Se.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Se.ResponseError(Se.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return me.error(`Error fetching version: ${ke(d)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Failed to fetch plugin version: ${ke(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(me.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){me.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{me.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=Ni.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ng.fire(new _i(n))});on.onDidCloseTextDocument(t=>{me.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Og.fire(new _i(e)))});on.onDidChangeTextDocument(t=>{me.debug(`Document changed: ${t.textDocument.uri}`),me.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){me.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new bi(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new bi(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=Ni.update(e,[s],t.textDocument.version),me.debug(`Updated document (${e.version}): +${e.getText()}`)}Rt.documents.add(e);let i={document:new _i(e),contentChanges:n};qg.fire(i)});on.listen(); /*! Bundled license information: lodash/lodash.js: From e14cbe9fdc33dff1a4b55c0fc858b94f5e833862 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 7 Mar 2025 16:59:00 +0000 Subject: [PATCH 16/41] Augment Vim v0.21.0 --- autoload/augment.vim | 11 +++++++- autoload/augment/client.vim | 12 +++++++++ autoload/augment/version.vim | 2 +- dist/server.js | 52 ++++++++++++++++++------------------ 4 files changed, 49 insertions(+), 28 deletions(-) diff --git a/autoload/augment.vim b/autoload/augment.vim index 8ff329b..5d64ac6 100644 --- a/autoload/augment.vim +++ b/autoload/augment.vim @@ -85,7 +85,16 @@ function! s:RequestCompletion() abort endif let b:_augment_comp_tick = b:changedtick - let uri = 'file://' . expand('%:p') + if has('nvim') + " NOTE(mpauly): On neovim, we use the built-in lsp client which + " requires the uri to be in the format defined by + " vim.uri_from_fname(). There isn't a straightforward way to format + " the uri on vim and it isn't causing any issues, so punting on it for + " now. + let uri = v:lua.vim.uri_from_fname(expand('%:p')) + else + let uri = 'file://' . expand('%:p') + endif let text = join(getline(1, '$'), "\n") " TODO: remove version-- we use it elsewhere but it's not in the spec call augment#client#Client().Request('textDocument/completion', { diff --git a/autoload/augment/client.vim b/autoload/augment/client.vim index 08a8090..1c4240e 100644 --- a/autoload/augment/client.vim +++ b/autoload/augment/client.vim @@ -3,6 +3,9 @@ " Client for interacting with the server process +" Custom LSP response error codes +let s:AUGMENT_ERROR_UNAUTHORIZED = 401 + let s:client = {} " If provided, launch the server from a user-provided command @@ -74,6 +77,11 @@ endfunction " Handle the textDocument/completion response function! s:HandleCompletion(client, params, result, err) abort if a:err isnot v:null + " If the user is not logged in, ignore the error + if a:err.code == s:AUGMENT_ERROR_UNAUTHORIZED + return + endif + call augment#log#Error('Recieved error ' . string(a:err) . ' for completion with params: ' . string(a:params)) return endif @@ -177,6 +185,10 @@ endfunction " Handle the augment/chat response function! s:HandleChat(client, params, result, err) abort if a:err isnot v:null + " NOTE(mpauly): For chat we want to show the error to the user even if + " they're not logged in. This helps disambiguate between a + " network/slow response error and an authentication error. + call augment#log#Error('augment/chat response error: ' . string(a:err)) return endif diff --git a/autoload/augment/version.vim b/autoload/augment/version.vim index 419ff14..83a5c5a 100644 --- a/autoload/augment/version.vim +++ b/autoload/augment/version.vim @@ -2,5 +2,5 @@ " MIT License - See LICENSE.md for full terms function! augment#version#Version() abort - return '0.20.0' + return '0.21.0' endfunction diff --git a/dist/server.js b/dist/server.js index 3bd185e..8e1dde6 100644 --- a/dist/server.js +++ b/dist/server.js @@ -4,12 +4,12 @@ * Licensed for use only with Vim plugin - See LICENSE.md * Modification or reverse engineering prohibited */ -"use strict";var KM=Object.create;var nf=Object.defineProperty;var JM=Object.getOwnPropertyDescriptor;var XM=Object.getOwnPropertyNames;var YM=Object.getPrototypeOf,ZM=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var i_=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of XM(e))!ZM.call(t,s)&&s!==n&&nf(t,s,{get:()=>e[s],enumerable:!(i=JM(e,s))||i.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?KM(YM(t)):{},i_(e||!t||!t.__esModule?nf(n,"default",{value:t,enumerable:!0}):n,t)),eA=t=>i_(nf({},"__esModule",{value:!0}),t);var gc=I(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.thenable=Et.typedArray=Et.stringArray=Et.array=Et.func=Et.error=Et.number=Et.string=Et.boolean=void 0;function nA(t){return t===!0||t===!1}Et.boolean=nA;function c_(t){return typeof t=="string"||t instanceof String}Et.string=c_;function rA(t){return typeof t=="number"||t instanceof Number}Et.number=rA;function iA(t){return t instanceof Error}Et.error=iA;function u_(t){return typeof t=="function"}Et.func=u_;function l_(t){return Array.isArray(t)}Et.array=l_;function oA(t){return l_(t)&&t.every(e=>c_(e))}Et.stringArray=oA;function sA(t,e){return Array.isArray(t)&&t.every(e)}Et.typedArray=sA;function aA(t){return t&&u_(t.then)}Et.thenable=aA});var ho=I(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.stringArray=Vt.array=Vt.func=Vt.error=Vt.number=Vt.string=Vt.boolean=void 0;function cA(t){return t===!0||t===!1}Vt.boolean=cA;function d_(t){return typeof t=="string"||t instanceof String}Vt.string=d_;function uA(t){return typeof t=="number"||t instanceof Number}Vt.number=uA;function lA(t){return t instanceof Error}Vt.error=lA;function dA(t){return typeof t=="function"}Vt.func=dA;function f_(t){return Array.isArray(t)}Vt.array=f_;function fA(t){return f_(t)&&t.every(e=>d_(e))}Vt.stringArray=fA});var Df=I(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Message=ce.NotificationType9=ce.NotificationType8=ce.NotificationType7=ce.NotificationType6=ce.NotificationType5=ce.NotificationType4=ce.NotificationType3=ce.NotificationType2=ce.NotificationType1=ce.NotificationType0=ce.NotificationType=ce.RequestType9=ce.RequestType8=ce.RequestType7=ce.RequestType6=ce.RequestType5=ce.RequestType4=ce.RequestType3=ce.RequestType2=ce.RequestType1=ce.RequestType=ce.RequestType0=ce.AbstractMessageSignature=ce.ParameterStructures=ce.ResponseError=ce.ErrorCodes=void 0;var qi=ho(),of;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(of||(ce.ErrorCodes=of={}));var sf=class t extends Error{constructor(e,n,i){super(n),this.code=qi.number(e)?e:of.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ce.ResponseError=sf;var fn=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ce.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var lt=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ce.AbstractMessageSignature=lt;var af=class extends lt{constructor(e){super(e,0)}};ce.RequestType0=af;var cf=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType=cf;var uf=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType1=uf;var lf=class extends lt{constructor(e){super(e,2)}};ce.RequestType2=lf;var df=class extends lt{constructor(e){super(e,3)}};ce.RequestType3=df;var ff=class extends lt{constructor(e){super(e,4)}};ce.RequestType4=ff;var hf=class extends lt{constructor(e){super(e,5)}};ce.RequestType5=hf;var gf=class extends lt{constructor(e){super(e,6)}};ce.RequestType6=gf;var pf=class extends lt{constructor(e){super(e,7)}};ce.RequestType7=pf;var mf=class extends lt{constructor(e){super(e,8)}};ce.RequestType8=mf;var bf=class extends lt{constructor(e){super(e,9)}};ce.RequestType9=bf;var _f=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType=_f;var vf=class extends lt{constructor(e){super(e,0)}};ce.NotificationType0=vf;var yf=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType1=yf;var wf=class extends lt{constructor(e){super(e,2)}};ce.NotificationType2=wf;var Sf=class extends lt{constructor(e){super(e,3)}};ce.NotificationType3=Sf;var xf=class extends lt{constructor(e){super(e,4)}};ce.NotificationType4=xf;var Pf=class extends lt{constructor(e){super(e,5)}};ce.NotificationType5=Pf;var Cf=class extends lt{constructor(e){super(e,6)}};ce.NotificationType6=Cf;var kf=class extends lt{constructor(e){super(e,7)}};ce.NotificationType7=kf;var Tf=class extends lt{constructor(e){super(e,8)}};ce.NotificationType8=Tf;var Rf=class extends lt{constructor(e){super(e,9)}};ce.NotificationType9=Rf;var h_;(function(t){function e(s){let c=s;return c&&qi.string(c.method)&&(qi.string(c.id)||qi.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&qi.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(qi.string(c.id)||qi.number(c.id)||c.id===null)}t.isResponse=i})(h_||(ce.Message=h_={}))});var Ef=I(ni=>{"use strict";var g_;Object.defineProperty(ni,"__esModule",{value:!0});ni.LRUCache=ni.LinkedMap=ni.Touch=void 0;var Gt;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Gt||(ni.Touch=Gt={}));var pc=class{constructor(){this[g_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Gt.None){let i=this._map.get(e);if(i)return n!==Gt.None&&this.touch(i,n),i.value}set(e,n,i=Gt.None){let s=this._map.get(e);if(s)s.value=n,i!==Gt.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Gt.None:this.addItemLast(s);break;case Gt.First:this.addItemFirst(s);break;case Gt.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(g_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Gt.First&&n!==Gt.Last)){if(n===Gt.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Gt.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};ni.LinkedMap=pc;var Ff=class extends pc{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Gt.AsNew){return super.get(e,n)}peek(e){return super.get(e,Gt.None)}set(e,n){return super.set(e,n,Gt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ni.LRUCache=Ff});var m_=I(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});mc.Disposable=void 0;var p_;(function(t){function e(n){return{dispose:n}}t.create=e})(p_||(mc.Disposable=p_={}))});var ri=I(Af=>{"use strict";Object.defineProperty(Af,"__esModule",{value:!0});var If;function Mf(){if(If===void 0)throw new Error("No runtime abstraction layer installed");return If}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");If=n}t.install=e})(Mf||(Mf={}));Af.default=Mf});var po=I(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.Emitter=go.Event=void 0;var hA=ri(),b_;(function(t){let e={dispose(){}};t.None=function(){return e}})(b_||(go.Event=b_={}));var Nf=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Nf),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};go.Emitter=bc;bc._noop=function(){}});var yc=I(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.CancellationTokenSource=mo.CancellationToken=void 0;var gA=ri(),pA=ho(),qf=po(),_c;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:qf.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:qf.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||pA.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(_c||(mo.CancellationToken=_c={}));var mA=Object.freeze(function(t,e){let n=(0,gA.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),vc=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?mA:(this._emitter||(this._emitter=new qf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Of=class{get token(){return this._token||(this._token=new vc),this._token}cancel(){this._token?this._token.cancel():this._token=_c.Cancelled}dispose(){this._token?this._token instanceof vc&&this._token.dispose():this._token=_c.None}};mo.CancellationTokenSource=Of});var __=I(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.SharedArrayReceiverStrategy=bo.SharedArraySenderStrategy=void 0;var bA=yc(),Cs;(function(t){t.Continue=0,t.Cancelled=1})(Cs||(Cs={}));var Lf=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=Cs.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,Cs.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};bo.SharedArraySenderStrategy=Lf;var Bf=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===Cs.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Uf=class{constructor(e){this.token=new Bf(e)}cancel(){}dispose(){}},$f=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new bA.CancellationTokenSource:new Uf(n)}};bo.SharedArrayReceiverStrategy=$f});var jf=I(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});wc.Semaphore=void 0;var _A=ri(),Wf=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,_A.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};wc.Semaphore=Wf});var y_=I(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.ReadableStreamMessageReader=ii.AbstractMessageReader=ii.MessageReader=void 0;var Hf=ri(),_o=ho(),zf=po(),vA=jf(),v_;(function(t){function e(n){let i=n;return i&&_o.func(i.listen)&&_o.func(i.dispose)&&_o.func(i.onError)&&_o.func(i.onClose)&&_o.func(i.onPartialMessage)}t.is=e})(v_||(ii.MessageReader=v_={}));var Sc=class{constructor(){this.errorEmitter=new zf.Emitter,this.closeEmitter=new zf.Emitter,this.partialMessageEmitter=new zf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${_o.string(e.message)?e.message:"unknown"}`)}};ii.AbstractMessageReader=Sc;var Vf;(function(t){function e(n){let i,s,c,u=new Map,d,f=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let m of n.contentDecoders)u.set(m.name,m);if(n.contentTypeDecoder!==void 0&&(d=n.contentTypeDecoder,f.set(d.name,d)),n.contentTypeDecoders!==void 0)for(let m of n.contentTypeDecoders)f.set(m.name,m)}return d===void 0&&(d=(0,Hf.default)().applicationJson.decoder,f.set(d.name,d)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:d,contentTypeDecoders:f}}t.fromOptions=e})(Vf||(Vf={}));var Gf=class extends Sc{constructor(e,n){super(),this.readable=e,this.options=Vf.fromOptions(n),this.buffer=(0,Hf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new vA.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. -${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,Hf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};ii.ReadableStreamMessageReader=Gf});var C_=I(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.WriteableStreamMessageWriter=oi.AbstractMessageWriter=oi.MessageWriter=void 0;var w_=ri(),ks=ho(),yA=jf(),S_=po(),wA="Content-Length: ",x_=`\r -`,P_;(function(t){function e(n){let i=n;return i&&ks.func(i.dispose)&&ks.func(i.onClose)&&ks.func(i.onError)&&ks.func(i.write)}t.is=e})(P_||(oi.MessageWriter=P_={}));var xc=class{constructor(){this.errorEmitter=new S_.Emitter,this.closeEmitter=new S_.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${ks.string(e.message)?e.message:"unknown"}`)}};oi.AbstractMessageWriter=xc;var Qf;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,w_.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,w_.default)().applicationJson.encoder}}t.fromOptions=e})(Qf||(Qf={}));var Kf=class extends xc{constructor(e,n){super(),this.writable=e,this.options=Qf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new yA.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let s=[];return s.push(wA,i.byteLength.toString(),x_),s.push(x_),this.doWrite(e,s,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(s){return this.handleError(s,e),Promise.reject(s)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};oi.WriteableStreamMessageWriter=Kf});var k_=I(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.AbstractMessageBuffer=void 0;var SA=13,xA=10,PA=`\r -`,Jf=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let n=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let n=0,i=0,s=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};Pc.AbstractMessageBuffer=Jf});var E_=I(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.createMessageConnection=Ce.ConnectionOptions=Ce.MessageStrategy=Ce.CancellationStrategy=Ce.CancellationSenderStrategy=Ce.CancellationReceiverStrategy=Ce.RequestCancellationReceiverStrategy=Ce.IdCancellationReceiverStrategy=Ce.ConnectionStrategy=Ce.ConnectionError=Ce.ConnectionErrors=Ce.LogTraceNotification=Ce.SetTraceNotification=Ce.TraceFormat=Ce.TraceValues=Ce.Trace=Ce.NullLogger=Ce.ProgressType=Ce.ProgressToken=void 0;var T_=ri(),_t=ho(),he=Df(),R_=Ef(),Ts=po(),Xf=yc(),Fs;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(Fs||(Fs={}));var Yf;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(Yf||(Ce.ProgressToken=Yf={}));var Rs;(function(t){t.type=new he.NotificationType("$/progress")})(Rs||(Rs={}));var Zf=class{constructor(){}};Ce.ProgressType=Zf;var eh;(function(t){function e(n){return _t.func(n)}t.is=e})(eh||(eh={}));Ce.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(Ce.Trace=He={}));var D_;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(D_||(Ce.TraceValues=D_={}));(function(t){function e(i){if(!_t.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(Ce.Trace=He={}));var Tn;(function(t){t.Text="text",t.JSON="json"})(Tn||(Ce.TraceFormat=Tn={}));(function(t){function e(n){return _t.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Tn||(Ce.TraceFormat=Tn={}));var th;(function(t){t.type=new he.NotificationType("$/setTrace")})(th||(Ce.SetTraceNotification=th={}));var Cc;(function(t){t.type=new he.NotificationType("$/logTrace")})(Cc||(Ce.LogTraceNotification=Cc={}));var Ds;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(Ds||(Ce.ConnectionErrors=Ds={}));var vo=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Ce.ConnectionError=vo;var nh;(function(t){function e(n){let i=n;return i&&_t.func(i.cancelUndispatched)}t.is=e})(nh||(Ce.ConnectionStrategy=nh={}));var kc;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(kc||(Ce.IdCancellationReceiverStrategy=kc={}));var rh;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(rh||(Ce.RequestCancellationReceiverStrategy=rh={}));var Tc;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new Xf.CancellationTokenSource}});function e(n){return kc.is(n)||rh.is(n)}t.is=e})(Tc||(Ce.CancellationReceiverStrategy=Tc={}));var Rc;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Fs.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&_t.func(i.sendCancellation)&&_t.func(i.cleanup)}t.is=e})(Rc||(Ce.CancellationSenderStrategy=Rc={}));var Dc;(function(t){t.Message=Object.freeze({receiver:Tc.Message,sender:Rc.Message});function e(n){let i=n;return i&&Tc.is(i.receiver)&&Rc.is(i.sender)}t.is=e})(Dc||(Ce.CancellationStrategy=Dc={}));var Fc;(function(t){function e(n){let i=n;return i&&_t.func(i.handleMessage)}t.is=e})(Fc||(Ce.MessageStrategy=Fc={}));var F_;(function(t){function e(n){let i=n;return i&&(Dc.is(i.cancellationStrategy)||nh.is(i.connectionStrategy)||Fc.is(i.messageStrategy))}t.is=e})(F_||(Ce.ConnectionOptions=F_={}));var Zn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Zn||(Zn={}));function CA(t,e,n,i){let s=n!==void 0?n:Ce.NullLogger,c=0,u=0,d=0,f="2.0",m,y=new Map,x,D=new Map,N=new Map,A,L=new R_.LinkedMap,B=new Map,K=new Set,F=new Map,P=He.Off,U=Tn.Text,te,ve=Zn.New,Be=new Ts.Emitter,Je=new Ts.Emitter,Dt=new Ts.Emitter,xe=new Ts.Emitter,X=new Ts.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Dc.Message;function se(C){if(C===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+C.toString()}function re(C){return C===null?"res-unknown-"+(++d).toString():"res-"+C.toString()}function De(){return"not-"+(++u).toString()}function ge(C,H){he.Message.isRequest(H)?C.set(se(H.id),H):he.Message.isResponse(H)?C.set(re(H.id),H):C.set(De(),H)}function pe(C){}function St(){return ve===Zn.Listening}function We(){return ve===Zn.Closed}function je(){return ve===Zn.Disposed}function bn(){(ve===Zn.New||ve===Zn.Listening)&&(ve=Zn.Closed,Je.fire(void 0))}function yr(C){Be.fire([C,void 0,void 0])}function Vn(C){Be.fire(C)}t.onClose(bn),t.onError(yr),e.onClose(bn),e.onError(Vn);function ur(){A||L.size===0||(A=(0,T_.default)().timer.setImmediate(()=>{A=void 0,lr()}))}function xi(C){he.Message.isRequest(C)?Qi(C):he.Message.isNotification(C)?Sr(C):he.Message.isResponse(C)?wr(C):xr(C)}function lr(){if(L.size===0)return;let C=L.shift();try{let H=i?.messageStrategy;Fc.is(H)?H.handleMessage(C,xi):xi(C)}finally{ur()}}let dr=C=>{try{if(he.Message.isNotification(C)&&C.method===Fs.type.method){let H=C.params.id,Z=se(H),ie=L.get(Z);if(he.Message.isRequest(ie)){let Le=i?.connectionStrategy,Ge=Le&&Le.cancelUndispatched?Le.cancelUndispatched(ie,pe):void 0;if(Ge&&(Ge.error!==void 0||Ge.result!==void 0)){L.delete(Z),F.delete(H),Ge.id=ie.id,Bt(Ge,C.method,Date.now()),e.write(Ge).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=F.get(H);if(Ue!==void 0){Ue.cancel(),zr(C);return}else K.add(H)}ge(L,C)}finally{ur()}};function Qi(C){if(je())return;function H(Fe,Qe,Ne){let ct={jsonrpc:f,id:C.id};Fe instanceof he.ResponseError?ct.error=Fe.toJson():ct.result=Fe===void 0?null:Fe,Bt(ct,Qe,Ne),e.write(ct).catch(()=>s.error("Sending response failed."))}function Z(Fe,Qe,Ne){let ct={jsonrpc:f,id:C.id,error:Fe.toJson()};Bt(ct,Qe,Ne),e.write(ct).catch(()=>s.error("Sending response failed."))}function ie(Fe,Qe,Ne){Fe===void 0&&(Fe=null);let ct={jsonrpc:f,id:C.id,result:Fe};Bt(ct,Qe,Ne),e.write(ct).catch(()=>s.error("Sending response failed."))}Pi(C);let Ue=y.get(C.method),Le,Ge;Ue&&(Le=Ue.type,Ge=Ue.handler);let et=Date.now();if(Ge||m){let Fe=C.id??String(Date.now()),Qe=kc.is(z.receiver)?z.receiver.createCancellationTokenSource(Fe):z.receiver.createCancellationTokenSource(C);C.id!==null&&K.has(C.id)&&Qe.cancel(),C.id!==null&&F.set(Fe,Qe);try{let Ne;if(Ge)if(C.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines ${Le.numberOfParams} params but received none.`),C.method,et);return}Ne=Ge(Qe.token)}else if(Array.isArray(C.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by name but received parameters by position`),C.method,et);return}Ne=Ge(...C.params,Qe.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by position but received parameters by name`),C.method,et);return}Ne=Ge(C.params,Qe.token)}else m&&(Ne=m(C.method,C.params,Qe.token));let ct=Ne;Ne?ct.then?ct.then(Ft=>{F.delete(Fe),H(Ft,C.method,et)},Ft=>{F.delete(Fe),Ft instanceof he.ResponseError?Z(Ft,C.method,et):Ft&&_t.string(Ft.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ft.message}`),C.method,et):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,et)}):(F.delete(Fe),H(Ne,C.method,et)):(F.delete(Fe),ie(Ne,C.method,et))}catch(Ne){F.delete(Fe),Ne instanceof he.ResponseError?H(Ne,C.method,et):Ne&&_t.string(Ne.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ne.message}`),C.method,et):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,et)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${C.method}`),C.method,et)}function wr(C){if(!je())if(C.id===null)C.error?s.error(`Received response message without id: Error is: -${JSON.stringify(C.error,void 0,4)}`):s.error("Received response message without id. No further error information provided.");else{let H=C.id,Z=B.get(H);if(hr(C,Z),Z!==void 0){B.delete(H);try{if(C.error){let ie=C.error;Z.reject(new he.ResponseError(ie.code,ie.message,ie.data))}else if(C.result!==void 0)Z.resolve(C.result);else throw new Error("Should never happen.")}catch(ie){ie.message?s.error(`Response handler '${Z.method}' failed with message: ${ie.message}`):s.error(`Response handler '${Z.method}' failed unexpectedly.`)}}}}function Sr(C){if(je())return;let H,Z;if(C.method===Fs.type.method){let ie=C.params.id;K.delete(ie),zr(C);return}else{let ie=D.get(C.method);ie&&(Z=ie.handler,H=ie.type)}if(Z||x)try{if(zr(C),Z)if(C.params===void 0)H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received none.`),Z();else if(Array.isArray(C.params)){let ie=C.params;C.method===Rs.type.method&&ie.length===2&&Yf.is(ie[0])?Z({token:ie[0],value:ie[1]}):(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines parameters by name but received parameters by position`),H.numberOfParams!==C.params.length&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received ${ie.length} arguments`)),Z(...ie))}else H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&s.error(`Notification ${C.method} defines parameters by position but received parameters by name`),Z(C.params);else x&&x(C.method,C.params)}catch(ie){ie.message?s.error(`Notification handler '${C.method}' failed with message: ${ie.message}`):s.error(`Notification handler '${C.method}' failed unexpectedly.`)}else Dt.fire(C)}function xr(C){if(!C){s.error("Received empty message.");return}s.error(`Received message which is neither a response nor a notification message: +"use strict";var KM=Object.create;var tf=Object.defineProperty;var JM=Object.getOwnPropertyDescriptor;var XM=Object.getOwnPropertyNames;var YM=Object.getPrototypeOf,ZM=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var r_=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of XM(e))!ZM.call(t,s)&&s!==n&&tf(t,s,{get:()=>e[s],enumerable:!(i=JM(e,s))||i.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?KM(YM(t)):{},r_(e||!t||!t.__esModule?tf(n,"default",{value:t,enumerable:!0}):n,t)),eA=t=>r_(tf({},"__esModule",{value:!0}),t);var hc=I(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.thenable=Et.typedArray=Et.stringArray=Et.array=Et.func=Et.error=Et.number=Et.string=Et.boolean=void 0;function nA(t){return t===!0||t===!1}Et.boolean=nA;function a_(t){return typeof t=="string"||t instanceof String}Et.string=a_;function rA(t){return typeof t=="number"||t instanceof Number}Et.number=rA;function iA(t){return t instanceof Error}Et.error=iA;function c_(t){return typeof t=="function"}Et.func=c_;function u_(t){return Array.isArray(t)}Et.array=u_;function oA(t){return u_(t)&&t.every(e=>a_(e))}Et.stringArray=oA;function sA(t,e){return Array.isArray(t)&&t.every(e)}Et.typedArray=sA;function aA(t){return t&&c_(t.then)}Et.thenable=aA});var ho=I(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.stringArray=Vt.array=Vt.func=Vt.error=Vt.number=Vt.string=Vt.boolean=void 0;function cA(t){return t===!0||t===!1}Vt.boolean=cA;function l_(t){return typeof t=="string"||t instanceof String}Vt.string=l_;function uA(t){return typeof t=="number"||t instanceof Number}Vt.number=uA;function lA(t){return t instanceof Error}Vt.error=lA;function dA(t){return typeof t=="function"}Vt.func=dA;function d_(t){return Array.isArray(t)}Vt.array=d_;function fA(t){return d_(t)&&t.every(e=>l_(e))}Vt.stringArray=fA});var Rf=I(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Message=ce.NotificationType9=ce.NotificationType8=ce.NotificationType7=ce.NotificationType6=ce.NotificationType5=ce.NotificationType4=ce.NotificationType3=ce.NotificationType2=ce.NotificationType1=ce.NotificationType0=ce.NotificationType=ce.RequestType9=ce.RequestType8=ce.RequestType7=ce.RequestType6=ce.RequestType5=ce.RequestType4=ce.RequestType3=ce.RequestType2=ce.RequestType1=ce.RequestType=ce.RequestType0=ce.AbstractMessageSignature=ce.ParameterStructures=ce.ResponseError=ce.ErrorCodes=void 0;var qi=ho(),rf;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(rf||(ce.ErrorCodes=rf={}));var of=class t extends Error{constructor(e,n,i){super(n),this.code=qi.number(e)?e:rf.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};ce.ResponseError=of;var fn=class t{constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};ce.ParameterStructures=fn;fn.auto=new fn("auto");fn.byPosition=new fn("byPosition");fn.byName=new fn("byName");var lt=class{constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return fn.auto}};ce.AbstractMessageSignature=lt;var sf=class extends lt{constructor(e){super(e,0)}};ce.RequestType0=sf;var af=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType=af;var cf=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.RequestType1=cf;var uf=class extends lt{constructor(e){super(e,2)}};ce.RequestType2=uf;var lf=class extends lt{constructor(e){super(e,3)}};ce.RequestType3=lf;var df=class extends lt{constructor(e){super(e,4)}};ce.RequestType4=df;var ff=class extends lt{constructor(e){super(e,5)}};ce.RequestType5=ff;var hf=class extends lt{constructor(e){super(e,6)}};ce.RequestType6=hf;var gf=class extends lt{constructor(e){super(e,7)}};ce.RequestType7=gf;var pf=class extends lt{constructor(e){super(e,8)}};ce.RequestType8=pf;var mf=class extends lt{constructor(e){super(e,9)}};ce.RequestType9=mf;var bf=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType=bf;var _f=class extends lt{constructor(e){super(e,0)}};ce.NotificationType0=_f;var vf=class extends lt{constructor(e,n=fn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};ce.NotificationType1=vf;var yf=class extends lt{constructor(e){super(e,2)}};ce.NotificationType2=yf;var wf=class extends lt{constructor(e){super(e,3)}};ce.NotificationType3=wf;var Sf=class extends lt{constructor(e){super(e,4)}};ce.NotificationType4=Sf;var xf=class extends lt{constructor(e){super(e,5)}};ce.NotificationType5=xf;var Pf=class extends lt{constructor(e){super(e,6)}};ce.NotificationType6=Pf;var Cf=class extends lt{constructor(e){super(e,7)}};ce.NotificationType7=Cf;var kf=class extends lt{constructor(e){super(e,8)}};ce.NotificationType8=kf;var Tf=class extends lt{constructor(e){super(e,9)}};ce.NotificationType9=Tf;var f_;(function(t){function e(s){let c=s;return c&&qi.string(c.method)&&(qi.string(c.id)||qi.number(c.id))}t.isRequest=e;function n(s){let c=s;return c&&qi.string(c.method)&&s.id===void 0}t.isNotification=n;function i(s){let c=s;return c&&(c.result!==void 0||!!c.error)&&(qi.string(c.id)||qi.number(c.id)||c.id===null)}t.isResponse=i})(f_||(ce.Message=f_={}))});var Ff=I(ni=>{"use strict";var h_;Object.defineProperty(ni,"__esModule",{value:!0});ni.LRUCache=ni.LinkedMap=ni.Touch=void 0;var Gt;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Gt||(ni.Touch=Gt={}));var gc=class{constructor(){this[h_]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,n=Gt.None){let i=this._map.get(e);if(i)return n!==Gt.None&&this.touch(i,n),i.value}set(e,n,i=Gt.None){let s=this._map.get(e);if(s)s.value=n,i!==Gt.None&&this.touch(s,i);else{switch(s={key:e,value:n,next:void 0,previous:void 0},i){case Gt.None:this.addItemLast(s);break;case Gt.First:this.addItemFirst(s);break;case Gt.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,s=this._head;for(;s;){if(n?e.bind(n)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.key,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:n.value,done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let s={value:[n.key,n.value],done:!1};return n=n.next,s}else return{value:void 0,done:!0}}};return i}[(h_=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Gt.First&&n!==Gt.Last)){if(n===Gt.First){if(e===this._head)return;let i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Gt.Last){if(e===this._tail)return;let i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};ni.LinkedMap=gc;var Df=class extends gc{constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Gt.AsNew){return super.get(e,n)}peek(e){return super.get(e,Gt.None)}set(e,n){return super.set(e,n,Gt.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};ni.LRUCache=Df});var p_=I(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});pc.Disposable=void 0;var g_;(function(t){function e(n){return{dispose:n}}t.create=e})(g_||(pc.Disposable=g_={}))});var ri=I(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Ef;function If(){if(Ef===void 0)throw new Error("No runtime abstraction layer installed");return Ef}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ef=n}t.install=e})(If||(If={}));Mf.default=If});var po=I(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.Emitter=go.Event=void 0;var hA=ri(),m_;(function(t){let e={dispose(){}};t.None=function(){return e}})(m_||(go.Event=m_={}));var Af=class{add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let s=0,c=this._callbacks.length;s{this._callbacks||(this._callbacks=new Af),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};go.Emitter=mc;mc._noop=function(){}});var vc=I(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.CancellationTokenSource=mo.CancellationToken=void 0;var gA=ri(),pA=ho(),Nf=po(),bc;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Nf.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Nf.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||pA.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(bc||(mo.CancellationToken=bc={}));var mA=Object.freeze(function(t,e){let n=(0,gA.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),_c=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?mA:(this._emitter||(this._emitter=new Nf.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},qf=class{get token(){return this._token||(this._token=new _c),this._token}cancel(){this._token?this._token.cancel():this._token=bc.Cancelled}dispose(){this._token?this._token instanceof _c&&this._token.dispose():this._token=bc.None}};mo.CancellationTokenSource=qf});var b_=I(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.SharedArrayReceiverStrategy=bo.SharedArraySenderStrategy=void 0;var bA=vc(),ks;(function(t){t.Continue=0,t.Cancelled=1})(ks||(ks={}));var Of=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=ks.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let s=new Int32Array(i,0,1);Atomics.store(s,0,ks.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};bo.SharedArraySenderStrategy=Of;var Lf=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===ks.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Bf=class{constructor(e){this.token=new Lf(e)}cancel(){}dispose(){}},Uf=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new bA.CancellationTokenSource:new Bf(n)}};bo.SharedArrayReceiverStrategy=Uf});var Wf=I(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});yc.Semaphore=void 0;var _A=ri(),$f=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,_A.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};yc.Semaphore=$f});var v_=I(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.ReadableStreamMessageReader=ii.AbstractMessageReader=ii.MessageReader=void 0;var zf=ri(),_o=ho(),jf=po(),vA=Wf(),__;(function(t){function e(n){let i=n;return i&&_o.func(i.listen)&&_o.func(i.dispose)&&_o.func(i.onError)&&_o.func(i.onClose)&&_o.func(i.onPartialMessage)}t.is=e})(__||(ii.MessageReader=__={}));var wc=class{constructor(){this.errorEmitter=new jf.Emitter,this.closeEmitter=new jf.Emitter,this.partialMessageEmitter=new jf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${_o.string(e.message)?e.message:"unknown"}`)}};ii.AbstractMessageReader=wc;var Hf;(function(t){function e(n){let i,s,c,u=new Map,d,f=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(c=n.contentDecoder,u.set(c.name,c)),n.contentDecoders!==void 0)for(let m of n.contentDecoders)u.set(m.name,m);if(n.contentTypeDecoder!==void 0&&(d=n.contentTypeDecoder,f.set(d.name,d)),n.contentTypeDecoders!==void 0)for(let m of n.contentTypeDecoders)f.set(m.name,m)}return d===void 0&&(d=(0,zf.default)().applicationJson.decoder,f.set(d.name,d)),{charset:i,contentDecoder:c,contentDecoders:u,contentTypeDecoder:d,contentTypeDecoders:f}}t.fromOptions=e})(Hf||(Hf={}));var Vf=class extends wc{constructor(e,n){super(),this.readable=e,this.options=Hf.fromOptions(n),this.buffer=(0,zf.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new vA.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let s=i.get("content-length");if(!s){this.fireError(new Error(`Header must provide a Content-Length property. +${JSON.stringify(Object.fromEntries(i))}`));return}let c=parseInt(s);if(isNaN(c)){this.fireError(new Error(`Content-Length value must be a number. Got ${s}`));return}this.nextMessageLength=c}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,s=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(s)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,zf.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};ii.ReadableStreamMessageReader=Vf});var P_=I(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.WriteableStreamMessageWriter=oi.AbstractMessageWriter=oi.MessageWriter=void 0;var y_=ri(),Ts=ho(),yA=Wf(),w_=po(),wA="Content-Length: ",S_=`\r +`,x_;(function(t){function e(n){let i=n;return i&&Ts.func(i.dispose)&&Ts.func(i.onClose)&&Ts.func(i.onError)&&Ts.func(i.write)}t.is=e})(x_||(oi.MessageWriter=x_={}));var Sc=class{constructor(){this.errorEmitter=new w_.Emitter,this.closeEmitter=new w_.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${Ts.string(e.message)?e.message:"unknown"}`)}};oi.AbstractMessageWriter=Sc;var Gf;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,y_.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,y_.default)().applicationJson.encoder}}t.fromOptions=e})(Gf||(Gf={}));var Qf=class extends Sc{constructor(e,n){super(),this.writable=e,this.options=Gf.fromOptions(n),this.errorCount=0,this.writeSemaphore=new yA.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let s=[];return s.push(wA,i.byteLength.toString(),S_),s.push(S_),this.doWrite(e,s,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(s){return this.handleError(s,e),Promise.reject(s)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};oi.WriteableStreamMessageWriter=Qf});var C_=I(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.AbstractMessageBuffer=void 0;var SA=13,xA=10,PA=`\r +`,Kf=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let n=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let n=0,i=0,s=0,c=0;e:for(;ithis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let c=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(c)}if(this._chunks[0].byteLength>e){let c=this._chunks[0],u=this.asNative(c,e);return this._chunks[0]=c.slice(e),this._totalLength-=e,u}let n=this.allocNative(e),i=0,s=0;for(;e>0;){let c=this._chunks[s];if(c.byteLength>e){let u=c.slice(0,e);n.set(u,i),i+=e,this._chunks[s]=c.slice(e),this._totalLength-=e,e-=e}else n.set(c,i),i+=c.byteLength,this._chunks.shift(),this._totalLength-=c.byteLength,e-=c.byteLength}return n}};xc.AbstractMessageBuffer=Kf});var F_=I(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.createMessageConnection=xe.ConnectionOptions=xe.MessageStrategy=xe.CancellationStrategy=xe.CancellationSenderStrategy=xe.CancellationReceiverStrategy=xe.RequestCancellationReceiverStrategy=xe.IdCancellationReceiverStrategy=xe.ConnectionStrategy=xe.ConnectionError=xe.ConnectionErrors=xe.LogTraceNotification=xe.SetTraceNotification=xe.TraceFormat=xe.TraceValues=xe.Trace=xe.NullLogger=xe.ProgressType=xe.ProgressToken=void 0;var k_=ri(),_t=ho(),he=Rf(),T_=Ff(),Rs=po(),Jf=vc(),Es;(function(t){t.type=new he.NotificationType("$/cancelRequest")})(Es||(Es={}));var Xf;(function(t){function e(n){return typeof n=="string"||typeof n=="number"}t.is=e})(Xf||(xe.ProgressToken=Xf={}));var Ds;(function(t){t.type=new he.NotificationType("$/progress")})(Ds||(Ds={}));var Yf=class{constructor(){}};xe.ProgressType=Yf;var Zf;(function(t){function e(n){return _t.func(n)}t.is=e})(Zf||(Zf={}));xe.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var He;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(He||(xe.Trace=He={}));var R_;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(R_||(xe.TraceValues=R_={}));(function(t){function e(i){if(!_t.string(i))return t.Off;switch(i=i.toLowerCase(),i){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}t.fromString=e;function n(i){switch(i){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}t.toString=n})(He||(xe.Trace=He={}));var Tn;(function(t){t.Text="text",t.JSON="json"})(Tn||(xe.TraceFormat=Tn={}));(function(t){function e(n){return _t.string(n)?(n=n.toLowerCase(),n==="json"?t.JSON:t.Text):t.Text}t.fromString=e})(Tn||(xe.TraceFormat=Tn={}));var eh;(function(t){t.type=new he.NotificationType("$/setTrace")})(eh||(xe.SetTraceNotification=eh={}));var Pc;(function(t){t.type=new he.NotificationType("$/logTrace")})(Pc||(xe.LogTraceNotification=Pc={}));var Fs;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})(Fs||(xe.ConnectionErrors=Fs={}));var vo=class t extends Error{constructor(e,n){super(n),this.code=e,Object.setPrototypeOf(this,t.prototype)}};xe.ConnectionError=vo;var th;(function(t){function e(n){let i=n;return i&&_t.func(i.cancelUndispatched)}t.is=e})(th||(xe.ConnectionStrategy=th={}));var Cc;(function(t){function e(n){let i=n;return i&&(i.kind===void 0||i.kind==="id")&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(Cc||(xe.IdCancellationReceiverStrategy=Cc={}));var nh;(function(t){function e(n){let i=n;return i&&i.kind==="request"&&_t.func(i.createCancellationTokenSource)&&(i.dispose===void 0||_t.func(i.dispose))}t.is=e})(nh||(xe.RequestCancellationReceiverStrategy=nh={}));var kc;(function(t){t.Message=Object.freeze({createCancellationTokenSource(n){return new Jf.CancellationTokenSource}});function e(n){return Cc.is(n)||nh.is(n)}t.is=e})(kc||(xe.CancellationReceiverStrategy=kc={}));var Tc;(function(t){t.Message=Object.freeze({sendCancellation(n,i){return n.sendNotification(Es.type,{id:i})},cleanup(n){}});function e(n){let i=n;return i&&_t.func(i.sendCancellation)&&_t.func(i.cleanup)}t.is=e})(Tc||(xe.CancellationSenderStrategy=Tc={}));var Rc;(function(t){t.Message=Object.freeze({receiver:kc.Message,sender:Tc.Message});function e(n){let i=n;return i&&kc.is(i.receiver)&&Tc.is(i.sender)}t.is=e})(Rc||(xe.CancellationStrategy=Rc={}));var Dc;(function(t){function e(n){let i=n;return i&&_t.func(i.handleMessage)}t.is=e})(Dc||(xe.MessageStrategy=Dc={}));var D_;(function(t){function e(n){let i=n;return i&&(Rc.is(i.cancellationStrategy)||th.is(i.connectionStrategy)||Dc.is(i.messageStrategy))}t.is=e})(D_||(xe.ConnectionOptions=D_={}));var Zn;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Zn||(Zn={}));function CA(t,e,n,i){let s=n!==void 0?n:xe.NullLogger,c=0,u=0,d=0,f="2.0",m,y=new Map,x,D=new Map,N=new Map,A,L=new T_.LinkedMap,B=new Map,K=new Set,F=new Map,P=He.Off,U=Tn.Text,te,_e=Zn.New,Be=new Rs.Emitter,Je=new Rs.Emitter,Dt=new Rs.Emitter,we=new Rs.Emitter,X=new Rs.Emitter,z=i&&i.cancellationStrategy?i.cancellationStrategy:Rc.Message;function se(C){if(C===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+C.toString()}function re(C){return C===null?"res-unknown-"+(++d).toString():"res-"+C.toString()}function De(){return"not-"+(++u).toString()}function ge(C,H){he.Message.isRequest(H)?C.set(se(H.id),H):he.Message.isResponse(H)?C.set(re(H.id),H):C.set(De(),H)}function pe(C){}function St(){return _e===Zn.Listening}function We(){return _e===Zn.Closed}function je(){return _e===Zn.Disposed}function bn(){(_e===Zn.New||_e===Zn.Listening)&&(_e=Zn.Closed,Je.fire(void 0))}function yr(C){Be.fire([C,void 0,void 0])}function Vn(C){Be.fire(C)}t.onClose(bn),t.onError(yr),e.onClose(bn),e.onError(Vn);function ur(){A||L.size===0||(A=(0,k_.default)().timer.setImmediate(()=>{A=void 0,lr()}))}function xi(C){he.Message.isRequest(C)?Qi(C):he.Message.isNotification(C)?Sr(C):he.Message.isResponse(C)?wr(C):xr(C)}function lr(){if(L.size===0)return;let C=L.shift();try{let H=i?.messageStrategy;Dc.is(H)?H.handleMessage(C,xi):xi(C)}finally{ur()}}let dr=C=>{try{if(he.Message.isNotification(C)&&C.method===Es.type.method){let H=C.params.id,Z=se(H),ie=L.get(Z);if(he.Message.isRequest(ie)){let Le=i?.connectionStrategy,Ge=Le&&Le.cancelUndispatched?Le.cancelUndispatched(ie,pe):void 0;if(Ge&&(Ge.error!==void 0||Ge.result!==void 0)){L.delete(Z),F.delete(H),Ge.id=ie.id,Bt(Ge,C.method,Date.now()),e.write(Ge).catch(()=>s.error("Sending response for canceled message failed."));return}}let Ue=F.get(H);if(Ue!==void 0){Ue.cancel(),zr(C);return}else K.add(H)}ge(L,C)}finally{ur()}};function Qi(C){if(je())return;function H(Fe,Qe,Ne){let ct={jsonrpc:f,id:C.id};Fe instanceof he.ResponseError?ct.error=Fe.toJson():ct.result=Fe===void 0?null:Fe,Bt(ct,Qe,Ne),e.write(ct).catch(()=>s.error("Sending response failed."))}function Z(Fe,Qe,Ne){let ct={jsonrpc:f,id:C.id,error:Fe.toJson()};Bt(ct,Qe,Ne),e.write(ct).catch(()=>s.error("Sending response failed."))}function ie(Fe,Qe,Ne){Fe===void 0&&(Fe=null);let ct={jsonrpc:f,id:C.id,result:Fe};Bt(ct,Qe,Ne),e.write(ct).catch(()=>s.error("Sending response failed."))}Pi(C);let Ue=y.get(C.method),Le,Ge;Ue&&(Le=Ue.type,Ge=Ue.handler);let et=Date.now();if(Ge||m){let Fe=C.id??String(Date.now()),Qe=Cc.is(z.receiver)?z.receiver.createCancellationTokenSource(Fe):z.receiver.createCancellationTokenSource(C);C.id!==null&&K.has(C.id)&&Qe.cancel(),C.id!==null&&F.set(Fe,Qe);try{let Ne;if(Ge)if(C.params===void 0){if(Le!==void 0&&Le.numberOfParams!==0){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines ${Le.numberOfParams} params but received none.`),C.method,et);return}Ne=Ge(Qe.token)}else if(Array.isArray(C.params)){if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byName){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by name but received parameters by position`),C.method,et);return}Ne=Ge(...C.params,Qe.token)}else{if(Le!==void 0&&Le.parameterStructures===he.ParameterStructures.byPosition){Z(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${C.method} defines parameters by position but received parameters by name`),C.method,et);return}Ne=Ge(C.params,Qe.token)}else m&&(Ne=m(C.method,C.params,Qe.token));let ct=Ne;Ne?ct.then?ct.then(Ft=>{F.delete(Fe),H(Ft,C.method,et)},Ft=>{F.delete(Fe),Ft instanceof he.ResponseError?Z(Ft,C.method,et):Ft&&_t.string(Ft.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ft.message}`),C.method,et):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,et)}):(F.delete(Fe),H(Ne,C.method,et)):(F.delete(Fe),ie(Ne,C.method,et))}catch(Ne){F.delete(Fe),Ne instanceof he.ResponseError?H(Ne,C.method,et):Ne&&_t.string(Ne.message)?Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed with message: ${Ne.message}`),C.method,et):Z(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${C.method} failed unexpectedly without providing any details.`),C.method,et)}}else Z(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${C.method}`),C.method,et)}function wr(C){if(!je())if(C.id===null)C.error?s.error(`Received response message without id: Error is: +${JSON.stringify(C.error,void 0,4)}`):s.error("Received response message without id. No further error information provided.");else{let H=C.id,Z=B.get(H);if(hr(C,Z),Z!==void 0){B.delete(H);try{if(C.error){let ie=C.error;Z.reject(new he.ResponseError(ie.code,ie.message,ie.data))}else if(C.result!==void 0)Z.resolve(C.result);else throw new Error("Should never happen.")}catch(ie){ie.message?s.error(`Response handler '${Z.method}' failed with message: ${ie.message}`):s.error(`Response handler '${Z.method}' failed unexpectedly.`)}}}}function Sr(C){if(je())return;let H,Z;if(C.method===Es.type.method){let ie=C.params.id;K.delete(ie),zr(C);return}else{let ie=D.get(C.method);ie&&(Z=ie.handler,H=ie.type)}if(Z||x)try{if(zr(C),Z)if(C.params===void 0)H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received none.`),Z();else if(Array.isArray(C.params)){let ie=C.params;C.method===Ds.type.method&&ie.length===2&&Xf.is(ie[0])?Z({token:ie[0],value:ie[1]}):(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&s.error(`Notification ${C.method} defines parameters by name but received parameters by position`),H.numberOfParams!==C.params.length&&s.error(`Notification ${C.method} defines ${H.numberOfParams} params but received ${ie.length} arguments`)),Z(...ie))}else H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&s.error(`Notification ${C.method} defines parameters by position but received parameters by name`),Z(C.params);else x&&x(C.method,C.params)}catch(ie){ie.message?s.error(`Notification handler '${C.method}' failed with message: ${ie.message}`):s.error(`Notification handler '${C.method}' failed unexpectedly.`)}else Dt.fire(C)}function xr(C){if(!C){s.error("Received empty message.");return}s.error(`Received message which is neither a response nor a notification message: ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z=H.id,ie=B.get(Z);ie&&ie.reject(new Error("The received response has neither a result nor an error property."))}}function mt(C){if(C!=null)switch(P){case He.Verbose:return JSON.stringify(C,null,4);case He.Compact:return JSON.stringify(C);default:return}}function fr(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} `),te.log(`Sending request '${C.method} - (${C.id})'.`,H)}else xt("send-request",C)}function Ki(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} @@ -24,7 +24,7 @@ ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z `)),te.log(`Sending response '${H} - (${C.id})'. Processing request took ${Date.now()-Z}ms`,ie)}else xt("send-response",C)}function Pi(C){if(!(P===He.Off||!te))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&C.params&&(H=`Params: ${mt(C.params)} -`),te.log(`Received request '${C.method} - (${C.id})'.`,H)}else xt("receive-request",C)}function zr(C){if(!(P===He.Off||!te||C.method===Cc.type.method))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} +`),te.log(`Received request '${C.method} - (${C.id})'.`,H)}else xt("receive-request",C)}function zr(C){if(!(P===He.Off||!te||C.method===Pc.type.method))if(U===Tn.Text){let H;(P===He.Verbose||P===He.Compact)&&(C.params?H=`Params: ${mt(C.params)} `:H=`No parameters provided. @@ -34,14 +34,14 @@ ${JSON.stringify(C,null,4)}`);let H=C;if(_t.string(H.id)||_t.number(H.id)){let Z `:C.error===void 0&&(Z=`No result returned. -`)),H){let ie=C.error?` Request failed: ${C.error.message} (${C.error.code}).`:"";te.log(`Received response '${H.method} - (${C.id})' in ${Date.now()-H.timerStart}ms.${ie}`,Z)}else te.log(`Received response ${C.id} without active response promise.`,Z)}else xt("receive-response",C)}function xt(C,H){if(!te||P===He.Off)return;let Z={isLSPMessage:!0,type:C,message:H,timestamp:Date.now()};te.log(Z)}function sn(){if(We())throw new vo(Ds.Closed,"Connection is closed.");if(je())throw new vo(Ds.Disposed,"Connection is disposed.")}function Pr(){if(St())throw new vo(Ds.AlreadyListening,"Connection is already listening")}function Ji(){if(!St())throw new Error("Call listen() first.")}function jt(C){return C===void 0?null:C}function Ci(C){if(C!==null)return C}function Gn(C){return C!=null&&!Array.isArray(C)&&typeof C=="object"}function _n(C,H){switch(C){case he.ParameterStructures.auto:return Gn(H)?Ci(H):[jt(H)];case he.ParameterStructures.byName:if(!Gn(H))throw new Error("Received parameters by name but param is not an object literal.");return Ci(H);case he.ParameterStructures.byPosition:return[jt(H)];default:throw new Error(`Unknown parameter structure ${C.toString()}`)}}function Cr(C,H){let Z,ie=C.numberOfParams;switch(ie){case 0:Z=void 0;break;case 1:Z=_n(C.parameterStructures,H[0]);break;default:Z=[];for(let Ue=0;Ue{sn();let Z,ie;if(_t.string(C)){Z=C;let Le=H[0],Ge=0,et=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Ge=1,et=Le);let Fe=H.length,Qe=Fe-Ge;switch(Qe){case 0:ie=void 0;break;case 1:ie=_n(et,H[Ge]);break;default:if(et===he.ParameterStructures.byName)throw new Error(`Received ${Qe} parameters for 'by Name' notification parameter structure.`);ie=H.slice(Ge,Fe).map(Ne=>jt(Ne));break}}else{let Le=H;Z=C.method,ie=Cr(C,Le)}let Ue={jsonrpc:f,method:Z,params:ie};return Ki(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(C,H)=>{sn();let Z;return _t.func(C)?x=C:H&&(_t.string(C)?(Z=C,D.set(C,{type:void 0,handler:H})):(Z=C.method,D.set(C.method,{type:C,handler:H}))),{dispose:()=>{Z!==void 0?D.delete(Z):x=void 0}}},onProgress:(C,H,Z)=>{if(N.has(H))throw new Error(`Progress handler for token ${H} already registered`);return N.set(H,Z),{dispose:()=>{N.delete(H)}}},sendProgress:(C,H,Z)=>vn.sendNotification(Rs.type,{token:H,value:Z}),onUnhandledProgress:xe.event,sendRequest:(C,...H)=>{sn(),Ji();let Z,ie,Ue;if(_t.string(C)){Z=C;let Fe=H[0],Qe=H[H.length-1],Ne=0,ct=he.ParameterStructures.auto;he.ParameterStructures.is(Fe)&&(Ne=1,ct=Fe);let Ft=H.length;Xf.CancellationToken.is(Qe)&&(Ft=Ft-1,Ue=Qe);let Yt=Ft-Ne;switch(Yt){case 0:ie=void 0;break;case 1:ie=_n(ct,H[Ne]);break;default:if(ct===he.ParameterStructures.byName)throw new Error(`Received ${Yt} parameters for 'by Name' request parameter structure.`);ie=H.slice(Ne,Ft).map(Xi=>jt(Xi));break}}else{let Fe=H;Z=C.method,ie=Cr(C,Fe);let Qe=C.numberOfParams;Ue=Xf.CancellationToken.is(Fe[Qe])?Fe[Qe]:void 0}let Le=c++,Ge;Ue&&(Ge=Ue.onCancellationRequested(()=>{let Fe=z.sender.sendCancellation(vn,Le);return Fe===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):Fe.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let et={jsonrpc:f,id:Le,method:Z,params:ie};return fr(et),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(et),new Promise(async(Fe,Qe)=>{let Ne=Yt=>{Fe(Yt),z.sender.cleanup(Le),Ge?.dispose()},ct=Yt=>{Qe(Yt),z.sender.cleanup(Le),Ge?.dispose()},Ft={method:Z,timerStart:Date.now(),resolve:Ne,reject:ct};try{await e.write(et),B.set(Le,Ft)}catch(Yt){throw s.error("Sending request failed."),Ft.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Yt.message?Yt.message:"Unknown reason")),Yt}})},onRequest:(C,H)=>{sn();let Z=null;return eh.is(C)?(Z=void 0,m=C):_t.string(C)?(Z=null,H!==void 0&&(Z=C,y.set(C,{handler:H,type:void 0}))):H!==void 0&&(Z=C.method,y.set(C.method,{type:C,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?y.delete(Z):m=void 0)}}},hasPendingResponse:()=>B.size>0,trace:async(C,H,Z)=>{let ie=!1,Ue=Tn.Text;Z!==void 0&&(_t.boolean(Z)?ie=Z:(ie=Z.sendNotification||!1,Ue=Z.traceFormat||Tn.Text)),P=C,U=Ue,P===He.Off?te=void 0:te=H,ie&&!We()&&!je()&&await vn.sendNotification(th.type,{value:He.toString(C)})},onError:Be.event,onClose:Je.event,onUnhandledNotification:Dt.event,onDispose:X.event,end:()=>{e.end()},dispose:()=>{if(je())return;ve=Zn.Disposed,X.fire(void 0);let C=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of B.values())H.reject(C);B=new Map,F=new Map,K=new Set,L=new R_.LinkedMap,_t.func(e.dispose)&&e.dispose(),_t.func(t.dispose)&&t.dispose()},listen:()=>{sn(),Pr(),ve=Zn.Listening,t.listen(dr)},inspect:()=>{(0,T_.default)().console.log("inspect")}};return vn.onNotification(Cc.type,C=>{if(P===He.Off||!te)return;let H=P===He.Verbose||P===He.Compact;te.log(C.message,H?C.verbose:void 0)}),vn.onNotification(Rs.type,C=>{let H=N.get(C.token);H?H(C.value):xe.fire(C)}),vn}Ce.createMessageConnection=CA});var Ec=I(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var rt=Df();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return rt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return rt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return rt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return rt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return rt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return rt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return rt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return rt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return rt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return rt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return rt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return rt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return rt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return rt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return rt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return rt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return rt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return rt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return rt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return rt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return rt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return rt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return rt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return rt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return rt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return rt.ParameterStructures}});var ih=Ef();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return ih.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return ih.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return ih.Touch}});var kA=m_();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return kA.Disposable}});var I_=po();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return I_.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return I_.Emitter}});var M_=yc();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return M_.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return M_.CancellationToken}});var A_=__();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return A_.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return A_.SharedArrayReceiverStrategy}});var oh=y_();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return oh.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return oh.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return oh.ReadableStreamMessageReader}});var sh=C_();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return sh.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return sh.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return sh.WriteableStreamMessageWriter}});var TA=k_();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return TA.AbstractMessageBuffer}});var $t=E_();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return $t.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return $t.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return $t.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return $t.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return $t.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return $t.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return $t.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return $t.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return $t.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return $t.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return $t.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return $t.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return $t.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return $t.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return $t.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return $t.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return $t.MessageStrategy}});var RA=ri();j.RAL=RA.default});var O_=I(lh=>{"use strict";Object.defineProperty(lh,"__esModule",{value:!0});var N_=require("util"),Nr=Ec(),Ic=class t extends Nr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new N_.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};Ic.emptyBuffer=Buffer.allocUnsafe(0);var ah=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Nr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Nr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Nr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),Nr.Disposable.create(()=>this.stream.off("data",e))}},ch=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Nr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Nr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Nr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},q_=Object.freeze({messageBuffer:Object.freeze({create:t=>new Ic(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new N_.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new ah(t),asWritableStream:t=>new ch(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function uh(){return q_}(function(t){function e(){Nr.RAL.install(q_)}t.install=e})(uh||(uh={}));lh.default=uh});var Bi=I(Oe=>{"use strict";var DA=Oe&&Oe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),FA=Oe&&Oe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&DA(e,t,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var yo=O_();yo.default.install();var L_=require("path"),EA=require("os"),IA=require("crypto"),Nc=require("net"),Rn=Ec();FA(Ec(),Oe);var dh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Rn.Disposable.create(()=>this.process.off("message",e))}};Oe.IPCMessageReader=dh;var fh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=fh;var hh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.onData=new Rn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};Oe.PortMessageReader=hh;var gh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.PortMessageWriter=gh;var Oi=class extends Rn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.SocketMessageReader=Oi;var Li=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Li;var Mc=class extends Rn.ReadableStreamMessageReader{constructor(e,n){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.StreamMessageReader=Mc;var Ac=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n)}};Oe.StreamMessageWriter=Ac;var B_=process.env.XDG_RUNTIME_DIR,MA=new Map([["linux",107],["darwin",103]]);function AA(){let t=(0,IA.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;B_?e=L_.join(B_,`vscode-ipc-${t}.sock`):e=L_.join(EA.tmpdir(),`vscode-${t}.sock`);let n=MA.get(process.platform);return n!==void 0&&e.length>n&&(0,yo.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}Oe.generateRandomPipeName=AA;function NA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Nc.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientPipeTransport=NA;function qA(t,e="utf-8"){let n=(0,Nc.createConnection)(t);return[new Oi(n,e),new Li(n,e)]}Oe.createServerPipeTransport=qA;function OA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Nc.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientSocketTransport=OA;function LA(t,e="utf-8"){let n=(0,Nc.createConnection)(t,"127.0.0.1");return[new Oi(n,e),new Li(n,e)]}Oe.createServerSocketTransport=LA;function BA(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function UA(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function $A(t,e,n,i){n||(n=Rn.NullLogger);let s=BA(t)?new Mc(t):t,c=UA(e)?new Ac(e):e;return Rn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Rn.createMessageConnection)(s,c,n,i)}Oe.createMessageConnection=$A});var ph=I((v2,U_)=>{"use strict";U_.exports=Bi()});var Oc=I(($_,qc)=>{"use strict";(function(t){if(typeof qc=="object"&&typeof qc.exports=="object"){var e=t(require,$_);e!==void 0&&(qc.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function k(R){return typeof R=="string"}p.is=k})(n||(e.DocumentUri=n={}));var i;(function(p){function k(R){return typeof R=="string"}p.is=k})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(c||(e.uinteger=c={}));var u;(function(p){function k(v,g){return v===Number.MAX_VALUE&&(v=c.MAX_VALUE),g===Number.MAX_VALUE&&(g=c.MAX_VALUE),{line:v,character:g}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.uinteger(g.line)&&q.uinteger(g.character)}p.is=R})(u||(e.Position=u={}));var d;(function(p){function k(v,g,O,G){if(q.uinteger(v)&&q.uinteger(g)&&q.uinteger(O)&&q.uinteger(G))return{start:u.create(v,g),end:u.create(O,G)};if(u.is(v)&&u.is(g))return{start:v,end:g};throw new Error("Range#create called with invalid arguments[".concat(v,", ").concat(g,", ").concat(O,", ").concat(G,"]"))}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&u.is(g.start)&&u.is(g.end)}p.is=R})(d||(e.Range=d={}));var f;(function(p){function k(v,g){return{uri:v,range:g}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&d.is(g.range)&&(q.string(g.uri)||q.undefined(g.uri))}p.is=R})(f||(e.Location=f={}));var m;(function(p){function k(v,g,O,G){return{targetUri:v,targetRange:g,targetSelectionRange:O,originSelectionRange:G}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&d.is(g.targetRange)&&q.string(g.targetUri)&&d.is(g.targetSelectionRange)&&(d.is(g.originSelectionRange)||q.undefined(g.originSelectionRange))}p.is=R})(m||(e.LocationLink=m={}));var y;(function(p){function k(v,g,O,G){return{red:v,green:g,blue:O,alpha:G}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.numberRange(g.red,0,1)&&q.numberRange(g.green,0,1)&&q.numberRange(g.blue,0,1)&&q.numberRange(g.alpha,0,1)}p.is=R})(y||(e.Color=y={}));var x;(function(p){function k(v,g){return{range:v,color:g}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&d.is(g.range)&&y.is(g.color)}p.is=R})(x||(e.ColorInformation=x={}));var D;(function(p){function k(v,g,O){return{label:v,textEdit:g,additionalTextEdits:O}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.string(g.label)&&(q.undefined(g.textEdit)||te.is(g))&&(q.undefined(g.additionalTextEdits)||q.typedArray(g.additionalTextEdits,te.is))}p.is=R})(D||(e.ColorPresentation=D={}));var N;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(N||(e.FoldingRangeKind=N={}));var A;(function(p){function k(v,g,O,G,be,ht){var Xe={startLine:v,endLine:g};return q.defined(O)&&(Xe.startCharacter=O),q.defined(G)&&(Xe.endCharacter=G),q.defined(be)&&(Xe.kind=be),q.defined(ht)&&(Xe.collapsedText=ht),Xe}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.uinteger(g.startLine)&&q.uinteger(g.startLine)&&(q.undefined(g.startCharacter)||q.uinteger(g.startCharacter))&&(q.undefined(g.endCharacter)||q.uinteger(g.endCharacter))&&(q.undefined(g.kind)||q.string(g.kind))}p.is=R})(A||(e.FoldingRange=A={}));var L;(function(p){function k(v,g){return{location:v,message:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&f.is(g.location)&&q.string(g.message)}p.is=R})(L||(e.DiagnosticRelatedInformation=L={}));var B;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(B||(e.DiagnosticSeverity=B={}));var K;(function(p){p.Unnecessary=1,p.Deprecated=2})(K||(e.DiagnosticTag=K={}));var F;(function(p){function k(R){var v=R;return q.objectLiteral(v)&&q.string(v.href)}p.is=k})(F||(e.CodeDescription=F={}));var P;(function(p){function k(v,g,O,G,be,ht){var Xe={range:v,message:g};return q.defined(O)&&(Xe.severity=O),q.defined(G)&&(Xe.code=G),q.defined(be)&&(Xe.source=be),q.defined(ht)&&(Xe.relatedInformation=ht),Xe}p.create=k;function R(v){var g,O=v;return q.defined(O)&&d.is(O.range)&&q.string(O.message)&&(q.number(O.severity)||q.undefined(O.severity))&&(q.integer(O.code)||q.string(O.code)||q.undefined(O.code))&&(q.undefined(O.codeDescription)||q.string((g=O.codeDescription)===null||g===void 0?void 0:g.href))&&(q.string(O.source)||q.undefined(O.source))&&(q.undefined(O.relatedInformation)||q.typedArray(O.relatedInformation,L.is))}p.is=R})(P||(e.Diagnostic=P={}));var U;(function(p){function k(v,g){for(var O=[],G=2;G0&&(be.arguments=O),be}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.title)&&q.string(g.command)}p.is=R})(U||(e.Command=U={}));var te;(function(p){function k(O,G){return{range:O,newText:G}}p.replace=k;function R(O,G){return{range:{start:O,end:O},newText:G}}p.insert=R;function v(O){return{range:O,newText:""}}p.del=v;function g(O){var G=O;return q.objectLiteral(G)&&q.string(G.newText)&&d.is(G.range)}p.is=g})(te||(e.TextEdit=te={}));var ve;(function(p){function k(v,g,O){var G={label:v};return g!==void 0&&(G.needsConfirmation=g),O!==void 0&&(G.description=O),G}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.string(g.label)&&(q.boolean(g.needsConfirmation)||g.needsConfirmation===void 0)&&(q.string(g.description)||g.description===void 0)}p.is=R})(ve||(e.ChangeAnnotation=ve={}));var Be;(function(p){function k(R){var v=R;return q.string(v)}p.is=k})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Je;(function(p){function k(O,G,be){return{range:O,newText:G,annotationId:be}}p.replace=k;function R(O,G,be){return{range:{start:O,end:O},newText:G,annotationId:be}}p.insert=R;function v(O,G){return{range:O,newText:"",annotationId:G}}p.del=v;function g(O){var G=O;return te.is(G)&&(ve.is(G.annotationId)||Be.is(G.annotationId))}p.is=g})(Je||(e.AnnotatedTextEdit=Je={}));var Dt;(function(p){function k(v,g){return{textDocument:v,edits:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&We.is(g.textDocument)&&Array.isArray(g.edits)}p.is=R})(Dt||(e.TextDocumentEdit=Dt={}));var xe;(function(p){function k(v,g,O){var G={kind:"create",uri:v};return g!==void 0&&(g.overwrite!==void 0||g.ignoreIfExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(v){var g=v;return g&&g.kind==="create"&&q.string(g.uri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(xe||(e.CreateFile=xe={}));var X;(function(p){function k(v,g,O,G){var be={kind:"rename",oldUri:v,newUri:g};return O!==void 0&&(O.overwrite!==void 0||O.ignoreIfExists!==void 0)&&(be.options=O),G!==void 0&&(be.annotationId=G),be}p.create=k;function R(v){var g=v;return g&&g.kind==="rename"&&q.string(g.oldUri)&&q.string(g.newUri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(X||(e.RenameFile=X={}));var z;(function(p){function k(v,g,O){var G={kind:"delete",uri:v};return g!==void 0&&(g.recursive!==void 0||g.ignoreIfNotExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(v){var g=v;return g&&g.kind==="delete"&&q.string(g.uri)&&(g.options===void 0||(g.options.recursive===void 0||q.boolean(g.options.recursive))&&(g.options.ignoreIfNotExists===void 0||q.boolean(g.options.ignoreIfNotExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var se;(function(p){function k(R){var v=R;return v&&(v.changes!==void 0||v.documentChanges!==void 0)&&(v.documentChanges===void 0||v.documentChanges.every(function(g){return q.string(g.kind)?xe.is(g)||X.is(g)||z.is(g):Dt.is(g)}))}p.is=k})(se||(e.WorkspaceEdit=se={}));var re=function(){function p(k,R){this.edits=k,this.changeAnnotations=R}return p.prototype.insert=function(k,R,v){var g,O;if(v===void 0?g=te.insert(k,R):Be.is(v)?(O=v,g=Je.insert(k,R,v)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(v),g=Je.insert(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.replace=function(k,R,v){var g,O;if(v===void 0?g=te.replace(k,R):Be.is(v)?(O=v,g=Je.replace(k,R,v)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(v),g=Je.replace(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.delete=function(k,R){var v,g;if(R===void 0?v=te.del(k):Be.is(R)?(g=R,v=Je.del(k,R)):(this.assertChangeAnnotations(this.changeAnnotations),g=this.changeAnnotations.manage(R),v=Je.del(k,g)),this.edits.push(v),g!==void 0)return g},p.prototype.add=function(k){this.edits.push(k)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(k){if(k===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),De=function(){function p(k){this._annotations=k===void 0?Object.create(null):k,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(k,R){var v;if(Be.is(k)?v=k:(v=this.nextId(),R=k),this._annotations[v]!==void 0)throw new Error("Id ".concat(v," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(v));return this._annotations[v]=R,this._size++,v},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(k){var R=this;this._textEditChanges=Object.create(null),k!==void 0?(this._workspaceEdit=k,k.documentChanges?(this._changeAnnotations=new De(k.changeAnnotations),k.changeAnnotations=this._changeAnnotations.all(),k.documentChanges.forEach(function(v){if(Dt.is(v)){var g=new re(v.edits,R._changeAnnotations);R._textEditChanges[v.textDocument.uri]=g}})):k.changes&&Object.keys(k.changes).forEach(function(v){var g=new re(k.changes[v]);R._textEditChanges[v]=g})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(k){if(We.is(k)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:k.uri,version:k.version},v=this._textEditChanges[R.uri];if(!v){var g=[],O={textDocument:R,edits:g};this._workspaceEdit.documentChanges.push(O),v=new re(g,this._changeAnnotations),this._textEditChanges[R.uri]=v}return v}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var v=this._textEditChanges[k];if(!v){var g=[];this._workspaceEdit.changes[k]=g,v=new re(g),this._textEditChanges[k]=v}return v}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new De,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(k,R,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:v=R;var O,G;if(g===void 0?O=xe.create(k,v):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=xe.create(k,v,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p.prototype.renameFile=function(k,R,v,g){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var O;ve.is(v)||Be.is(v)?O=v:g=v;var G,be;if(O===void 0?G=X.create(k,R,g):(be=Be.is(O)?O:this._changeAnnotations.manage(O),G=X.create(k,R,g,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(k,R,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;ve.is(R)||Be.is(R)?g=R:v=R;var O,G;if(g===void 0?O=z.create(k,v):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=z.create(k,v,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p}();e.WorkspaceChange=ge;var pe;(function(p){function k(v){return{uri:v}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)}p.is=R})(pe||(e.TextDocumentIdentifier=pe={}));var St;(function(p){function k(v,g){return{uri:v,version:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)&&q.integer(g.version)}p.is=R})(St||(e.VersionedTextDocumentIdentifier=St={}));var We;(function(p){function k(v,g){return{uri:v,version:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)&&(g.version===null||q.integer(g.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function k(v,g,O,G){return{uri:v,languageId:g,version:O,text:G}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)&&q.string(g.languageId)&&q.integer(g.version)&&q.string(g.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function k(R){var v=R;return v===p.PlainText||v===p.Markdown}p.is=k})(bn||(e.MarkupKind=bn={}));var yr;(function(p){function k(R){var v=R;return q.objectLiteral(R)&&bn.is(v.kind)&&q.string(v.value)}p.is=k})(yr||(e.MarkupContent=yr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(e.CompletionItemKind=Vn={}));var ur;(function(p){p.PlainText=1,p.Snippet=2})(ur||(e.InsertTextFormat=ur={}));var xi;(function(p){p.Deprecated=1})(xi||(e.CompletionItemTag=xi={}));var lr;(function(p){function k(v,g,O){return{newText:v,insert:g,replace:O}}p.create=k;function R(v){var g=v;return g&&q.string(g.newText)&&d.is(g.insert)&&d.is(g.replace)}p.is=R})(lr||(e.InsertReplaceEdit=lr={}));var dr;(function(p){p.asIs=1,p.adjustIndentation=2})(dr||(e.InsertTextMode=dr={}));var Qi;(function(p){function k(R){var v=R;return v&&(q.string(v.detail)||v.detail===void 0)&&(q.string(v.description)||v.description===void 0)}p.is=k})(Qi||(e.CompletionItemLabelDetails=Qi={}));var wr;(function(p){function k(R){return{label:R}}p.create=k})(wr||(e.CompletionItem=wr={}));var Sr;(function(p){function k(R,v){return{items:R||[],isIncomplete:!!v}}p.create=k})(Sr||(e.CompletionList=Sr={}));var xr;(function(p){function k(v){return v.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=k;function R(v){var g=v;return q.string(g)||q.objectLiteral(g)&&q.string(g.language)&&q.string(g.value)}p.is=R})(xr||(e.MarkedString=xr={}));var mt;(function(p){function k(R){var v=R;return!!v&&q.objectLiteral(v)&&(yr.is(v.contents)||xr.is(v.contents)||q.typedArray(v.contents,xr.is))&&(R.range===void 0||d.is(R.range))}p.is=k})(mt||(e.Hover=mt={}));var fr;(function(p){function k(R,v){return v?{label:R,documentation:v}:{label:R}}p.create=k})(fr||(e.ParameterInformation=fr={}));var Ki;(function(p){function k(R,v){for(var g=[],O=2;O{sn();let Z,ie;if(_t.string(C)){Z=C;let Le=H[0],Ge=0,et=he.ParameterStructures.auto;he.ParameterStructures.is(Le)&&(Ge=1,et=Le);let Fe=H.length,Qe=Fe-Ge;switch(Qe){case 0:ie=void 0;break;case 1:ie=_n(et,H[Ge]);break;default:if(et===he.ParameterStructures.byName)throw new Error(`Received ${Qe} parameters for 'by Name' notification parameter structure.`);ie=H.slice(Ge,Fe).map(Ne=>jt(Ne));break}}else{let Le=H;Z=C.method,ie=Cr(C,Le)}let Ue={jsonrpc:f,method:Z,params:ie};return Ki(Ue),e.write(Ue).catch(Le=>{throw s.error("Sending notification failed."),Le})},onNotification:(C,H)=>{sn();let Z;return _t.func(C)?x=C:H&&(_t.string(C)?(Z=C,D.set(C,{type:void 0,handler:H})):(Z=C.method,D.set(C.method,{type:C,handler:H}))),{dispose:()=>{Z!==void 0?D.delete(Z):x=void 0}}},onProgress:(C,H,Z)=>{if(N.has(H))throw new Error(`Progress handler for token ${H} already registered`);return N.set(H,Z),{dispose:()=>{N.delete(H)}}},sendProgress:(C,H,Z)=>vn.sendNotification(Ds.type,{token:H,value:Z}),onUnhandledProgress:we.event,sendRequest:(C,...H)=>{sn(),Ji();let Z,ie,Ue;if(_t.string(C)){Z=C;let Fe=H[0],Qe=H[H.length-1],Ne=0,ct=he.ParameterStructures.auto;he.ParameterStructures.is(Fe)&&(Ne=1,ct=Fe);let Ft=H.length;Jf.CancellationToken.is(Qe)&&(Ft=Ft-1,Ue=Qe);let Yt=Ft-Ne;switch(Yt){case 0:ie=void 0;break;case 1:ie=_n(ct,H[Ne]);break;default:if(ct===he.ParameterStructures.byName)throw new Error(`Received ${Yt} parameters for 'by Name' request parameter structure.`);ie=H.slice(Ne,Ft).map(Xi=>jt(Xi));break}}else{let Fe=H;Z=C.method,ie=Cr(C,Fe);let Qe=C.numberOfParams;Ue=Jf.CancellationToken.is(Fe[Qe])?Fe[Qe]:void 0}let Le=c++,Ge;Ue&&(Ge=Ue.onCancellationRequested(()=>{let Fe=z.sender.sendCancellation(vn,Le);return Fe===void 0?(s.log(`Received no promise from cancellation strategy when cancelling id ${Le}`),Promise.resolve()):Fe.catch(()=>{s.log(`Sending cancellation messages for id ${Le} failed`)})}));let et={jsonrpc:f,id:Le,method:Z,params:ie};return fr(et),typeof z.sender.enableCancellation=="function"&&z.sender.enableCancellation(et),new Promise(async(Fe,Qe)=>{let Ne=Yt=>{Fe(Yt),z.sender.cleanup(Le),Ge?.dispose()},ct=Yt=>{Qe(Yt),z.sender.cleanup(Le),Ge?.dispose()},Ft={method:Z,timerStart:Date.now(),resolve:Ne,reject:ct};try{await e.write(et),B.set(Le,Ft)}catch(Yt){throw s.error("Sending request failed."),Ft.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,Yt.message?Yt.message:"Unknown reason")),Yt}})},onRequest:(C,H)=>{sn();let Z=null;return Zf.is(C)?(Z=void 0,m=C):_t.string(C)?(Z=null,H!==void 0&&(Z=C,y.set(C,{handler:H,type:void 0}))):H!==void 0&&(Z=C.method,y.set(C.method,{type:C,handler:H})),{dispose:()=>{Z!==null&&(Z!==void 0?y.delete(Z):m=void 0)}}},hasPendingResponse:()=>B.size>0,trace:async(C,H,Z)=>{let ie=!1,Ue=Tn.Text;Z!==void 0&&(_t.boolean(Z)?ie=Z:(ie=Z.sendNotification||!1,Ue=Z.traceFormat||Tn.Text)),P=C,U=Ue,P===He.Off?te=void 0:te=H,ie&&!We()&&!je()&&await vn.sendNotification(eh.type,{value:He.toString(C)})},onError:Be.event,onClose:Je.event,onUnhandledNotification:Dt.event,onDispose:X.event,end:()=>{e.end()},dispose:()=>{if(je())return;_e=Zn.Disposed,X.fire(void 0);let C=new he.ResponseError(he.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let H of B.values())H.reject(C);B=new Map,F=new Map,K=new Set,L=new T_.LinkedMap,_t.func(e.dispose)&&e.dispose(),_t.func(t.dispose)&&t.dispose()},listen:()=>{sn(),Pr(),_e=Zn.Listening,t.listen(dr)},inspect:()=>{(0,k_.default)().console.log("inspect")}};return vn.onNotification(Pc.type,C=>{if(P===He.Off||!te)return;let H=P===He.Verbose||P===He.Compact;te.log(C.message,H?C.verbose:void 0)}),vn.onNotification(Ds.type,C=>{let H=N.get(C.token);H?H(C.value):we.fire(C)}),vn}xe.createMessageConnection=CA});var Fc=I(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.ProgressType=j.ProgressToken=j.createMessageConnection=j.NullLogger=j.ConnectionOptions=j.ConnectionStrategy=j.AbstractMessageBuffer=j.WriteableStreamMessageWriter=j.AbstractMessageWriter=j.MessageWriter=j.ReadableStreamMessageReader=j.AbstractMessageReader=j.MessageReader=j.SharedArrayReceiverStrategy=j.SharedArraySenderStrategy=j.CancellationToken=j.CancellationTokenSource=j.Emitter=j.Event=j.Disposable=j.LRUCache=j.Touch=j.LinkedMap=j.ParameterStructures=j.NotificationType9=j.NotificationType8=j.NotificationType7=j.NotificationType6=j.NotificationType5=j.NotificationType4=j.NotificationType3=j.NotificationType2=j.NotificationType1=j.NotificationType0=j.NotificationType=j.ErrorCodes=j.ResponseError=j.RequestType9=j.RequestType8=j.RequestType7=j.RequestType6=j.RequestType5=j.RequestType4=j.RequestType3=j.RequestType2=j.RequestType1=j.RequestType0=j.RequestType=j.Message=j.RAL=void 0;j.MessageStrategy=j.CancellationStrategy=j.CancellationSenderStrategy=j.CancellationReceiverStrategy=j.ConnectionError=j.ConnectionErrors=j.LogTraceNotification=j.SetTraceNotification=j.TraceFormat=j.TraceValues=j.Trace=void 0;var rt=Rf();Object.defineProperty(j,"Message",{enumerable:!0,get:function(){return rt.Message}});Object.defineProperty(j,"RequestType",{enumerable:!0,get:function(){return rt.RequestType}});Object.defineProperty(j,"RequestType0",{enumerable:!0,get:function(){return rt.RequestType0}});Object.defineProperty(j,"RequestType1",{enumerable:!0,get:function(){return rt.RequestType1}});Object.defineProperty(j,"RequestType2",{enumerable:!0,get:function(){return rt.RequestType2}});Object.defineProperty(j,"RequestType3",{enumerable:!0,get:function(){return rt.RequestType3}});Object.defineProperty(j,"RequestType4",{enumerable:!0,get:function(){return rt.RequestType4}});Object.defineProperty(j,"RequestType5",{enumerable:!0,get:function(){return rt.RequestType5}});Object.defineProperty(j,"RequestType6",{enumerable:!0,get:function(){return rt.RequestType6}});Object.defineProperty(j,"RequestType7",{enumerable:!0,get:function(){return rt.RequestType7}});Object.defineProperty(j,"RequestType8",{enumerable:!0,get:function(){return rt.RequestType8}});Object.defineProperty(j,"RequestType9",{enumerable:!0,get:function(){return rt.RequestType9}});Object.defineProperty(j,"ResponseError",{enumerable:!0,get:function(){return rt.ResponseError}});Object.defineProperty(j,"ErrorCodes",{enumerable:!0,get:function(){return rt.ErrorCodes}});Object.defineProperty(j,"NotificationType",{enumerable:!0,get:function(){return rt.NotificationType}});Object.defineProperty(j,"NotificationType0",{enumerable:!0,get:function(){return rt.NotificationType0}});Object.defineProperty(j,"NotificationType1",{enumerable:!0,get:function(){return rt.NotificationType1}});Object.defineProperty(j,"NotificationType2",{enumerable:!0,get:function(){return rt.NotificationType2}});Object.defineProperty(j,"NotificationType3",{enumerable:!0,get:function(){return rt.NotificationType3}});Object.defineProperty(j,"NotificationType4",{enumerable:!0,get:function(){return rt.NotificationType4}});Object.defineProperty(j,"NotificationType5",{enumerable:!0,get:function(){return rt.NotificationType5}});Object.defineProperty(j,"NotificationType6",{enumerable:!0,get:function(){return rt.NotificationType6}});Object.defineProperty(j,"NotificationType7",{enumerable:!0,get:function(){return rt.NotificationType7}});Object.defineProperty(j,"NotificationType8",{enumerable:!0,get:function(){return rt.NotificationType8}});Object.defineProperty(j,"NotificationType9",{enumerable:!0,get:function(){return rt.NotificationType9}});Object.defineProperty(j,"ParameterStructures",{enumerable:!0,get:function(){return rt.ParameterStructures}});var rh=Ff();Object.defineProperty(j,"LinkedMap",{enumerable:!0,get:function(){return rh.LinkedMap}});Object.defineProperty(j,"LRUCache",{enumerable:!0,get:function(){return rh.LRUCache}});Object.defineProperty(j,"Touch",{enumerable:!0,get:function(){return rh.Touch}});var kA=p_();Object.defineProperty(j,"Disposable",{enumerable:!0,get:function(){return kA.Disposable}});var E_=po();Object.defineProperty(j,"Event",{enumerable:!0,get:function(){return E_.Event}});Object.defineProperty(j,"Emitter",{enumerable:!0,get:function(){return E_.Emitter}});var I_=vc();Object.defineProperty(j,"CancellationTokenSource",{enumerable:!0,get:function(){return I_.CancellationTokenSource}});Object.defineProperty(j,"CancellationToken",{enumerable:!0,get:function(){return I_.CancellationToken}});var M_=b_();Object.defineProperty(j,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return M_.SharedArraySenderStrategy}});Object.defineProperty(j,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return M_.SharedArrayReceiverStrategy}});var ih=v_();Object.defineProperty(j,"MessageReader",{enumerable:!0,get:function(){return ih.MessageReader}});Object.defineProperty(j,"AbstractMessageReader",{enumerable:!0,get:function(){return ih.AbstractMessageReader}});Object.defineProperty(j,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return ih.ReadableStreamMessageReader}});var oh=P_();Object.defineProperty(j,"MessageWriter",{enumerable:!0,get:function(){return oh.MessageWriter}});Object.defineProperty(j,"AbstractMessageWriter",{enumerable:!0,get:function(){return oh.AbstractMessageWriter}});Object.defineProperty(j,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return oh.WriteableStreamMessageWriter}});var TA=C_();Object.defineProperty(j,"AbstractMessageBuffer",{enumerable:!0,get:function(){return TA.AbstractMessageBuffer}});var $t=F_();Object.defineProperty(j,"ConnectionStrategy",{enumerable:!0,get:function(){return $t.ConnectionStrategy}});Object.defineProperty(j,"ConnectionOptions",{enumerable:!0,get:function(){return $t.ConnectionOptions}});Object.defineProperty(j,"NullLogger",{enumerable:!0,get:function(){return $t.NullLogger}});Object.defineProperty(j,"createMessageConnection",{enumerable:!0,get:function(){return $t.createMessageConnection}});Object.defineProperty(j,"ProgressToken",{enumerable:!0,get:function(){return $t.ProgressToken}});Object.defineProperty(j,"ProgressType",{enumerable:!0,get:function(){return $t.ProgressType}});Object.defineProperty(j,"Trace",{enumerable:!0,get:function(){return $t.Trace}});Object.defineProperty(j,"TraceValues",{enumerable:!0,get:function(){return $t.TraceValues}});Object.defineProperty(j,"TraceFormat",{enumerable:!0,get:function(){return $t.TraceFormat}});Object.defineProperty(j,"SetTraceNotification",{enumerable:!0,get:function(){return $t.SetTraceNotification}});Object.defineProperty(j,"LogTraceNotification",{enumerable:!0,get:function(){return $t.LogTraceNotification}});Object.defineProperty(j,"ConnectionErrors",{enumerable:!0,get:function(){return $t.ConnectionErrors}});Object.defineProperty(j,"ConnectionError",{enumerable:!0,get:function(){return $t.ConnectionError}});Object.defineProperty(j,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return $t.CancellationReceiverStrategy}});Object.defineProperty(j,"CancellationSenderStrategy",{enumerable:!0,get:function(){return $t.CancellationSenderStrategy}});Object.defineProperty(j,"CancellationStrategy",{enumerable:!0,get:function(){return $t.CancellationStrategy}});Object.defineProperty(j,"MessageStrategy",{enumerable:!0,get:function(){return $t.MessageStrategy}});var RA=ri();j.RAL=RA.default});var q_=I(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var A_=require("util"),Nr=Fc(),Ec=class t extends Nr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return t.emptyBuffer}fromString(e,n){return Buffer.from(e,n)}toString(e,n){return e instanceof Buffer?e.toString(n):new A_.TextDecoder(n).decode(e)}asNative(e,n){return n===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,n):Buffer.from(e,0,n)}allocNative(e){return Buffer.allocUnsafe(e)}};Ec.emptyBuffer=Buffer.allocUnsafe(0);var sh=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Nr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Nr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Nr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),Nr.Disposable.create(()=>this.stream.off("data",e))}},ah=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Nr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Nr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Nr.Disposable.create(()=>this.stream.off("end",e))}write(e,n){return new Promise((i,s)=>{let c=u=>{u==null?i():s(u)};typeof e=="string"?this.stream.write(e,n,c):this.stream.write(e,c)})}end(){this.stream.end()}},N_=Object.freeze({messageBuffer:Object.freeze({create:t=>new Ec(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(t,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),e.charset))}catch(n){return Promise.reject(n)}}}),decoder:Object.freeze({name:"application/json",decode:(t,e)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(e.charset))):Promise.resolve(JSON.parse(new A_.TextDecoder(e.charset).decode(t)))}catch(n){return Promise.reject(n)}}})}),stream:Object.freeze({asReadableStream:t=>new sh(t),asWritableStream:t=>new ah(t)}),console,timer:Object.freeze({setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}},setImmediate(t,...e){let n=setImmediate(t,...e);return{dispose:()=>clearImmediate(n)}},setInterval(t,e,...n){let i=setInterval(t,e,...n);return{dispose:()=>clearInterval(i)}}})});function ch(){return N_}(function(t){function e(){Nr.RAL.install(N_)}t.install=e})(ch||(ch={}));uh.default=ch});var Bi=I(Oe=>{"use strict";var DA=Oe&&Oe.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),FA=Oe&&Oe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&DA(e,t,n)};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.createServerSocketTransport=Oe.createClientSocketTransport=Oe.createServerPipeTransport=Oe.createClientPipeTransport=Oe.generateRandomPipeName=Oe.StreamMessageWriter=Oe.StreamMessageReader=Oe.SocketMessageWriter=Oe.SocketMessageReader=Oe.PortMessageWriter=Oe.PortMessageReader=Oe.IPCMessageWriter=Oe.IPCMessageReader=void 0;var yo=q_();yo.default.install();var O_=require("path"),EA=require("os"),IA=require("crypto"),Ac=require("net"),Rn=Fc();FA(Fc(),Oe);var lh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.process=e;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Rn.Disposable.create(()=>this.process.off("message",e))}};Oe.IPCMessageReader=lh;var dh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let n=this.process;n.on("error",i=>this.fireError(i)),n.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,e)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.IPCMessageWriter=dh;var fh=class extends Rn.AbstractMessageReader{constructor(e){super(),this.onData=new Rn.Emitter,e.on("close",()=>this.fireClose),e.on("error",n=>this.fireError(n)),e.on("message",n=>{this.onData.fire(n)})}listen(e){return this.onData.event(e)}};Oe.PortMessageReader=fh;var hh=class extends Rn.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",n=>this.fireError(n))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){}};Oe.PortMessageWriter=hh;var Oi=class extends Rn.ReadableStreamMessageReader{constructor(e,n="utf-8"){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.SocketMessageReader=Oi;var Li=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Oe.SocketMessageWriter=Li;var Ic=class extends Rn.ReadableStreamMessageReader{constructor(e,n){super((0,yo.default)().stream.asReadableStream(e),n)}};Oe.StreamMessageReader=Ic;var Mc=class extends Rn.WriteableStreamMessageWriter{constructor(e,n){super((0,yo.default)().stream.asWritableStream(e),n)}};Oe.StreamMessageWriter=Mc;var L_=process.env.XDG_RUNTIME_DIR,MA=new Map([["linux",107],["darwin",103]]);function AA(){let t=(0,IA.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let e;L_?e=O_.join(L_,`vscode-ipc-${t}.sock`):e=O_.join(EA.tmpdir(),`vscode-${t}.sock`);let n=MA.get(process.platform);return n!==void 0&&e.length>n&&(0,yo.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${n} characters.`),e}Oe.generateRandomPipeName=AA;function NA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Ac.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientPipeTransport=NA;function qA(t,e="utf-8"){let n=(0,Ac.createConnection)(t);return[new Oi(n,e),new Li(n,e)]}Oe.createServerPipeTransport=qA;function OA(t,e="utf-8"){let n,i=new Promise((s,c)=>{n=s});return new Promise((s,c)=>{let u=(0,Ac.createServer)(d=>{u.close(),n([new Oi(d,e),new Li(d,e)])});u.on("error",c),u.listen(t,"127.0.0.1",()=>{u.removeListener("error",c),s({onConnected:()=>i})})})}Oe.createClientSocketTransport=OA;function LA(t,e="utf-8"){let n=(0,Ac.createConnection)(t,"127.0.0.1");return[new Oi(n,e),new Li(n,e)]}Oe.createServerSocketTransport=LA;function BA(t){let e=t;return e.read!==void 0&&e.addListener!==void 0}function UA(t){let e=t;return e.write!==void 0&&e.addListener!==void 0}function $A(t,e,n,i){n||(n=Rn.NullLogger);let s=BA(t)?new Ic(t):t,c=UA(e)?new Mc(e):e;return Rn.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Rn.createMessageConnection)(s,c,n,i)}Oe.createMessageConnection=$A});var gh=I((_2,B_)=>{"use strict";B_.exports=Bi()});var qc=I((U_,Nc)=>{"use strict";(function(t){if(typeof Nc=="object"&&typeof Nc.exports=="object"){var e=t(require,U_);e!==void 0&&(Nc.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],t)})(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var n;(function(p){function k(R){return typeof R=="string"}p.is=k})(n||(e.DocumentUri=n={}));var i;(function(p){function k(R){return typeof R=="string"}p.is=k})(i||(e.URI=i={}));var s;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(s||(e.integer=s={}));var c;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function k(R){return typeof R=="number"&&p.MIN_VALUE<=R&&R<=p.MAX_VALUE}p.is=k})(c||(e.uinteger=c={}));var u;(function(p){function k(v,g){return v===Number.MAX_VALUE&&(v=c.MAX_VALUE),g===Number.MAX_VALUE&&(g=c.MAX_VALUE),{line:v,character:g}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.uinteger(g.line)&&q.uinteger(g.character)}p.is=R})(u||(e.Position=u={}));var d;(function(p){function k(v,g,O,G){if(q.uinteger(v)&&q.uinteger(g)&&q.uinteger(O)&&q.uinteger(G))return{start:u.create(v,g),end:u.create(O,G)};if(u.is(v)&&u.is(g))return{start:v,end:g};throw new Error("Range#create called with invalid arguments[".concat(v,", ").concat(g,", ").concat(O,", ").concat(G,"]"))}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&u.is(g.start)&&u.is(g.end)}p.is=R})(d||(e.Range=d={}));var f;(function(p){function k(v,g){return{uri:v,range:g}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&d.is(g.range)&&(q.string(g.uri)||q.undefined(g.uri))}p.is=R})(f||(e.Location=f={}));var m;(function(p){function k(v,g,O,G){return{targetUri:v,targetRange:g,targetSelectionRange:O,originSelectionRange:G}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&d.is(g.targetRange)&&q.string(g.targetUri)&&d.is(g.targetSelectionRange)&&(d.is(g.originSelectionRange)||q.undefined(g.originSelectionRange))}p.is=R})(m||(e.LocationLink=m={}));var y;(function(p){function k(v,g,O,G){return{red:v,green:g,blue:O,alpha:G}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.numberRange(g.red,0,1)&&q.numberRange(g.green,0,1)&&q.numberRange(g.blue,0,1)&&q.numberRange(g.alpha,0,1)}p.is=R})(y||(e.Color=y={}));var x;(function(p){function k(v,g){return{range:v,color:g}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&d.is(g.range)&&y.is(g.color)}p.is=R})(x||(e.ColorInformation=x={}));var D;(function(p){function k(v,g,O){return{label:v,textEdit:g,additionalTextEdits:O}}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.string(g.label)&&(q.undefined(g.textEdit)||te.is(g))&&(q.undefined(g.additionalTextEdits)||q.typedArray(g.additionalTextEdits,te.is))}p.is=R})(D||(e.ColorPresentation=D={}));var N;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(N||(e.FoldingRangeKind=N={}));var A;(function(p){function k(v,g,O,G,be,ht){var Xe={startLine:v,endLine:g};return q.defined(O)&&(Xe.startCharacter=O),q.defined(G)&&(Xe.endCharacter=G),q.defined(be)&&(Xe.kind=be),q.defined(ht)&&(Xe.collapsedText=ht),Xe}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.uinteger(g.startLine)&&q.uinteger(g.startLine)&&(q.undefined(g.startCharacter)||q.uinteger(g.startCharacter))&&(q.undefined(g.endCharacter)||q.uinteger(g.endCharacter))&&(q.undefined(g.kind)||q.string(g.kind))}p.is=R})(A||(e.FoldingRange=A={}));var L;(function(p){function k(v,g){return{location:v,message:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&f.is(g.location)&&q.string(g.message)}p.is=R})(L||(e.DiagnosticRelatedInformation=L={}));var B;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(B||(e.DiagnosticSeverity=B={}));var K;(function(p){p.Unnecessary=1,p.Deprecated=2})(K||(e.DiagnosticTag=K={}));var F;(function(p){function k(R){var v=R;return q.objectLiteral(v)&&q.string(v.href)}p.is=k})(F||(e.CodeDescription=F={}));var P;(function(p){function k(v,g,O,G,be,ht){var Xe={range:v,message:g};return q.defined(O)&&(Xe.severity=O),q.defined(G)&&(Xe.code=G),q.defined(be)&&(Xe.source=be),q.defined(ht)&&(Xe.relatedInformation=ht),Xe}p.create=k;function R(v){var g,O=v;return q.defined(O)&&d.is(O.range)&&q.string(O.message)&&(q.number(O.severity)||q.undefined(O.severity))&&(q.integer(O.code)||q.string(O.code)||q.undefined(O.code))&&(q.undefined(O.codeDescription)||q.string((g=O.codeDescription)===null||g===void 0?void 0:g.href))&&(q.string(O.source)||q.undefined(O.source))&&(q.undefined(O.relatedInformation)||q.typedArray(O.relatedInformation,L.is))}p.is=R})(P||(e.Diagnostic=P={}));var U;(function(p){function k(v,g){for(var O=[],G=2;G0&&(be.arguments=O),be}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.title)&&q.string(g.command)}p.is=R})(U||(e.Command=U={}));var te;(function(p){function k(O,G){return{range:O,newText:G}}p.replace=k;function R(O,G){return{range:{start:O,end:O},newText:G}}p.insert=R;function v(O){return{range:O,newText:""}}p.del=v;function g(O){var G=O;return q.objectLiteral(G)&&q.string(G.newText)&&d.is(G.range)}p.is=g})(te||(e.TextEdit=te={}));var _e;(function(p){function k(v,g,O){var G={label:v};return g!==void 0&&(G.needsConfirmation=g),O!==void 0&&(G.description=O),G}p.create=k;function R(v){var g=v;return q.objectLiteral(g)&&q.string(g.label)&&(q.boolean(g.needsConfirmation)||g.needsConfirmation===void 0)&&(q.string(g.description)||g.description===void 0)}p.is=R})(_e||(e.ChangeAnnotation=_e={}));var Be;(function(p){function k(R){var v=R;return q.string(v)}p.is=k})(Be||(e.ChangeAnnotationIdentifier=Be={}));var Je;(function(p){function k(O,G,be){return{range:O,newText:G,annotationId:be}}p.replace=k;function R(O,G,be){return{range:{start:O,end:O},newText:G,annotationId:be}}p.insert=R;function v(O,G){return{range:O,newText:"",annotationId:G}}p.del=v;function g(O){var G=O;return te.is(G)&&(_e.is(G.annotationId)||Be.is(G.annotationId))}p.is=g})(Je||(e.AnnotatedTextEdit=Je={}));var Dt;(function(p){function k(v,g){return{textDocument:v,edits:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&We.is(g.textDocument)&&Array.isArray(g.edits)}p.is=R})(Dt||(e.TextDocumentEdit=Dt={}));var we;(function(p){function k(v,g,O){var G={kind:"create",uri:v};return g!==void 0&&(g.overwrite!==void 0||g.ignoreIfExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(v){var g=v;return g&&g.kind==="create"&&q.string(g.uri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(we||(e.CreateFile=we={}));var X;(function(p){function k(v,g,O,G){var be={kind:"rename",oldUri:v,newUri:g};return O!==void 0&&(O.overwrite!==void 0||O.ignoreIfExists!==void 0)&&(be.options=O),G!==void 0&&(be.annotationId=G),be}p.create=k;function R(v){var g=v;return g&&g.kind==="rename"&&q.string(g.oldUri)&&q.string(g.newUri)&&(g.options===void 0||(g.options.overwrite===void 0||q.boolean(g.options.overwrite))&&(g.options.ignoreIfExists===void 0||q.boolean(g.options.ignoreIfExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(X||(e.RenameFile=X={}));var z;(function(p){function k(v,g,O){var G={kind:"delete",uri:v};return g!==void 0&&(g.recursive!==void 0||g.ignoreIfNotExists!==void 0)&&(G.options=g),O!==void 0&&(G.annotationId=O),G}p.create=k;function R(v){var g=v;return g&&g.kind==="delete"&&q.string(g.uri)&&(g.options===void 0||(g.options.recursive===void 0||q.boolean(g.options.recursive))&&(g.options.ignoreIfNotExists===void 0||q.boolean(g.options.ignoreIfNotExists)))&&(g.annotationId===void 0||Be.is(g.annotationId))}p.is=R})(z||(e.DeleteFile=z={}));var se;(function(p){function k(R){var v=R;return v&&(v.changes!==void 0||v.documentChanges!==void 0)&&(v.documentChanges===void 0||v.documentChanges.every(function(g){return q.string(g.kind)?we.is(g)||X.is(g)||z.is(g):Dt.is(g)}))}p.is=k})(se||(e.WorkspaceEdit=se={}));var re=function(){function p(k,R){this.edits=k,this.changeAnnotations=R}return p.prototype.insert=function(k,R,v){var g,O;if(v===void 0?g=te.insert(k,R):Be.is(v)?(O=v,g=Je.insert(k,R,v)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(v),g=Je.insert(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.replace=function(k,R,v){var g,O;if(v===void 0?g=te.replace(k,R):Be.is(v)?(O=v,g=Je.replace(k,R,v)):(this.assertChangeAnnotations(this.changeAnnotations),O=this.changeAnnotations.manage(v),g=Je.replace(k,R,O)),this.edits.push(g),O!==void 0)return O},p.prototype.delete=function(k,R){var v,g;if(R===void 0?v=te.del(k):Be.is(R)?(g=R,v=Je.del(k,R)):(this.assertChangeAnnotations(this.changeAnnotations),g=this.changeAnnotations.manage(R),v=Je.del(k,g)),this.edits.push(v),g!==void 0)return g},p.prototype.add=function(k){this.edits.push(k)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(k){if(k===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p}(),De=function(){function p(k){this._annotations=k===void 0?Object.create(null):k,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(k,R){var v;if(Be.is(k)?v=k:(v=this.nextId(),R=k),this._annotations[v]!==void 0)throw new Error("Id ".concat(v," is already in use."));if(R===void 0)throw new Error("No annotation provided for id ".concat(v));return this._annotations[v]=R,this._size++,v},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p}(),ge=function(){function p(k){var R=this;this._textEditChanges=Object.create(null),k!==void 0?(this._workspaceEdit=k,k.documentChanges?(this._changeAnnotations=new De(k.changeAnnotations),k.changeAnnotations=this._changeAnnotations.all(),k.documentChanges.forEach(function(v){if(Dt.is(v)){var g=new re(v.edits,R._changeAnnotations);R._textEditChanges[v.textDocument.uri]=g}})):k.changes&&Object.keys(k.changes).forEach(function(v){var g=new re(k.changes[v]);R._textEditChanges[v]=g})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(k){if(We.is(k)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var R={uri:k.uri,version:k.version},v=this._textEditChanges[R.uri];if(!v){var g=[],O={textDocument:R,edits:g};this._workspaceEdit.documentChanges.push(O),v=new re(g,this._changeAnnotations),this._textEditChanges[R.uri]=v}return v}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var v=this._textEditChanges[k];if(!v){var g=[];this._workspaceEdit.changes[k]=g,v=new re(g),this._textEditChanges[k]=v}return v}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new De,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(k,R,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;_e.is(R)||Be.is(R)?g=R:v=R;var O,G;if(g===void 0?O=we.create(k,v):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=we.create(k,v,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p.prototype.renameFile=function(k,R,v,g){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var O;_e.is(v)||Be.is(v)?O=v:g=v;var G,be;if(O===void 0?G=X.create(k,R,g):(be=Be.is(O)?O:this._changeAnnotations.manage(O),G=X.create(k,R,g,be)),this._workspaceEdit.documentChanges.push(G),be!==void 0)return be},p.prototype.deleteFile=function(k,R,v){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var g;_e.is(R)||Be.is(R)?g=R:v=R;var O,G;if(g===void 0?O=z.create(k,v):(G=Be.is(g)?g:this._changeAnnotations.manage(g),O=z.create(k,v,G)),this._workspaceEdit.documentChanges.push(O),G!==void 0)return G},p}();e.WorkspaceChange=ge;var pe;(function(p){function k(v){return{uri:v}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)}p.is=R})(pe||(e.TextDocumentIdentifier=pe={}));var St;(function(p){function k(v,g){return{uri:v,version:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)&&q.integer(g.version)}p.is=R})(St||(e.VersionedTextDocumentIdentifier=St={}));var We;(function(p){function k(v,g){return{uri:v,version:g}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)&&(g.version===null||q.integer(g.version))}p.is=R})(We||(e.OptionalVersionedTextDocumentIdentifier=We={}));var je;(function(p){function k(v,g,O,G){return{uri:v,languageId:g,version:O,text:G}}p.create=k;function R(v){var g=v;return q.defined(g)&&q.string(g.uri)&&q.string(g.languageId)&&q.integer(g.version)&&q.string(g.text)}p.is=R})(je||(e.TextDocumentItem=je={}));var bn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function k(R){var v=R;return v===p.PlainText||v===p.Markdown}p.is=k})(bn||(e.MarkupKind=bn={}));var yr;(function(p){function k(R){var v=R;return q.objectLiteral(R)&&bn.is(v.kind)&&q.string(v.value)}p.is=k})(yr||(e.MarkupContent=yr={}));var Vn;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Vn||(e.CompletionItemKind=Vn={}));var ur;(function(p){p.PlainText=1,p.Snippet=2})(ur||(e.InsertTextFormat=ur={}));var xi;(function(p){p.Deprecated=1})(xi||(e.CompletionItemTag=xi={}));var lr;(function(p){function k(v,g,O){return{newText:v,insert:g,replace:O}}p.create=k;function R(v){var g=v;return g&&q.string(g.newText)&&d.is(g.insert)&&d.is(g.replace)}p.is=R})(lr||(e.InsertReplaceEdit=lr={}));var dr;(function(p){p.asIs=1,p.adjustIndentation=2})(dr||(e.InsertTextMode=dr={}));var Qi;(function(p){function k(R){var v=R;return v&&(q.string(v.detail)||v.detail===void 0)&&(q.string(v.description)||v.description===void 0)}p.is=k})(Qi||(e.CompletionItemLabelDetails=Qi={}));var wr;(function(p){function k(R){return{label:R}}p.create=k})(wr||(e.CompletionItem=wr={}));var Sr;(function(p){function k(R,v){return{items:R||[],isIncomplete:!!v}}p.create=k})(Sr||(e.CompletionList=Sr={}));var xr;(function(p){function k(v){return v.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=k;function R(v){var g=v;return q.string(g)||q.objectLiteral(g)&&q.string(g.language)&&q.string(g.value)}p.is=R})(xr||(e.MarkedString=xr={}));var mt;(function(p){function k(R){var v=R;return!!v&&q.objectLiteral(v)&&(yr.is(v.contents)||xr.is(v.contents)||q.typedArray(v.contents,xr.is))&&(R.range===void 0||d.is(R.range))}p.is=k})(mt||(e.Hover=mt={}));var fr;(function(p){function k(R,v){return v?{label:R,documentation:v}:{label:R}}p.create=k})(fr||(e.ParameterInformation=fr={}));var Ki;(function(p){function k(R,v){for(var g=[],O=2;O=0;an--){var yn=ht[an],Qn=O.offsetAt(yn.range.start),Ie=O.offsetAt(yn.range.end);if(Ie<=Xe)be=be.substring(0,Qn)+yn.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Xe=Qn}return be}p.applyEdits=v;function g(O,G){if(O.length<=1)return O;var be=O.length/2|0,ht=O.slice(0,be),Xe=O.slice(be);g(ht,G),g(Xe,G);for(var an=0,yn=0,Qn=0;an=0;an--){var yn=ht[an],Qn=O.offsetAt(yn.range.start),Ie=O.offsetAt(yn.range.end);if(Ie<=Xe)be=be.substring(0,Qn)+yn.newText+be.substring(Ie,be.length);else throw new Error("Overlapping edit");Xe=Qn}return be}p.applyEdits=v;function g(O,G){if(O.length<=1)return O;var be=O.length/2|0,ht=O.slice(0,be),Xe=O.slice(be);g(ht,G),g(Xe,G);for(var an=0,yn=0,Qn=0;an0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),v=0,g=R.length;if(g===0)return u.create(0,k);for(;vk?g=O:v=O+1}var G=v-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var v=R[k.line],g=k.line+1"u"}p.undefined=v;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Hr,Yi){return k.call(Ie)==="[object Number]"&&Hr<=Ie&&Ie<=Yi}p.numberRange=be;function ht(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ht;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Hr){return Array.isArray(Ie)&&Ie.every(Hr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var wo=Bi(),W_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(W_||(hn.MessageDirection=W_={}));var mh=class{constructor(e){this.method=e}};hn.RegistrationType=mh;var bh=class extends wo.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=bh;var _h=class extends wo.RequestType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolRequestType=_h;var vh=class extends wo.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=vh;var yh=class extends wo.NotificationType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolNotificationType=yh});var Lc=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function WA(t){return t===!0||t===!1}It.boolean=WA;function j_(t){return typeof t=="string"||t instanceof String}It.string=j_;function jA(t){return typeof t=="number"||t instanceof Number}It.number=jA;function zA(t){return t instanceof Error}It.error=zA;function HA(t){return typeof t=="function"}It.func=HA;function z_(t){return Array.isArray(t)}It.array=z_;function VA(t){return z_(t)&&t.every(e=>j_(e))}It.stringArray=VA;function GA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=GA;function QA(t){return t!==null&&typeof t=="object"}It.objectLiteral=QA});var G_=I(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.ImplementationRequest=void 0;var H_=pt(),V_;(function(t){t.method="textDocument/implementation",t.messageDirection=H_.MessageDirection.clientToServer,t.type=new H_.ProtocolRequestType(t.method)})(V_||(Bc.ImplementationRequest=V_={}))});var J_=I(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Uc.TypeDefinitionRequest=void 0;var Q_=pt(),K_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=Q_.MessageDirection.clientToServer,t.type=new Q_.ProtocolRequestType(t.method)})(K_||(Uc.TypeDefinitionRequest=K_={}))});var Z_=I(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.DidChangeWorkspaceFoldersNotification=So.WorkspaceFoldersRequest=void 0;var $c=pt(),X_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=$c.MessageDirection.serverToClient,t.type=new $c.ProtocolRequestType0(t.method)})(X_||(So.WorkspaceFoldersRequest=X_={}));var Y_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=$c.MessageDirection.clientToServer,t.type=new $c.ProtocolNotificationType(t.method)})(Y_||(So.DidChangeWorkspaceFoldersNotification=Y_={}))});var nv=I(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.ConfigurationRequest=void 0;var ev=pt(),tv;(function(t){t.method="workspace/configuration",t.messageDirection=ev.MessageDirection.serverToClient,t.type=new ev.ProtocolRequestType(t.method)})(tv||(Wc.ConfigurationRequest=tv={}))});var ov=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.ColorPresentationRequest=xo.DocumentColorRequest=void 0;var jc=pt(),rv;(function(t){t.method="textDocument/documentColor",t.messageDirection=jc.MessageDirection.clientToServer,t.type=new jc.ProtocolRequestType(t.method)})(rv||(xo.DocumentColorRequest=rv={}));var iv;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=jc.MessageDirection.clientToServer,t.type=new jc.ProtocolRequestType(t.method)})(iv||(xo.ColorPresentationRequest=iv={}))});var cv=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.FoldingRangeRefreshRequest=Po.FoldingRangeRequest=void 0;var zc=pt(),sv;(function(t){t.method="textDocument/foldingRange",t.messageDirection=zc.MessageDirection.clientToServer,t.type=new zc.ProtocolRequestType(t.method)})(sv||(Po.FoldingRangeRequest=sv={}));var av;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=zc.MessageDirection.serverToClient,t.type=new zc.ProtocolRequestType0(t.method)})(av||(Po.FoldingRangeRefreshRequest=av={}))});var dv=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.DeclarationRequest=void 0;var uv=pt(),lv;(function(t){t.method="textDocument/declaration",t.messageDirection=uv.MessageDirection.clientToServer,t.type=new uv.ProtocolRequestType(t.method)})(lv||(Hc.DeclarationRequest=lv={}))});var gv=I(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});Vc.SelectionRangeRequest=void 0;var fv=pt(),hv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=fv.MessageDirection.clientToServer,t.type=new fv.ProtocolRequestType(t.method)})(hv||(Vc.SelectionRangeRequest=hv={}))});var _v=I(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.WorkDoneProgressCancelNotification=si.WorkDoneProgressCreateRequest=si.WorkDoneProgress=void 0;var KA=Bi(),Gc=pt(),pv;(function(t){t.type=new KA.ProgressType;function e(n){return n===t.type}t.is=e})(pv||(si.WorkDoneProgress=pv={}));var mv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Gc.MessageDirection.serverToClient,t.type=new Gc.ProtocolRequestType(t.method)})(mv||(si.WorkDoneProgressCreateRequest=mv={}));var bv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Gc.MessageDirection.clientToServer,t.type=new Gc.ProtocolNotificationType(t.method)})(bv||(si.WorkDoneProgressCancelNotification=bv={}))});var Sv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.CallHierarchyOutgoingCallsRequest=ai.CallHierarchyIncomingCallsRequest=ai.CallHierarchyPrepareRequest=void 0;var Co=pt(),vv;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(vv||(ai.CallHierarchyPrepareRequest=vv={}));var yv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(yv||(ai.CallHierarchyIncomingCallsRequest=yv={}));var wv;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(wv||(ai.CallHierarchyOutgoingCallsRequest=wv={}))});var Rv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var qr=pt(),xv;(function(t){t.Relative="relative"})(xv||(gn.TokenFormat=xv={}));var Es;(function(t){t.method="textDocument/semanticTokens",t.type=new qr.RegistrationType(t.method)})(Es||(gn.SemanticTokensRegistrationType=Es={}));var Pv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=qr.MessageDirection.clientToServer,t.type=new qr.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(Pv||(gn.SemanticTokensRequest=Pv={}));var Cv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=qr.MessageDirection.clientToServer,t.type=new qr.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(Cv||(gn.SemanticTokensDeltaRequest=Cv={}));var kv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=qr.MessageDirection.clientToServer,t.type=new qr.ProtocolRequestType(t.method),t.registrationMethod=Es.method})(kv||(gn.SemanticTokensRangeRequest=kv={}));var Tv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=qr.MessageDirection.serverToClient,t.type=new qr.ProtocolRequestType0(t.method)})(Tv||(gn.SemanticTokensRefreshRequest=Tv={}))});var Ev=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.ShowDocumentRequest=void 0;var Dv=pt(),Fv;(function(t){t.method="window/showDocument",t.messageDirection=Dv.MessageDirection.serverToClient,t.type=new Dv.ProtocolRequestType(t.method)})(Fv||(Qc.ShowDocumentRequest=Fv={}))});var Av=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.LinkedEditingRangeRequest=void 0;var Iv=pt(),Mv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Iv.MessageDirection.clientToServer,t.type=new Iv.ProtocolRequestType(t.method)})(Mv||(Kc.LinkedEditingRangeRequest=Mv={}))});var Wv=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Nv;(function(t){t.file="file",t.folder="folder"})(Nv||(Qt.FileOperationPatternKind=Nv={}));var qv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(qv||(Qt.WillCreateFilesRequest=qv={}));var Ov;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Ov||(Qt.DidCreateFilesNotification=Ov={}));var Lv;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Lv||(Qt.WillRenameFilesRequest=Lv={}));var Bv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Bv||(Qt.DidRenameFilesNotification=Bv={}));var Uv;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Uv||(Qt.DidDeleteFilesNotification=Uv={}));var $v;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})($v||(Qt.WillDeleteFilesRequest=$v={}))});var Gv=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.MonikerRequest=ci.MonikerKind=ci.UniquenessLevel=void 0;var jv=pt(),zv;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(zv||(ci.UniquenessLevel=zv={}));var Hv;(function(t){t.$import="import",t.$export="export",t.local="local"})(Hv||(ci.MonikerKind=Hv={}));var Vv;(function(t){t.method="textDocument/moniker",t.messageDirection=jv.MessageDirection.clientToServer,t.type=new jv.ProtocolRequestType(t.method)})(Vv||(ci.MonikerRequest=Vv={}))});var Xv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.TypeHierarchySubtypesRequest=ui.TypeHierarchySupertypesRequest=ui.TypeHierarchyPrepareRequest=void 0;var ko=pt(),Qv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Qv||(ui.TypeHierarchyPrepareRequest=Qv={}));var Kv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Kv||(ui.TypeHierarchySupertypesRequest=Kv={}));var Jv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Jv||(ui.TypeHierarchySubtypesRequest=Jv={}))});var ey=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.InlineValueRefreshRequest=To.InlineValueRequest=void 0;var Jc=pt(),Yv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Jc.MessageDirection.clientToServer,t.type=new Jc.ProtocolRequestType(t.method)})(Yv||(To.InlineValueRequest=Yv={}));var Zv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Jc.MessageDirection.serverToClient,t.type=new Jc.ProtocolRequestType0(t.method)})(Zv||(To.InlineValueRefreshRequest=Zv={}))});var iy=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.InlayHintRefreshRequest=li.InlayHintResolveRequest=li.InlayHintRequest=void 0;var Ro=pt(),ty;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(ty||(li.InlayHintRequest=ty={}));var ny;(function(t){t.method="inlayHint/resolve",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(ny||(li.InlayHintResolveRequest=ny={}));var ry;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Ro.MessageDirection.serverToClient,t.type=new Ro.ProtocolRequestType0(t.method)})(ry||(li.InlayHintRefreshRequest=ry={}))});var dy=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var ly=Bi(),JA=Lc(),Do=pt(),oy;(function(t){function e(n){let i=n;return i&&JA.boolean(i.retriggerRequest)}t.is=e})(oy||(Un.DiagnosticServerCancellationData=oy={}));var sy;(function(t){t.Full="full",t.Unchanged="unchanged"})(sy||(Un.DocumentDiagnosticReportKind=sy={}));var ay;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new ly.ProgressType})(ay||(Un.DocumentDiagnosticRequest=ay={}));var cy;(function(t){t.method="workspace/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new ly.ProgressType})(cy||(Un.WorkspaceDiagnosticRequest=cy={}));var uy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(uy||(Un.DiagnosticRefreshRequest=uy={}))});var _y=I(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.DidCloseNotebookDocumentNotification=wt.DidSaveNotebookDocumentNotification=wt.DidChangeNotebookDocumentNotification=wt.NotebookCellArrayChange=wt.DidOpenNotebookDocumentNotification=wt.NotebookDocumentSyncRegistrationType=wt.NotebookDocument=wt.NotebookCell=wt.ExecutionSummary=wt.NotebookCellKind=void 0;var Is=Oc(),er=Lc(),br=pt(),wh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(wh||(wt.NotebookCellKind=wh={}));var Sh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Is.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(Sh||(wt.ExecutionSummary=Sh={}));var Xc;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&wh.is(u.kind)&&Is.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!Sh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.InlineCompletionRequest=void 0;var vy=pt(),yy;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=vy.MessageDirection.clientToServer,t.type=new vy.ProtocolRequestType(t.method)})(yy||(Yc.InlineCompletionRequest=yy={}))});var Aw=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),Sy=Oc(),Lt=Lc(),XA=G_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return XA.ImplementationRequest}});var YA=J_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return YA.TypeDefinitionRequest}});var Fw=Z_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Fw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Fw.DidChangeWorkspaceFoldersNotification}});var ZA=nv();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return ZA.ConfigurationRequest}});var Ew=ov();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Ew.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Ew.ColorPresentationRequest}});var Iw=cv();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Iw.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Iw.FoldingRangeRefreshRequest}});var eN=dv();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return eN.DeclarationRequest}});var tN=gv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return tN.SelectionRangeRequest}});var Th=_v();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return Th.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return Th.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return Th.WorkDoneProgressCancelNotification}});var Rh=Sv();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Rh.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Rh.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Rh.CallHierarchyPrepareRequest}});var Eo=Rv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Eo.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Eo.SemanticTokensRegistrationType}});var nN=Ev();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return nN.ShowDocumentRequest}});var rN=Av();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return rN.LinkedEditingRangeRequest}});var Ui=Wv();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return Ui.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Ui.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Ui.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Ui.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Ui.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Ui.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Ui.WillDeleteFilesRequest}});var Dh=Gv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Dh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Dh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Dh.MonikerRequest}});var Fh=Xv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Fh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Fh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Fh.TypeHierarchySupertypesRequest}});var Mw=ey();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Mw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Mw.InlineValueRefreshRequest}});var Eh=iy();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Eh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Eh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Eh.InlayHintRefreshRequest}});var Ms=dy();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Ms.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Ms.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Ms.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Ms.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Ms.DiagnosticRefreshRequest}});var _r=_y();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return _r.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return _r.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return _r.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return _r.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return _r.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return _r.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidCloseNotebookDocumentNotification}});var iN=wy();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return iN.InlineCompletionRequest}});var xh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(xh||(w.TextDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(Ph||(w.NotebookDocumentFilter=Ph={}));var Ch;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||Ph.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ch||(w.NotebookCellTextDocumentFilter=Ch={}));var kh;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!xh.is(i)&&!Ch.is(i))return!1;return!0}t.is=e})(kh||(w.DocumentSelector=kh={}));var xy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(xy||(w.RegistrationRequest=xy={}));var Py;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Py||(w.UnregistrationRequest=Py={}));var Cy;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(Cy||(w.ResourceOperationKind=Cy={}));var ky;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(ky||(w.FailureHandlingKind=ky={}));var Ty;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(Ty||(w.PositionEncodingKind=Ty={}));var Ry;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Ry||(w.StaticRegistrationOptions=Ry={}));var Dy;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||kh.is(i.documentSelector))}t.is=e})(Dy||(w.TextDocumentRegistrationOptions=Dy={}));var Fy;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(Fy||(w.WorkDoneProgressOptions=Fy={}));var Ey;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ey||(w.InitializeRequest=Ey={}));var Iy;(function(t){t.unknownProtocolVersion=1})(Iy||(w.InitializeErrorCodes=Iy={}));var My;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(My||(w.InitializedNotification=My={}));var Ay;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(Ay||(w.ShutdownRequest=Ay={}));var Ny;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Ny||(w.ExitNotification=Ny={}));var qy;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(qy||(w.DidChangeConfigurationNotification=qy={}));var Oy;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(Oy||(w.MessageType=Oy={}));var Ly;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Ly||(w.ShowMessageNotification=Ly={}));var By;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(By||(w.ShowMessageRequest=By={}));var Uy;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Uy||(w.LogMessageNotification=Uy={}));var $y;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})($y||(w.TelemetryEventNotification=$y={}));var Wy;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Wy||(w.TextDocumentSyncKind=Wy={}));var jy;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(jy||(w.DidOpenTextDocumentNotification=jy={}));var zy;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(zy||(w.TextDocumentContentChangeEvent=zy={}));var Hy;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Hy||(w.DidChangeTextDocumentNotification=Hy={}));var Vy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Vy||(w.DidCloseTextDocumentNotification=Vy={}));var Gy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Gy||(w.DidSaveTextDocumentNotification=Gy={}));var Qy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(Qy||(w.TextDocumentSaveReason=Qy={}));var Ky;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Ky||(w.WillSaveTextDocumentNotification=Ky={}));var Jy;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Jy||(w.WillSaveTextDocumentWaitUntilRequest=Jy={}));var Xy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Xy||(w.DidChangeWatchedFilesNotification=Xy={}));var Yy;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Yy||(w.FileChangeType=Yy={}));var Zy;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Sy.URI.is(i.baseUri)||Sy.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Zy||(w.RelativePattern=Zy={}));var ew;(function(t){t.Create=1,t.Change=2,t.Delete=4})(ew||(w.WatchKind=ew={}));var tw;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(tw||(w.PublishDiagnosticsNotification=tw={}));var nw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(nw||(w.CompletionTriggerKind=nw={}));var rw;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(rw||(w.CompletionRequest=rw={}));var iw;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.CompletionResolveRequest=iw={}));var ow;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ow||(w.HoverRequest=ow={}));var sw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(sw||(w.SignatureHelpTriggerKind=sw={}));var aw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.SignatureHelpRequest=aw={}));var cw;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.DefinitionRequest=cw={}));var uw;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.ReferencesRequest=uw={}));var lw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.DocumentHighlightRequest=lw={}));var dw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.DocumentSymbolRequest=dw={}));var fw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.CodeActionRequest=fw={}));var hw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.CodeActionResolveRequest=hw={}));var gw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(gw||(w.WorkspaceSymbolRequest=gw={}));var pw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(pw||(w.WorkspaceSymbolResolveRequest=pw={}));var mw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.CodeLensRequest=mw={}));var bw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(bw||(w.CodeLensResolveRequest=bw={}));var _w;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(_w||(w.CodeLensRefreshRequest=_w={}));var vw;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentLinkRequest=vw={}));var yw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentLinkResolveRequest=yw={}));var ww;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ww||(w.DocumentFormattingRequest=ww={}));var Sw;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Sw||(w.DocumentRangeFormattingRequest=Sw={}));var xw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.DocumentRangesFormattingRequest=xw={}));var Pw;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Pw||(w.DocumentOnTypeFormattingRequest=Pw={}));var Cw;(function(t){t.Identifier=1})(Cw||(w.PrepareSupportDefaultBehavior=Cw={}));var kw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(kw||(w.RenameRequest=kw={}));var Tw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Tw||(w.PrepareRenameRequest=Tw={}));var Rw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Rw||(w.ExecuteCommandRequest=Rw={}));var Dw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(Dw||(w.ApplyWorkspaceEditRequest=Dw={}))});var qw=I(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});Zc.createProtocolConnection=void 0;var Nw=Bi();function oN(t,e,n,i){return Nw.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Nw.createMessageConnection)(t,e,n,i)}Zc.createProtocolConnection=oN});var Lw=I(pn=>{"use strict";var sN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),eu=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&sN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;eu(Bi(),pn);eu(Oc(),pn);eu(pt(),pn);eu(Aw(),pn);var aN=qw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return aN.createProtocolConnection}});var Ow;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(Ow||(pn.LSPErrorCodes=Ow={}))});var kt=I(vr=>{"use strict";var cN=vr&&vr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Bw=vr&&vr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cN(e,t,n)};Object.defineProperty(vr,"__esModule",{value:!0});vr.createProtocolConnection=void 0;var uN=ph();Bw(ph(),vr);Bw(Lw(),vr);function lN(t,e,n,i){return(0,uN.createMessageConnection)(t,e,n,i)}vr.createProtocolConnection=lN});var Ih=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var As=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},Ns=class t extends As{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};Ns._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];Ns._timeHighBits=["8","9","a","b"];$n.empty=new As("00000000-0000-0000-0000-000000000000");function Uw(){return new Ns}$n.v4=Uw;var dN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function $w(t){return dN.test(t)}$n.isUUID=$w;function fN(t){if(!$w(t))throw new Error("invalid uuid");return new As(t)}$n.parse=fN;function hN(){return Uw().asHex()}$n.generateUuid=hN});var Ww=I(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.attachPartialResult=fi.ProgressFeature=fi.attachWorkDone=void 0;var di=kt(),gN=Ih(),$i=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(di.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(di.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(di.WorkDoneProgress.type,this._token,{kind:"end"})}};$i.Instances=new Map;var tu=class extends $i{constructor(e,n){super(e,n),this._source=new di.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},qs=class{constructor(){}begin(){}report(){}done(){}},nu=class extends qs{constructor(){super(),this._source=new di.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function pN(t,e){if(e===void 0||e.workDoneToken===void 0)return new qs;let n=e.workDoneToken;return delete e.workDoneToken,new $i(t,n)}fi.attachWorkDone=pN;var mN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(di.WorkDoneProgressCancelNotification.type,n=>{let i=$i.Instances.get(n.token);(i instanceof tu||i instanceof nu)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new qs:new $i(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,gN.generateUuid)();return this.connection.sendRequest(di.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new tu(this.connection,e))}else return Promise.resolve(new nu)}};fi.ProgressFeature=mN;var Mh;(function(t){t.type=new di.ProgressType})(Mh||(Mh={}));var Ah=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Mh.type,this._token,e)}};function bN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Ah(t,n)}fi.attachPartialResult=bN});var jw=I(ru=>{"use strict";Object.defineProperty(ru,"__esModule",{value:!0});ru.ConfigurationFeature=void 0;var _N=kt(),vN=gc(),yN=t=>class extends t{getConfiguration(e){return e?vN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(_N.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};ru.ConfigurationFeature=yN});var zw=I(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.WorkspaceFoldersFeature=void 0;var iu=kt(),wN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new iu.Emitter,this.connection.onNotification(iu.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(iu.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(iu.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};ou.WorkspaceFoldersFeature=wN});var Hw=I(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.CallHierarchyFeature=void 0;var Nh=kt(),SN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Nh.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Nh.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Nh.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};su.CallHierarchyFeature=SN});var Oh=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.SemanticTokensBuilder=hi.SemanticTokensDiff=hi.SemanticTokensFeature=void 0;var au=kt(),xN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(au.SemanticTokensRefreshRequest.type),on:e=>{let n=au.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=au.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=au.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};hi.SemanticTokensFeature=xN;var cu=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new cu(this._prevData,this._data).computeDiff()}:this.build()}};hi.SemanticTokensBuilder=qh});var Vw=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.ShowDocumentFeature=void 0;var PN=kt(),CN=t=>class extends t{showDocument(e){return this.connection.sendRequest(PN.ShowDocumentRequest.type,e)}};uu.ShowDocumentFeature=CN});var Gw=I(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.FileOperationsFeature=void 0;var Io=kt(),kN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Io.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Io.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Io.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Io.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Io.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Io.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};lu.FileOperationsFeature=kN});var Qw=I(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.LinkedEditingRangeFeature=void 0;var TN=kt(),RN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(TN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};du.LinkedEditingRangeFeature=RN});var Kw=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.TypeHierarchyFeature=void 0;var Lh=kt(),DN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Lh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Lh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Lh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};fu.TypeHierarchyFeature=DN});var Xw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.InlineValueFeature=void 0;var Jw=kt(),FN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Jw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Jw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};hu.InlineValueFeature=FN});var Zw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.FoldingRangeFeature=void 0;var Yw=kt(),EN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Yw.FoldingRangeRefreshRequest.type),on:e=>{let n=Yw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};gu.FoldingRangeFeature=EN});var eS=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.InlayHintFeature=void 0;var Bh=kt(),IN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Bh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Bh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Bh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};pu.InlayHintFeature=IN});var tS=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.DiagnosticFeature=void 0;var Os=kt(),MN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Os.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Os.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Os.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Os.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Os.WorkspaceDiagnosticRequest.partialResult,n)))}}};mu.DiagnosticFeature=MN});var $h=I(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.TextDocuments=void 0;var Wi=kt(),Uh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new Wi.Emitter,this._onDidOpen=new Wi.Emitter,this._onDidClose=new Wi.Emitter,this._onDidSave=new Wi.Emitter,this._onWillSave=new Wi.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=Wi.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),Wi.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};bu.TextDocuments=Uh});var jh=I(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.NotebookDocuments=Mo.NotebookSyncFeature=void 0;var Wn=kt(),nS=$h(),AN=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Mo.NotebookSyncFeature=AN;var _u=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};_u.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var Wh=class{constructor(e){e instanceof nS.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new nS.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new _u,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],y=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),y.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of y)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Mo.NotebookDocuments=Wh});var rS=I(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.MonikerFeature=void 0;var NN=kt(),qN=t=>class extends t{get moniker(){return{on:e=>{let n=NN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};vu.MonikerFeature=qN});var Kh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=gc(),Hh=Ih(),we=Ww(),ON=jw(),LN=zw(),BN=Hw(),UN=Oh(),$N=Vw(),WN=Gw(),jN=Qw(),zN=Kw(),HN=Xw(),VN=Zw(),GN=eS(),QN=tS(),KN=jh(),JN=rS();function zh(t){if(t!==null)return t}var Vh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Vh;var yu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(zh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(zh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(zh)}},iS=(0,$N.ShowDocumentFeature)((0,we.ProgressFeature)(Gh)),oS;(function(t){function e(){return new wu}t.create=e})(oS||($e.BulkRegistration=oS={}));var wu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=Hh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},sS;(function(t){function e(){return new Ls(void 0,[])}t.create=e})(sS||($e.BulkUnregistration=sS={}));var Ls=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},Su=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof wu?this.registerMany(e):e instanceof Ls?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=Hh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=Hh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Ls(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Qh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},aS=(0,WN.FileOperationsFeature)((0,LN.WorkspaceFoldersFeature)((0,ON.ConfigurationFeature)(Qh))),xu=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},Pu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Cu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Cu;var cS=(0,VN.FoldingRangeFeature)((0,JN.MonikerFeature)((0,QN.DiagnosticFeature)((0,GN.InlayHintFeature)((0,HN.InlineValueFeature)((0,zN.TypeHierarchyFeature)((0,jN.LinkedEditingRangeFeature)((0,UN.SemanticTokensFeature)((0,BN.CallHierarchyFeature)(Cu))))))))),ku=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,we.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,we.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=ku;var uS=(0,KN.NotebookSyncFeature)(ku);function lS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=hS;function gS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=gS;function pS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=pS;function mS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=mS;function bS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=bS;function XN(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,lS),tracer:n(t.tracer,e.tracer,fS),telemetry:n(t.telemetry,e.telemetry,dS),client:n(t.client,e.client,hS),window:n(t.window,e.window,gS),workspace:n(t.workspace,e.workspace,pS),languages:n(t.languages,e.languages,mS),notebooks:n(t.notebooks,e.notebooks,bS)}}$e.combineFeatures=XN;function YN(t,e,n){let i=n&&n.console?new(n.console(yu)):new yu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(xu)):new xu,u=n&&n.telemetry?new(n.telemetry(Pu)):new Pu,d=n&&n.client?new(n.client(Su)):new Su,f=n&&n.window?new(n.window(iS)):new iS,m=n&&n.workspace?new(n.workspace(aS)):new aS,y=n&&n.languages?new(n.languages(cS)):new cS,x=n&&n.notebooks?new(n.notebooks(uS)):new uS,D=[i,c,u,d,f,m,y,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return y},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),(0,we.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,we.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,we.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let ve=te.capabilities;ve||(ve={},te.capabilities=ve),ve.textDocumentSync===void 0||ve.textDocumentSync===null?ve.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(ve.textDocumentSync)&&!jn.number(ve.textDocumentSync.change)&&(ve.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(ve);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=YN});var _S=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var ZN=require("url"),tr=require("path"),Jh=require("fs"),eg=require("child_process");function eq(t){let e=ZN.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=eq;function Xh(){return process.platform==="win32"}function Tu(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(y=>m[y]=f[y]),e&&Jh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let y=(0,eg.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(y.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}y.on("error",D=>{d(D)}),y.on("message",D=>{D.c==="r"&&(y.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};y.send(x)}catch(y){d(y)}})}mn.resolve=Tu;function Yh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Xh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,eg.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Xh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Yh;function tq(t){let e="yarn",n={encoding:"utf8"};Xh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,eg.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=tq;var Zh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Jh.existsSync(__filename.toUpperCase())||!Jh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Zh||(mn.FileSystem=Zh={}));function nq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),Tu(e,n,n,i).then(s=>Zh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>Tu(e,Yh(i),t,i))):Tu(e,Yh(i),t,i)}mn.resolveModulePath=nq});var tg=I((Tz,vS)=>{"use strict";vS.exports=kt()});var yS=I(Ru=>{"use strict";Object.defineProperty(Ru,"__esModule",{value:!0});Ru.InlineCompletionFeature=void 0;var rq=kt(),iq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(rq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Ru.InlineCompletionFeature=iq});var xS=I(Kt=>{"use strict";var oq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),SS=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&oq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var sq=Oh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return sq.SemanticTokensBuilder}});var aq=yS();SS(kt(),Kt);var cq=$h();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return cq.TextDocuments}});var uq=jh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return uq.NotebookDocuments}});SS(Kh(),Kt);var wS;(function(t){t.all={__brand:"features",languages:aq.InlineCompletionFeature}})(wS||(Kt.ProposedFeatures=wS={}))});var rg=I(zn=>{"use strict";var lq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),TS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&lq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var PS=require("node:util"),ng=gc(),dq=Kh(),Bs=_S(),ji=tg();TS(tg(),zn);TS(xS(),zn);var CS;(function(t){t.uriToFilePath=Bs.uriToFilePath,t.resolveGlobalNodePath=Bs.resolveGlobalNodePath,t.resolveGlobalYarnPath=Bs.resolveGlobalYarnPath,t.resolve=Bs.resolve,t.resolveModulePath=Bs.resolveModulePath})(CS||(zn.Files=CS={}));var kS;function Du(){if(kS!==void 0)try{kS.end()}catch{}}var Ao=!1,RS;function fq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(RS=setInterval(()=>{try{process.kill(i,0)}catch{Du(),process.exit(Ao?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;ng.number(e)&&RS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(Ao?0:1)}},3e3)},get shutdownReceived(){return Ao},set shutdownReceived(t){Ao=t},exit:t=>{Du(),process.exit(t)}};function gq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),ji.ConnectionStrategy.is(t)||ji.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),pq(c,u,d,s)}zn.createConnection=gq;function pq(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,y=process.argv.slice(2);for(let x=0;x{Du(),process.exit(Ao?0:1)}),f.on("close",()=>{Du(),process.exit(Ao?0:1)})}let d=f=>{let m=(0,ji.createProtocolConnection)(t,e,f,n);return s&&mq(f),m};return(0,dq.createConnection)(d,hq,i)}function mq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,PS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,PS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} -${c}`)},console.warn=function(...s){t.warn(e(s))}}});var FS=I((Iz,DS)=>{"use strict";DS.exports=rg()});var qS=I((Gz,NS)=>{"use strict";function Sq(){this.__data__=[],this.size=0}NS.exports=Sq});var ag=I((Qz,OS)=>{"use strict";function xq(t,e){return t===e||t!==t&&e!==e}OS.exports=xq});var $s=I((Kz,LS)=>{"use strict";var Pq=ag();function Cq(t,e){for(var n=t.length;n--;)if(Pq(t[n][0],e))return n;return-1}LS.exports=Cq});var US=I((Jz,BS)=>{"use strict";var kq=$s(),Tq=Array.prototype,Rq=Tq.splice;function Dq(t){var e=this.__data__,n=kq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Rq.call(e,n,1),--this.size,!0}BS.exports=Dq});var WS=I((Xz,$S)=>{"use strict";var Fq=$s();function Eq(t){var e=this.__data__,n=Fq(e,t);return n<0?void 0:e[n][1]}$S.exports=Eq});var zS=I((Yz,jS)=>{"use strict";var Iq=$s();function Mq(t){return Iq(this.__data__,t)>-1}jS.exports=Mq});var VS=I((Zz,HS)=>{"use strict";var Aq=$s();function Nq(t,e){var n=this.__data__,i=Aq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}HS.exports=Nq});var Ws=I((eH,GS)=>{"use strict";var qq=qS(),Oq=US(),Lq=WS(),Bq=zS(),Uq=VS();function No(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var $q=Ws();function Wq(){this.__data__=new $q,this.size=0}QS.exports=Wq});var XS=I((nH,JS)=>{"use strict";function jq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}JS.exports=jq});var ZS=I((rH,YS)=>{"use strict";function zq(t){return this.__data__.get(t)}YS.exports=zq});var tx=I((iH,ex)=>{"use strict";function Hq(t){return this.__data__.has(t)}ex.exports=Hq});var cg=I((oH,nx)=>{"use strict";var Vq=typeof global=="object"&&global&&global.Object===Object&&global;nx.exports=Vq});var nr=I((sH,rx)=>{"use strict";var Gq=cg(),Qq=typeof self=="object"&&self&&self.Object===Object&&self,Kq=Gq||Qq||Function("return this")();rx.exports=Kq});var Au=I((aH,ix)=>{"use strict";var Jq=nr(),Xq=Jq.Symbol;ix.exports=Xq});var cx=I((cH,ax)=>{"use strict";var ox=Au(),sx=Object.prototype,Yq=sx.hasOwnProperty,Zq=sx.toString,js=ox?ox.toStringTag:void 0;function e1(t){var e=Yq.call(t,js),n=t[js];try{t[js]=void 0;var i=!0}catch{}var s=Zq.call(t);return i&&(e?t[js]=n:delete t[js]),s}ax.exports=e1});var lx=I((uH,ux)=>{"use strict";var t1=Object.prototype,n1=t1.toString;function r1(t){return n1.call(t)}ux.exports=r1});var zs=I((lH,hx)=>{"use strict";var dx=Au(),i1=cx(),o1=lx(),s1="[object Null]",a1="[object Undefined]",fx=dx?dx.toStringTag:void 0;function c1(t){return t==null?t===void 0?a1:s1:fx&&fx in Object(t)?i1(t):o1(t)}hx.exports=c1});var qo=I((dH,gx)=>{"use strict";function u1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}gx.exports=u1});var ug=I((fH,px)=>{"use strict";var l1=zs(),d1=qo(),f1="[object AsyncFunction]",h1="[object Function]",g1="[object GeneratorFunction]",p1="[object Proxy]";function m1(t){if(!d1(t))return!1;var e=l1(t);return e==h1||e==g1||e==f1||e==p1}px.exports=m1});var bx=I((hH,mx)=>{"use strict";var b1=nr(),_1=b1["__core-js_shared__"];mx.exports=_1});var yx=I((gH,vx)=>{"use strict";var lg=bx(),_x=function(){var t=/[^.]+$/.exec(lg&&lg.keys&&lg.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function v1(t){return!!_x&&_x in t}vx.exports=v1});var dg=I((pH,wx)=>{"use strict";var y1=Function.prototype,w1=y1.toString;function S1(t){if(t!=null){try{return w1.call(t)}catch{}try{return t+""}catch{}}return""}wx.exports=S1});var xx=I((mH,Sx)=>{"use strict";var x1=ug(),P1=yx(),C1=qo(),k1=dg(),T1=/[\\^$.*+?()[\]{}|]/g,R1=/^\[object .+?Constructor\]$/,D1=Function.prototype,F1=Object.prototype,E1=D1.toString,I1=F1.hasOwnProperty,M1=RegExp("^"+E1.call(I1).replace(T1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function A1(t){if(!C1(t)||P1(t))return!1;var e=x1(t)?M1:R1;return e.test(k1(t))}Sx.exports=A1});var Cx=I((bH,Px)=>{"use strict";function N1(t,e){return t?.[e]}Px.exports=N1});var pi=I((_H,kx)=>{"use strict";var q1=xx(),O1=Cx();function L1(t,e){var n=O1(t,e);return q1(n)?n:void 0}kx.exports=L1});var Nu=I((vH,Tx)=>{"use strict";var B1=pi(),U1=nr(),$1=B1(U1,"Map");Tx.exports=$1});var Hs=I((yH,Rx)=>{"use strict";var W1=pi(),j1=W1(Object,"create");Rx.exports=j1});var Ex=I((wH,Fx)=>{"use strict";var Dx=Hs();function z1(){this.__data__=Dx?Dx(null):{},this.size=0}Fx.exports=z1});var Mx=I((SH,Ix)=>{"use strict";function H1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Ix.exports=H1});var Nx=I((xH,Ax)=>{"use strict";var V1=Hs(),G1="__lodash_hash_undefined__",Q1=Object.prototype,K1=Q1.hasOwnProperty;function J1(t){var e=this.__data__;if(V1){var n=e[t];return n===G1?void 0:n}return K1.call(e,t)?e[t]:void 0}Ax.exports=J1});var Ox=I((PH,qx)=>{"use strict";var X1=Hs(),Y1=Object.prototype,Z1=Y1.hasOwnProperty;function eO(t){var e=this.__data__;return X1?e[t]!==void 0:Z1.call(e,t)}qx.exports=eO});var Bx=I((CH,Lx)=>{"use strict";var tO=Hs(),nO="__lodash_hash_undefined__";function rO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=tO&&e===void 0?nO:e,this}Lx.exports=rO});var $x=I((kH,Ux)=>{"use strict";var iO=Ex(),oO=Mx(),sO=Nx(),aO=Ox(),cO=Bx();function Oo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var Wx=$x(),uO=Ws(),lO=Nu();function dO(){this.size=0,this.__data__={hash:new Wx,map:new(lO||uO),string:new Wx}}jx.exports=dO});var Vx=I((RH,Hx)=>{"use strict";function fO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}Hx.exports=fO});var Vs=I((DH,Gx)=>{"use strict";var hO=Vx();function gO(t,e){var n=t.__data__;return hO(e)?n[typeof e=="string"?"string":"hash"]:n.map}Gx.exports=gO});var Kx=I((FH,Qx)=>{"use strict";var pO=Vs();function mO(t){var e=pO(this,t).delete(t);return this.size-=e?1:0,e}Qx.exports=mO});var Xx=I((EH,Jx)=>{"use strict";var bO=Vs();function _O(t){return bO(this,t).get(t)}Jx.exports=_O});var Zx=I((IH,Yx)=>{"use strict";var vO=Vs();function yO(t){return vO(this,t).has(t)}Yx.exports=yO});var tP=I((MH,eP)=>{"use strict";var wO=Vs();function SO(t,e){var n=wO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}eP.exports=SO});var rP=I((AH,nP)=>{"use strict";var xO=zx(),PO=Kx(),CO=Xx(),kO=Zx(),TO=tP();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var RO=Ws(),DO=Nu(),FO=rP(),EO=200;function IO(t,e){var n=this.__data__;if(n instanceof RO){var i=n.__data__;if(!DO||i.length{"use strict";var MO=Ws(),AO=KS(),NO=XS(),qO=ZS(),OO=tx(),LO=oP();function Bo(t){var e=this.__data__=new MO(t);this.size=e.size}Bo.prototype.clear=AO;Bo.prototype.delete=NO;Bo.prototype.get=qO;Bo.prototype.has=OO;Bo.prototype.set=LO;sP.exports=Bo});var uP=I((OH,cP)=>{"use strict";function BO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var UO=pi(),$O=function(){try{var t=UO(Object,"defineProperty");return t({},"",{}),t}catch{}}();lP.exports=$O});var fg=I((BH,hP)=>{"use strict";var fP=dP();function WO(t,e,n){e=="__proto__"&&fP?fP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}hP.exports=WO});var hg=I((UH,gP)=>{"use strict";var jO=fg(),zO=ag(),HO=Object.prototype,VO=HO.hasOwnProperty;function GO(t,e,n){var i=t[e];(!(VO.call(t,e)&&zO(i,n))||n===void 0&&!(e in t))&&jO(t,e,n)}gP.exports=GO});var Gs=I(($H,pP)=>{"use strict";var QO=hg(),KO=fg();function JO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function XO(t,e){for(var n=-1,i=Array(t);++n{"use strict";function YO(t){return t!=null&&typeof t=="object"}_P.exports=YO});var yP=I((zH,vP)=>{"use strict";var ZO=zs(),eL=Uo(),tL="[object Arguments]";function nL(t){return eL(t)&&ZO(t)==tL}vP.exports=nL});var PP=I((HH,xP)=>{"use strict";var wP=yP(),rL=Uo(),SP=Object.prototype,iL=SP.hasOwnProperty,oL=SP.propertyIsEnumerable,sL=wP(function(){return arguments}())?wP:function(t){return rL(t)&&iL.call(t,"callee")&&!oL.call(t,"callee")};xP.exports=sL});var qu=I((VH,CP)=>{"use strict";var aL=Array.isArray;CP.exports=aL});var TP=I((GH,kP)=>{"use strict";function cL(){return!1}kP.exports=cL});var gg=I((Qs,$o)=>{"use strict";var uL=nr(),lL=TP(),FP=typeof Qs=="object"&&Qs&&!Qs.nodeType&&Qs,RP=FP&&typeof $o=="object"&&$o&&!$o.nodeType&&$o,dL=RP&&RP.exports===FP,DP=dL?uL.Buffer:void 0,fL=DP?DP.isBuffer:void 0,hL=fL||lL;$o.exports=hL});var IP=I((QH,EP)=>{"use strict";var gL=9007199254740991,pL=/^(?:0|[1-9]\d*)$/;function mL(t,e){var n=typeof t;return e=e??gL,!!e&&(n=="number"||n!="symbol"&&pL.test(t))&&t>-1&&t%1==0&&t{"use strict";var bL=9007199254740991;function _L(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=bL}MP.exports=_L});var NP=I((JH,AP)=>{"use strict";var vL=zs(),yL=pg(),wL=Uo(),SL="[object Arguments]",xL="[object Array]",PL="[object Boolean]",CL="[object Date]",kL="[object Error]",TL="[object Function]",RL="[object Map]",DL="[object Number]",FL="[object Object]",EL="[object RegExp]",IL="[object Set]",ML="[object String]",AL="[object WeakMap]",NL="[object ArrayBuffer]",qL="[object DataView]",OL="[object Float32Array]",LL="[object Float64Array]",BL="[object Int8Array]",UL="[object Int16Array]",$L="[object Int32Array]",WL="[object Uint8Array]",jL="[object Uint8ClampedArray]",zL="[object Uint16Array]",HL="[object Uint32Array]",dt={};dt[OL]=dt[LL]=dt[BL]=dt[UL]=dt[$L]=dt[WL]=dt[jL]=dt[zL]=dt[HL]=!0;dt[SL]=dt[xL]=dt[NL]=dt[PL]=dt[qL]=dt[CL]=dt[kL]=dt[TL]=dt[RL]=dt[DL]=dt[FL]=dt[EL]=dt[IL]=dt[ML]=dt[AL]=!1;function VL(t){return wL(t)&&yL(t.length)&&!!dt[vL(t)]}AP.exports=VL});var Ou=I((XH,qP)=>{"use strict";function GL(t){return function(e){return t(e)}}qP.exports=GL});var Lu=I((Ks,Wo)=>{"use strict";var QL=cg(),OP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,Js=OP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,KL=Js&&Js.exports===OP,mg=KL&&QL.process,JL=function(){try{var t=Js&&Js.require&&Js.require("util").types;return t||mg&&mg.binding&&mg.binding("util")}catch{}}();Wo.exports=JL});var $P=I((YH,UP)=>{"use strict";var XL=NP(),YL=Ou(),LP=Lu(),BP=LP&&LP.isTypedArray,ZL=BP?YL(BP):XL;UP.exports=ZL});var bg=I((ZH,WP)=>{"use strict";var eB=bP(),tB=PP(),nB=qu(),rB=gg(),iB=IP(),oB=$P(),sB=Object.prototype,aB=sB.hasOwnProperty;function cB(t,e){var n=nB(t),i=!n&&tB(t),s=!n&&!i&&rB(t),c=!n&&!i&&!s&&oB(t),u=n||i||s||c,d=u?eB(t.length,String):[],f=d.length;for(var m in t)(e||aB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||iB(m,f)))&&d.push(m);return d}WP.exports=cB});var Bu=I((eV,jP)=>{"use strict";var uB=Object.prototype;function lB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||uB;return t===n}jP.exports=lB});var _g=I((tV,zP)=>{"use strict";function dB(t,e){return function(n){return t(e(n))}}zP.exports=dB});var VP=I((nV,HP)=>{"use strict";var fB=_g(),hB=fB(Object.keys,Object);HP.exports=hB});var QP=I((rV,GP)=>{"use strict";var gB=Bu(),pB=VP(),mB=Object.prototype,bB=mB.hasOwnProperty;function _B(t){if(!gB(t))return pB(t);var e=[];for(var n in Object(t))bB.call(t,n)&&n!="constructor"&&e.push(n);return e}GP.exports=_B});var vg=I((iV,KP)=>{"use strict";var vB=ug(),yB=pg();function wB(t){return t!=null&&yB(t.length)&&!vB(t)}KP.exports=wB});var Uu=I((oV,JP)=>{"use strict";var SB=bg(),xB=QP(),PB=vg();function CB(t){return PB(t)?SB(t):xB(t)}JP.exports=CB});var YP=I((sV,XP)=>{"use strict";var kB=Gs(),TB=Uu();function RB(t,e){return t&&kB(e,TB(e),t)}XP.exports=RB});var eC=I((aV,ZP)=>{"use strict";function DB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}ZP.exports=DB});var nC=I((cV,tC)=>{"use strict";var FB=qo(),EB=Bu(),IB=eC(),MB=Object.prototype,AB=MB.hasOwnProperty;function NB(t){if(!FB(t))return IB(t);var e=EB(t),n=[];for(var i in t)i=="constructor"&&(e||!AB.call(t,i))||n.push(i);return n}tC.exports=NB});var $u=I((uV,rC)=>{"use strict";var qB=bg(),OB=nC(),LB=vg();function BB(t){return LB(t)?qB(t,!0):OB(t)}rC.exports=BB});var oC=I((lV,iC)=>{"use strict";var UB=Gs(),$B=$u();function WB(t,e){return t&&UB(e,$B(e),t)}iC.exports=WB});var lC=I((Xs,jo)=>{"use strict";var jB=nr(),uC=typeof Xs=="object"&&Xs&&!Xs.nodeType&&Xs,sC=uC&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,zB=sC&&sC.exports===uC,aC=zB?jB.Buffer:void 0,cC=aC?aC.allocUnsafe:void 0;function HB(t,e){if(e)return t.slice();var n=t.length,i=cC?cC(n):new t.constructor(n);return t.copy(i),i}jo.exports=HB});var fC=I((dV,dC)=>{"use strict";function VB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function GB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function QB(){return[]}pC.exports=QB});var Wu=I((gV,bC)=>{"use strict";var KB=gC(),JB=yg(),XB=Object.prototype,YB=XB.propertyIsEnumerable,mC=Object.getOwnPropertySymbols,ZB=mC?function(t){return t==null?[]:(t=Object(t),KB(mC(t),function(e){return YB.call(t,e)}))}:JB;bC.exports=ZB});var vC=I((pV,_C)=>{"use strict";var eU=Gs(),tU=Wu();function nU(t,e){return eU(t,tU(t),e)}_C.exports=nU});var wg=I((mV,yC)=>{"use strict";function rU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var iU=_g(),oU=iU(Object.getPrototypeOf,Object);wC.exports=oU});var xg=I((_V,SC)=>{"use strict";var sU=wg(),aU=Sg(),cU=Wu(),uU=yg(),lU=Object.getOwnPropertySymbols,dU=lU?function(t){for(var e=[];t;)sU(e,cU(t)),t=aU(t);return e}:uU;SC.exports=dU});var PC=I((vV,xC)=>{"use strict";var fU=Gs(),hU=xg();function gU(t,e){return fU(t,hU(t),e)}xC.exports=gU});var Pg=I((yV,CC)=>{"use strict";var pU=wg(),mU=qu();function bU(t,e,n){var i=e(t);return mU(t)?i:pU(i,n(t))}CC.exports=bU});var TC=I((wV,kC)=>{"use strict";var _U=Pg(),vU=Wu(),yU=Uu();function wU(t){return _U(t,yU,vU)}kC.exports=wU});var DC=I((SV,RC)=>{"use strict";var SU=Pg(),xU=xg(),PU=$u();function CU(t){return SU(t,PU,xU)}RC.exports=CU});var EC=I((xV,FC)=>{"use strict";var kU=pi(),TU=nr(),RU=kU(TU,"DataView");FC.exports=RU});var MC=I((PV,IC)=>{"use strict";var DU=pi(),FU=nr(),EU=DU(FU,"Promise");IC.exports=EU});var NC=I((CV,AC)=>{"use strict";var IU=pi(),MU=nr(),AU=IU(MU,"Set");AC.exports=AU});var OC=I((kV,qC)=>{"use strict";var NU=pi(),qU=nr(),OU=NU(qU,"WeakMap");qC.exports=OU});var ju=I((TV,zC)=>{"use strict";var Cg=EC(),kg=Nu(),Tg=MC(),Rg=NC(),Dg=OC(),jC=zs(),zo=dg(),LC="[object Map]",LU="[object Object]",BC="[object Promise]",UC="[object Set]",$C="[object WeakMap]",WC="[object DataView]",BU=zo(Cg),UU=zo(kg),$U=zo(Tg),WU=zo(Rg),jU=zo(Dg),zi=jC;(Cg&&zi(new Cg(new ArrayBuffer(1)))!=WC||kg&&zi(new kg)!=LC||Tg&&zi(Tg.resolve())!=BC||Rg&&zi(new Rg)!=UC||Dg&&zi(new Dg)!=$C)&&(zi=function(t){var e=jC(t),n=e==LU?t.constructor:void 0,i=n?zo(n):"";if(i)switch(i){case BU:return WC;case UU:return LC;case $U:return BC;case WU:return UC;case jU:return $C}return e});zC.exports=zi});var VC=I((RV,HC)=>{"use strict";var zU=Object.prototype,HU=zU.hasOwnProperty;function VU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&HU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}HC.exports=VU});var QC=I((DV,GC)=>{"use strict";var GU=nr(),QU=GU.Uint8Array;GC.exports=QU});var zu=I((FV,JC)=>{"use strict";var KC=QC();function KU(t){var e=new t.constructor(t.byteLength);return new KC(e).set(new KC(t)),e}JC.exports=KU});var YC=I((EV,XC)=>{"use strict";var JU=zu();function XU(t,e){var n=e?JU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}XC.exports=XU});var ek=I((IV,ZC)=>{"use strict";var YU=/\w*$/;function ZU(t){var e=new t.constructor(t.source,YU.exec(t));return e.lastIndex=t.lastIndex,e}ZC.exports=ZU});var ok=I((MV,ik)=>{"use strict";var tk=Au(),nk=tk?tk.prototype:void 0,rk=nk?nk.valueOf:void 0;function e$(t){return rk?Object(rk.call(t)):{}}ik.exports=e$});var ak=I((AV,sk)=>{"use strict";var t$=zu();function n$(t,e){var n=e?t$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}sk.exports=n$});var uk=I((NV,ck)=>{"use strict";var r$=zu(),i$=YC(),o$=ek(),s$=ok(),a$=ak(),c$="[object Boolean]",u$="[object Date]",l$="[object Map]",d$="[object Number]",f$="[object RegExp]",h$="[object Set]",g$="[object String]",p$="[object Symbol]",m$="[object ArrayBuffer]",b$="[object DataView]",_$="[object Float32Array]",v$="[object Float64Array]",y$="[object Int8Array]",w$="[object Int16Array]",S$="[object Int32Array]",x$="[object Uint8Array]",P$="[object Uint8ClampedArray]",C$="[object Uint16Array]",k$="[object Uint32Array]";function T$(t,e,n){var i=t.constructor;switch(e){case m$:return r$(t);case c$:case u$:return new i(+t);case b$:return i$(t,n);case _$:case v$:case y$:case w$:case S$:case x$:case P$:case C$:case k$:return a$(t,n);case l$:return new i;case d$:case g$:return new i(t);case f$:return o$(t);case h$:return new i;case p$:return s$(t)}}ck.exports=T$});var fk=I((qV,dk)=>{"use strict";var R$=qo(),lk=Object.create,D$=function(){function t(){}return function(e){if(!R$(e))return{};if(lk)return lk(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();dk.exports=D$});var gk=I((OV,hk)=>{"use strict";var F$=fk(),E$=Sg(),I$=Bu();function M$(t){return typeof t.constructor=="function"&&!I$(t)?F$(E$(t)):{}}hk.exports=M$});var mk=I((LV,pk)=>{"use strict";var A$=ju(),N$=Uo(),q$="[object Map]";function O$(t){return N$(t)&&A$(t)==q$}pk.exports=O$});var yk=I((BV,vk)=>{"use strict";var L$=mk(),B$=Ou(),bk=Lu(),_k=bk&&bk.isMap,U$=_k?B$(_k):L$;vk.exports=U$});var Sk=I((UV,wk)=>{"use strict";var $$=ju(),W$=Uo(),j$="[object Set]";function z$(t){return W$(t)&&$$(t)==j$}wk.exports=z$});var kk=I(($V,Ck)=>{"use strict";var H$=Sk(),V$=Ou(),xk=Lu(),Pk=xk&&xk.isSet,G$=Pk?V$(Pk):H$;Ck.exports=G$});var Ek=I((WV,Fk)=>{"use strict";var Q$=aP(),K$=uP(),J$=hg(),X$=YP(),Y$=oC(),Z$=lC(),eW=fC(),tW=vC(),nW=PC(),rW=TC(),iW=DC(),oW=ju(),sW=VC(),aW=uk(),cW=gk(),uW=qu(),lW=gg(),dW=yk(),fW=qo(),hW=kk(),gW=Uu(),pW=$u(),mW=1,bW=2,_W=4,Tk="[object Arguments]",vW="[object Array]",yW="[object Boolean]",wW="[object Date]",SW="[object Error]",Rk="[object Function]",xW="[object GeneratorFunction]",PW="[object Map]",CW="[object Number]",Dk="[object Object]",kW="[object RegExp]",TW="[object Set]",RW="[object String]",DW="[object Symbol]",FW="[object WeakMap]",EW="[object ArrayBuffer]",IW="[object DataView]",MW="[object Float32Array]",AW="[object Float64Array]",NW="[object Int8Array]",qW="[object Int16Array]",OW="[object Int32Array]",LW="[object Uint8Array]",BW="[object Uint8ClampedArray]",UW="[object Uint16Array]",$W="[object Uint32Array]",it={};it[Tk]=it[vW]=it[EW]=it[IW]=it[yW]=it[wW]=it[MW]=it[AW]=it[NW]=it[qW]=it[OW]=it[PW]=it[CW]=it[Dk]=it[kW]=it[TW]=it[RW]=it[DW]=it[LW]=it[BW]=it[UW]=it[$W]=!0;it[SW]=it[Rk]=it[FW]=!1;function Hu(t,e,n,i,s,c){var u,d=e&mW,f=e&bW,m=e&_W;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!fW(t))return t;var y=uW(t);if(y){if(u=sW(t),!d)return eW(t,u)}else{var x=oW(t),D=x==Rk||x==xW;if(lW(t))return Z$(t,d);if(x==Dk||x==Tk||D&&!s){if(u=f||D?{}:cW(t),!d)return f?nW(t,Y$(u,t)):tW(t,X$(u,t))}else{if(!it[x])return s?t:{};u=aW(t,x,d)}}c||(c=new Q$);var N=c.get(t);if(N)return N;c.set(t,u),hW(t)?t.forEach(function(B){u.add(Hu(B,e,n,B,t,c))}):dW(t)&&t.forEach(function(B,K){u.set(K,Hu(B,e,n,K,t,c))});var A=m?f?iW:rW:f?pW:gW,L=y?void 0:A(t);return K$(L||t,function(B,K){L&&(K=B,B=t[K]),J$(u,K,Hu(B,e,n,K,t,c))}),u}Fk.exports=Hu});var Mk=I((jV,Ik)=>{"use strict";var WW=Ek(),jW=1,zW=4;function HW(t){return WW(t,jW|zW)}Ik.exports=HW});var Fg=I((Ak,Vu)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Vu=="object"&&Vu.exports?Vu.exports=e():t.log=e()})(Ak,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+xe)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(xe,X){return P=Je(xe),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(xe){F=Je(xe),ve()||B.setLevel(xe,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(xe){B.setLevel(B.levels.TRACE,xe)},B.disableAll=function(xe){B.setLevel(B.levels.SILENT,xe)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var xe in s)s[xe].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=ve();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Vo=I((Ho,ta)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,y=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,ve=256,Be=512,Je=30,Dt="...",xe=800,X=16,z=1,se=2,re=3,De=1/0,ge=9007199254740991,pe=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,yr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",ve]],Vn="[object Arguments]",ur="[object Array]",xi="[object AsyncFunction]",lr="[object Boolean]",dr="[object Date]",Qi="[object DOMException]",wr="[object Error]",Sr="[object Function]",xr="[object GeneratorFunction]",mt="[object Map]",fr="[object Number]",Ki="[object Null]",Bt="[object Object]",Pi="[object Promise]",zr="[object Proxy]",hr="[object RegExp]",xt="[object Set]",sn="[object String]",Pr="[object Symbol]",Ji="[object Undefined]",jt="[object WeakMap]",Ci="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",Cr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",et=/\b__p \+= '';/g,Fe=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,ct=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(ct.source),Xi=/<%-([\s\S]+?)%>/g,wa=/<%([\s\S]+?)%>/g,us=/<%=([\s\S]+?)%>/g,Sa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xa=/^\w*$/,Hl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,v=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Hr=/^0o[0-7]+$/i,Yi=/^(?:0|[1-9]\d*)$/,Pa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ca=/($^)/,$T=/['\n\r\u2028\u2029\\]/g,ka="\\ud800-\\udfff",WT="\\u0300-\\u036f",jT="\\ufe20-\\ufe2f",zT="\\u20d0-\\u20ff",Mp=WT+jT+zT,Ap="\\u2700-\\u27bf",Np="a-z\\xdf-\\xf6\\xf8-\\xff",HT="\\xac\\xb1\\xd7\\xf7",VT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",GT="\\u2000-\\u206f",QT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",qp="A-Z\\xc0-\\xd6\\xd8-\\xde",Op="\\ufe0e\\ufe0f",Lp=HT+VT+GT+QT,Vl="['\u2019]",KT="["+ka+"]",Bp="["+Lp+"]",Ta="["+Mp+"]",Up="\\d+",JT="["+Ap+"]",$p="["+Np+"]",Wp="[^"+ka+Lp+Up+Ap+Np+qp+"]",Gl="\\ud83c[\\udffb-\\udfff]",XT="(?:"+Ta+"|"+Gl+")",jp="[^"+ka+"]",Ql="(?:\\ud83c[\\udde6-\\uddff]){2}",Kl="[\\ud800-\\udbff][\\udc00-\\udfff]",Zi="["+qp+"]",zp="\\u200d",Hp="(?:"+$p+"|"+Wp+")",YT="(?:"+Zi+"|"+Wp+")",Vp="(?:"+Vl+"(?:d|ll|m|re|s|t|ve))?",Gp="(?:"+Vl+"(?:D|LL|M|RE|S|T|VE))?",Qp=XT+"?",Kp="["+Op+"]?",ZT="(?:"+zp+"(?:"+[jp,Ql,Kl].join("|")+")"+Kp+Qp+")*",eR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",tR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Jp=Kp+Qp+ZT,nR="(?:"+[JT,Ql,Kl].join("|")+")"+Jp,rR="(?:"+[jp+Ta+"?",Ta,Ql,Kl,KT].join("|")+")",iR=RegExp(Vl,"g"),oR=RegExp(Ta,"g"),Jl=RegExp(Gl+"(?="+Gl+")|"+rR+Jp,"g"),sR=RegExp([Zi+"?"+$p+"+"+Vp+"(?="+[Bp,Zi,"$"].join("|")+")",YT+"+"+Gp+"(?="+[Bp,Zi+Hp,"$"].join("|")+")",Zi+"?"+Hp+"+"+Vp,Zi+"+"+Gp,tR,eR,Up,nR].join("|"),"g"),aR=RegExp("["+zp+ka+Mp+Op+"]"),cR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,uR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],lR=-1,ut={};ut[Cr]=ut[vn]=ut[C]=ut[H]=ut[Z]=ut[ie]=ut[Ue]=ut[Le]=ut[Ge]=!0,ut[Vn]=ut[ur]=ut[Gn]=ut[lr]=ut[_n]=ut[dr]=ut[wr]=ut[Sr]=ut[mt]=ut[fr]=ut[Bt]=ut[hr]=ut[xt]=ut[sn]=ut[jt]=!1;var tt={};tt[Vn]=tt[ur]=tt[Gn]=tt[_n]=tt[lr]=tt[dr]=tt[Cr]=tt[vn]=tt[C]=tt[H]=tt[Z]=tt[mt]=tt[fr]=tt[Bt]=tt[hr]=tt[xt]=tt[sn]=tt[Pr]=tt[ie]=tt[Ue]=tt[Le]=tt[Ge]=!0,tt[wr]=tt[Sr]=tt[jt]=!1;var dR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},fR={"&":"&","<":"<",">":">",'"':""","'":"'"},hR={"&":"&","<":"<",">":">",""":'"',"'":"'"},gR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},pR=parseFloat,mR=parseInt,Xp=typeof global=="object"&&global&&global.Object===Object&&global,bR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Xp||bR||Function("return this")(),Xl=typeof Ho=="object"&&Ho&&!Ho.nodeType&&Ho,ki=Xl&&typeof ta=="object"&&ta&&!ta.nodeType&&ta,Yp=ki&&ki.exports===Xl,Yl=Yp&&Xp.process,En=function(){try{var E=ki&&ki.require&&ki.require("util").types;return E||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Zp=En&&En.isArrayBuffer,em=En&&En.isDate,tm=En&&En.isMap,nm=En&&En.isRegExp,rm=En&&En.isSet,im=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function _R(E,W,$,oe){for(var ye=-1,ze=E==null?0:E.length;++ye-1}function Zl(E,W,$){for(var oe=-1,ye=E==null?0:E.length;++oe-1;);return $}function fm(E,W){for(var $=E.length;$--&&eo(W,E[$],0)>-1;);return $}function TR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var RR=rd(dR),DR=rd(fR);function FR(E){return"\\"+gR[E]}function ER(E,W){return E==null?t:E[W]}function to(E){return aR.test(E)}function IR(E){return cR.test(E)}function MR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function ad(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ye){$[++W]=[ye,oe]}),$}function hm(E,W){return function($){return E(W($))}}function Qr(E,W){for(var $=-1,oe=E.length,ye=0,ze=[];++$-1}function yD(r,o){var a=this.__data__,l=Ha(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}kr.prototype.clear=mD,kr.prototype.delete=bD,kr.prototype.get=_D,kr.prototype.has=vD,kr.prototype.set=yD;function Tr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&y,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=Pe(r);if(Q){if(S=P0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==Sr||J==xr;if(ti(r))return Km(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:gb(r),!T)return M?h0(r,qD(S,r)):f0(r,Cm(S,r))}else{if(!tt[J])return h?r:{};S=C0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),jb(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):$b(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Md:Id:M?ln:Ot,Re=Q?t:de(r);return In(Re||r,function(fe,Me){Re&&(Me=fe,fe=r[Me]),ms(S,Me,Nn(fe,o,a,Me,r,_))}),S}function OD(r){var o=Ot(r);return function(a){return km(a,r,o)}}function km(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function Tm(r,o,a){if(typeof r!="function")throw new Mn(s);return xs(function(){r.apply(t,a)},o)}function bs(r,o,a,l){var h=-1,_=Ra,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=gt(o,Sn(a))),l?(_=Zl,S=!1):o.length>=n&&(_=ls,S=!1,o=new Di(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:Te(l),l<0&&(l+=h),l=a>l?0:Hb(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Gr(h,T):l||(h[h.length]=T)}return h}var gd=tb(),Fm=tb(!0);function gr(r,o){return r&&gd(r,o,Ot)}function pd(r,o){return r&&Fm(r,o,Ot)}function Ga(r,o){return Vr(o,function(a){return Ir(r[a])})}function Ei(r,o){o=Zr(o,r);for(var a=0,l=o.length;r!=null&&ao}function UD(r,o){return r!=null&&Ke.call(r,o)}function $D(r,o){return r!=null&&o in Ye(r)}function WD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Di(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&La.call(T,M,1),La.call(r,M,1);return r}function $m(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Er(h)?La.call(r,h,1):Cd(r,h)}}return r}function Sd(r,o){return r+$a(wm()*(o-r+1))}function t0(r,o,a,l){for(var h=-1,_=At(Ua((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function xd(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=$a(o/2),o&&(r+=r);while(o);return a}function Ee(r,o){return Ud(bb(r,o,dn),r+"")}function n0(r){return Pm(fo(r))}function r0(r,o){var a=fo(r);return ic(a,Fi(o,0,a.length))}function ys(r,o,a,l){if(!bt(r))return r;o=Zr(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=mr(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Er(o[h+1])?[]:{})}ms(T,M,V),T=T[M]}return r}var Wm=Wa?function(r,o){return Wa.set(r,o),r}:dn,i0=Ba?function(r,o){return Ba(r,"toString",{configurable:!0,enumerable:!1,value:Jd(o),writable:!0})}:dn;function o0(r){return ic(fo(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:b0(r);if(V)return Fa(V);S=!1,h=ls,M=new Di}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Cd(r,o){return o=Zr(o,r),r=_b(r,o),r==null||delete r[mr(On(o))]}function Hm(r,o,a,l){return ys(r,o,a(Ei(r,o)),l)}function Ja(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var Qm=QR||function(r){return qt.clearTimeout(r)};function Km(r,o){if(o)return r.slice();var a=r.length,l=mm?mm(a):new r.constructor(a);return r.copy(l),l}function Dd(r){var o=new r.constructor(r.byteLength);return new qa(o).set(new qa(r)),o}function c0(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function u0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function l0(r){return ps?Ye(ps.call(r)):{}}function Jm(r,o){var a=o?Dd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Xm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Ym(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function ib(r){return Fr(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&nc(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Di:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(v,`{ +`&&g++}v&&R.length>0&&k.push(R.length),this._lineOffsets=k}return this._lineOffsets},p.prototype.positionAt=function(k){k=Math.max(Math.min(k,this._content.length),0);var R=this.getLineOffsets(),v=0,g=R.length;if(g===0)return u.create(0,k);for(;vk?g=O:v=O+1}var G=v-1;return u.create(G,k-R[G])},p.prototype.offsetAt=function(k){var R=this.getLineOffsets();if(k.line>=R.length)return this._content.length;if(k.line<0)return 0;var v=R[k.line],g=k.line+1"u"}p.undefined=v;function g(Ie){return Ie===!0||Ie===!1}p.boolean=g;function O(Ie){return k.call(Ie)==="[object String]"}p.string=O;function G(Ie){return k.call(Ie)==="[object Number]"}p.number=G;function be(Ie,Hr,Yi){return k.call(Ie)==="[object Number]"&&Hr<=Ie&&Ie<=Yi}p.numberRange=be;function ht(Ie){return k.call(Ie)==="[object Number]"&&-2147483648<=Ie&&Ie<=2147483647}p.integer=ht;function Xe(Ie){return k.call(Ie)==="[object Number]"&&0<=Ie&&Ie<=2147483647}p.uinteger=Xe;function an(Ie){return k.call(Ie)==="[object Function]"}p.func=an;function yn(Ie){return Ie!==null&&typeof Ie=="object"}p.objectLiteral=yn;function Qn(Ie,Hr){return Array.isArray(Ie)&&Ie.every(Hr)}p.typedArray=Qn})(q||(q={}))})});var pt=I(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.ProtocolNotificationType=hn.ProtocolNotificationType0=hn.ProtocolRequestType=hn.ProtocolRequestType0=hn.RegistrationType=hn.MessageDirection=void 0;var wo=Bi(),$_;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})($_||(hn.MessageDirection=$_={}));var ph=class{constructor(e){this.method=e}};hn.RegistrationType=ph;var mh=class extends wo.RequestType0{constructor(e){super(e)}};hn.ProtocolRequestType0=mh;var bh=class extends wo.RequestType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolRequestType=bh;var _h=class extends wo.NotificationType0{constructor(e){super(e)}};hn.ProtocolNotificationType0=_h;var vh=class extends wo.NotificationType{constructor(e){super(e,wo.ParameterStructures.byName)}};hn.ProtocolNotificationType=vh});var Oc=I(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.objectLiteral=It.typedArray=It.stringArray=It.array=It.func=It.error=It.number=It.string=It.boolean=void 0;function WA(t){return t===!0||t===!1}It.boolean=WA;function W_(t){return typeof t=="string"||t instanceof String}It.string=W_;function jA(t){return typeof t=="number"||t instanceof Number}It.number=jA;function zA(t){return t instanceof Error}It.error=zA;function HA(t){return typeof t=="function"}It.func=HA;function j_(t){return Array.isArray(t)}It.array=j_;function VA(t){return j_(t)&&t.every(e=>W_(e))}It.stringArray=VA;function GA(t,e){return Array.isArray(t)&&t.every(e)}It.typedArray=GA;function QA(t){return t!==null&&typeof t=="object"}It.objectLiteral=QA});var V_=I(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});Lc.ImplementationRequest=void 0;var z_=pt(),H_;(function(t){t.method="textDocument/implementation",t.messageDirection=z_.MessageDirection.clientToServer,t.type=new z_.ProtocolRequestType(t.method)})(H_||(Lc.ImplementationRequest=H_={}))});var K_=I(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.TypeDefinitionRequest=void 0;var G_=pt(),Q_;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=G_.MessageDirection.clientToServer,t.type=new G_.ProtocolRequestType(t.method)})(Q_||(Bc.TypeDefinitionRequest=Q_={}))});var Y_=I(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.DidChangeWorkspaceFoldersNotification=So.WorkspaceFoldersRequest=void 0;var Uc=pt(),J_;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=Uc.MessageDirection.serverToClient,t.type=new Uc.ProtocolRequestType0(t.method)})(J_||(So.WorkspaceFoldersRequest=J_={}));var X_;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=Uc.MessageDirection.clientToServer,t.type=new Uc.ProtocolNotificationType(t.method)})(X_||(So.DidChangeWorkspaceFoldersNotification=X_={}))});var tv=I($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});$c.ConfigurationRequest=void 0;var Z_=pt(),ev;(function(t){t.method="workspace/configuration",t.messageDirection=Z_.MessageDirection.serverToClient,t.type=new Z_.ProtocolRequestType(t.method)})(ev||($c.ConfigurationRequest=ev={}))});var iv=I(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.ColorPresentationRequest=xo.DocumentColorRequest=void 0;var Wc=pt(),nv;(function(t){t.method="textDocument/documentColor",t.messageDirection=Wc.MessageDirection.clientToServer,t.type=new Wc.ProtocolRequestType(t.method)})(nv||(xo.DocumentColorRequest=nv={}));var rv;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=Wc.MessageDirection.clientToServer,t.type=new Wc.ProtocolRequestType(t.method)})(rv||(xo.ColorPresentationRequest=rv={}))});var av=I(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.FoldingRangeRefreshRequest=Po.FoldingRangeRequest=void 0;var jc=pt(),ov;(function(t){t.method="textDocument/foldingRange",t.messageDirection=jc.MessageDirection.clientToServer,t.type=new jc.ProtocolRequestType(t.method)})(ov||(Po.FoldingRangeRequest=ov={}));var sv;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=jc.MessageDirection.serverToClient,t.type=new jc.ProtocolRequestType0(t.method)})(sv||(Po.FoldingRangeRefreshRequest=sv={}))});var lv=I(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.DeclarationRequest=void 0;var cv=pt(),uv;(function(t){t.method="textDocument/declaration",t.messageDirection=cv.MessageDirection.clientToServer,t.type=new cv.ProtocolRequestType(t.method)})(uv||(zc.DeclarationRequest=uv={}))});var hv=I(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.SelectionRangeRequest=void 0;var dv=pt(),fv;(function(t){t.method="textDocument/selectionRange",t.messageDirection=dv.MessageDirection.clientToServer,t.type=new dv.ProtocolRequestType(t.method)})(fv||(Hc.SelectionRangeRequest=fv={}))});var bv=I(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.WorkDoneProgressCancelNotification=si.WorkDoneProgressCreateRequest=si.WorkDoneProgress=void 0;var KA=Bi(),Vc=pt(),gv;(function(t){t.type=new KA.ProgressType;function e(n){return n===t.type}t.is=e})(gv||(si.WorkDoneProgress=gv={}));var pv;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=Vc.MessageDirection.serverToClient,t.type=new Vc.ProtocolRequestType(t.method)})(pv||(si.WorkDoneProgressCreateRequest=pv={}));var mv;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=Vc.MessageDirection.clientToServer,t.type=new Vc.ProtocolNotificationType(t.method)})(mv||(si.WorkDoneProgressCancelNotification=mv={}))});var wv=I(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.CallHierarchyOutgoingCallsRequest=ai.CallHierarchyIncomingCallsRequest=ai.CallHierarchyPrepareRequest=void 0;var Co=pt(),_v;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(_v||(ai.CallHierarchyPrepareRequest=_v={}));var vv;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(vv||(ai.CallHierarchyIncomingCallsRequest=vv={}));var yv;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=Co.MessageDirection.clientToServer,t.type=new Co.ProtocolRequestType(t.method)})(yv||(ai.CallHierarchyOutgoingCallsRequest=yv={}))});var Tv=I(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.SemanticTokensRefreshRequest=gn.SemanticTokensRangeRequest=gn.SemanticTokensDeltaRequest=gn.SemanticTokensRequest=gn.SemanticTokensRegistrationType=gn.TokenFormat=void 0;var qr=pt(),Sv;(function(t){t.Relative="relative"})(Sv||(gn.TokenFormat=Sv={}));var Is;(function(t){t.method="textDocument/semanticTokens",t.type=new qr.RegistrationType(t.method)})(Is||(gn.SemanticTokensRegistrationType=Is={}));var xv;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=qr.MessageDirection.clientToServer,t.type=new qr.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(xv||(gn.SemanticTokensRequest=xv={}));var Pv;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=qr.MessageDirection.clientToServer,t.type=new qr.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(Pv||(gn.SemanticTokensDeltaRequest=Pv={}));var Cv;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=qr.MessageDirection.clientToServer,t.type=new qr.ProtocolRequestType(t.method),t.registrationMethod=Is.method})(Cv||(gn.SemanticTokensRangeRequest=Cv={}));var kv;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=qr.MessageDirection.serverToClient,t.type=new qr.ProtocolRequestType0(t.method)})(kv||(gn.SemanticTokensRefreshRequest=kv={}))});var Fv=I(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});Gc.ShowDocumentRequest=void 0;var Rv=pt(),Dv;(function(t){t.method="window/showDocument",t.messageDirection=Rv.MessageDirection.serverToClient,t.type=new Rv.ProtocolRequestType(t.method)})(Dv||(Gc.ShowDocumentRequest=Dv={}))});var Mv=I(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});Qc.LinkedEditingRangeRequest=void 0;var Ev=pt(),Iv;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=Ev.MessageDirection.clientToServer,t.type=new Ev.ProtocolRequestType(t.method)})(Iv||(Qc.LinkedEditingRangeRequest=Iv={}))});var $v=I(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.WillDeleteFilesRequest=Qt.DidDeleteFilesNotification=Qt.DidRenameFilesNotification=Qt.WillRenameFilesRequest=Qt.DidCreateFilesNotification=Qt.WillCreateFilesRequest=Qt.FileOperationPatternKind=void 0;var Bn=pt(),Av;(function(t){t.file="file",t.folder="folder"})(Av||(Qt.FileOperationPatternKind=Av={}));var Nv;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Nv||(Qt.WillCreateFilesRequest=Nv={}));var qv;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(qv||(Qt.DidCreateFilesNotification=qv={}));var Ov;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Ov||(Qt.WillRenameFilesRequest=Ov={}));var Lv;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Lv||(Qt.DidRenameFilesNotification=Lv={}));var Bv;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolNotificationType(t.method)})(Bv||(Qt.DidDeleteFilesNotification=Bv={}));var Uv;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Bn.MessageDirection.clientToServer,t.type=new Bn.ProtocolRequestType(t.method)})(Uv||(Qt.WillDeleteFilesRequest=Uv={}))});var Vv=I(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.MonikerRequest=ci.MonikerKind=ci.UniquenessLevel=void 0;var Wv=pt(),jv;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(jv||(ci.UniquenessLevel=jv={}));var zv;(function(t){t.$import="import",t.$export="export",t.local="local"})(zv||(ci.MonikerKind=zv={}));var Hv;(function(t){t.method="textDocument/moniker",t.messageDirection=Wv.MessageDirection.clientToServer,t.type=new Wv.ProtocolRequestType(t.method)})(Hv||(ci.MonikerRequest=Hv={}))});var Jv=I(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.TypeHierarchySubtypesRequest=ui.TypeHierarchySupertypesRequest=ui.TypeHierarchyPrepareRequest=void 0;var ko=pt(),Gv;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Gv||(ui.TypeHierarchyPrepareRequest=Gv={}));var Qv;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Qv||(ui.TypeHierarchySupertypesRequest=Qv={}));var Kv;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=ko.MessageDirection.clientToServer,t.type=new ko.ProtocolRequestType(t.method)})(Kv||(ui.TypeHierarchySubtypesRequest=Kv={}))});var Zv=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.InlineValueRefreshRequest=To.InlineValueRequest=void 0;var Kc=pt(),Xv;(function(t){t.method="textDocument/inlineValue",t.messageDirection=Kc.MessageDirection.clientToServer,t.type=new Kc.ProtocolRequestType(t.method)})(Xv||(To.InlineValueRequest=Xv={}));var Yv;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=Kc.MessageDirection.serverToClient,t.type=new Kc.ProtocolRequestType0(t.method)})(Yv||(To.InlineValueRefreshRequest=Yv={}))});var ry=I(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.InlayHintRefreshRequest=li.InlayHintResolveRequest=li.InlayHintRequest=void 0;var Ro=pt(),ey;(function(t){t.method="textDocument/inlayHint",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(ey||(li.InlayHintRequest=ey={}));var ty;(function(t){t.method="inlayHint/resolve",t.messageDirection=Ro.MessageDirection.clientToServer,t.type=new Ro.ProtocolRequestType(t.method)})(ty||(li.InlayHintResolveRequest=ty={}));var ny;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=Ro.MessageDirection.serverToClient,t.type=new Ro.ProtocolRequestType0(t.method)})(ny||(li.InlayHintRefreshRequest=ny={}))});var ly=I(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.DiagnosticRefreshRequest=Un.WorkspaceDiagnosticRequest=Un.DocumentDiagnosticRequest=Un.DocumentDiagnosticReportKind=Un.DiagnosticServerCancellationData=void 0;var uy=Bi(),JA=Oc(),Do=pt(),iy;(function(t){function e(n){let i=n;return i&&JA.boolean(i.retriggerRequest)}t.is=e})(iy||(Un.DiagnosticServerCancellationData=iy={}));var oy;(function(t){t.Full="full",t.Unchanged="unchanged"})(oy||(Un.DocumentDiagnosticReportKind=oy={}));var sy;(function(t){t.method="textDocument/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new uy.ProgressType})(sy||(Un.DocumentDiagnosticRequest=sy={}));var ay;(function(t){t.method="workspace/diagnostic",t.messageDirection=Do.MessageDirection.clientToServer,t.type=new Do.ProtocolRequestType(t.method),t.partialResult=new uy.ProgressType})(ay||(Un.WorkspaceDiagnosticRequest=ay={}));var cy;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=Do.MessageDirection.serverToClient,t.type=new Do.ProtocolRequestType0(t.method)})(cy||(Un.DiagnosticRefreshRequest=cy={}))});var by=I(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.DidCloseNotebookDocumentNotification=wt.DidSaveNotebookDocumentNotification=wt.DidChangeNotebookDocumentNotification=wt.NotebookCellArrayChange=wt.DidOpenNotebookDocumentNotification=wt.NotebookDocumentSyncRegistrationType=wt.NotebookDocument=wt.NotebookCell=wt.ExecutionSummary=wt.NotebookCellKind=void 0;var Ms=qc(),er=Oc(),br=pt(),yh;(function(t){t.Markup=1,t.Code=2;function e(n){return n===1||n===2}t.is=e})(yh||(wt.NotebookCellKind=yh={}));var wh;(function(t){function e(s,c){let u={executionOrder:s};return(c===!0||c===!1)&&(u.success=c),u}t.create=e;function n(s){let c=s;return er.objectLiteral(c)&&Ms.uinteger.is(c.executionOrder)&&(c.success===void 0||er.boolean(c.success))}t.is=n;function i(s,c){return s===c?!0:s==null||c===null||c===void 0?!1:s.executionOrder===c.executionOrder&&s.success===c.success}t.equals=i})(wh||(wt.ExecutionSummary=wh={}));var Jc;(function(t){function e(c,u){return{kind:c,document:u}}t.create=e;function n(c){let u=c;return er.objectLiteral(u)&&yh.is(u.kind)&&Ms.DocumentUri.is(u.document)&&(u.metadata===void 0||er.objectLiteral(u.metadata))}t.is=n;function i(c,u){let d=new Set;return c.document!==u.document&&d.add("document"),c.kind!==u.kind&&d.add("kind"),c.executionSummary!==u.executionSummary&&d.add("executionSummary"),(c.metadata!==void 0||u.metadata!==void 0)&&!s(c.metadata,u.metadata)&&d.add("metadata"),(c.executionSummary!==void 0||u.executionSummary!==void 0)&&!wh.equals(c.executionSummary,u.executionSummary)&&d.add("executionSummary"),d}t.diff=i;function s(c,u){if(c===u)return!0;if(c==null||u===null||u===void 0||typeof c!=typeof u||typeof c!="object")return!1;let d=Array.isArray(c),f=Array.isArray(u);if(d!==f)return!1;if(d&&f){if(c.length!==u.length)return!1;for(let m=0;m{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.InlineCompletionRequest=void 0;var _y=pt(),vy;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=_y.MessageDirection.clientToServer,t.type=new _y.ProtocolRequestType(t.method)})(vy||(Xc.InlineCompletionRequest=vy={}))});var Mw=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.WorkspaceSymbolRequest=w.CodeActionResolveRequest=w.CodeActionRequest=w.DocumentSymbolRequest=w.DocumentHighlightRequest=w.ReferencesRequest=w.DefinitionRequest=w.SignatureHelpRequest=w.SignatureHelpTriggerKind=w.HoverRequest=w.CompletionResolveRequest=w.CompletionRequest=w.CompletionTriggerKind=w.PublishDiagnosticsNotification=w.WatchKind=w.RelativePattern=w.FileChangeType=w.DidChangeWatchedFilesNotification=w.WillSaveTextDocumentWaitUntilRequest=w.WillSaveTextDocumentNotification=w.TextDocumentSaveReason=w.DidSaveTextDocumentNotification=w.DidCloseTextDocumentNotification=w.DidChangeTextDocumentNotification=w.TextDocumentContentChangeEvent=w.DidOpenTextDocumentNotification=w.TextDocumentSyncKind=w.TelemetryEventNotification=w.LogMessageNotification=w.ShowMessageRequest=w.ShowMessageNotification=w.MessageType=w.DidChangeConfigurationNotification=w.ExitNotification=w.ShutdownRequest=w.InitializedNotification=w.InitializeErrorCodes=w.InitializeRequest=w.WorkDoneProgressOptions=w.TextDocumentRegistrationOptions=w.StaticRegistrationOptions=w.PositionEncodingKind=w.FailureHandlingKind=w.ResourceOperationKind=w.UnregistrationRequest=w.RegistrationRequest=w.DocumentSelector=w.NotebookCellTextDocumentFilter=w.NotebookDocumentFilter=w.TextDocumentFilter=void 0;w.MonikerRequest=w.MonikerKind=w.UniquenessLevel=w.WillDeleteFilesRequest=w.DidDeleteFilesNotification=w.WillRenameFilesRequest=w.DidRenameFilesNotification=w.WillCreateFilesRequest=w.DidCreateFilesNotification=w.FileOperationPatternKind=w.LinkedEditingRangeRequest=w.ShowDocumentRequest=w.SemanticTokensRegistrationType=w.SemanticTokensRefreshRequest=w.SemanticTokensRangeRequest=w.SemanticTokensDeltaRequest=w.SemanticTokensRequest=w.TokenFormat=w.CallHierarchyPrepareRequest=w.CallHierarchyOutgoingCallsRequest=w.CallHierarchyIncomingCallsRequest=w.WorkDoneProgressCancelNotification=w.WorkDoneProgressCreateRequest=w.WorkDoneProgress=w.SelectionRangeRequest=w.DeclarationRequest=w.FoldingRangeRefreshRequest=w.FoldingRangeRequest=w.ColorPresentationRequest=w.DocumentColorRequest=w.ConfigurationRequest=w.DidChangeWorkspaceFoldersNotification=w.WorkspaceFoldersRequest=w.TypeDefinitionRequest=w.ImplementationRequest=w.ApplyWorkspaceEditRequest=w.ExecuteCommandRequest=w.PrepareRenameRequest=w.RenameRequest=w.PrepareSupportDefaultBehavior=w.DocumentOnTypeFormattingRequest=w.DocumentRangesFormattingRequest=w.DocumentRangeFormattingRequest=w.DocumentFormattingRequest=w.DocumentLinkResolveRequest=w.DocumentLinkRequest=w.CodeLensRefreshRequest=w.CodeLensResolveRequest=w.CodeLensRequest=w.WorkspaceSymbolResolveRequest=void 0;w.InlineCompletionRequest=w.DidCloseNotebookDocumentNotification=w.DidSaveNotebookDocumentNotification=w.DidChangeNotebookDocumentNotification=w.NotebookCellArrayChange=w.DidOpenNotebookDocumentNotification=w.NotebookDocumentSyncRegistrationType=w.NotebookDocument=w.NotebookCell=w.ExecutionSummary=w.NotebookCellKind=w.DiagnosticRefreshRequest=w.WorkspaceDiagnosticRequest=w.DocumentDiagnosticRequest=w.DocumentDiagnosticReportKind=w.DiagnosticServerCancellationData=w.InlayHintRefreshRequest=w.InlayHintResolveRequest=w.InlayHintRequest=w.InlineValueRefreshRequest=w.InlineValueRequest=w.TypeHierarchySupertypesRequest=w.TypeHierarchySubtypesRequest=w.TypeHierarchyPrepareRequest=void 0;var Y=pt(),wy=qc(),Lt=Oc(),XA=V_();Object.defineProperty(w,"ImplementationRequest",{enumerable:!0,get:function(){return XA.ImplementationRequest}});var YA=K_();Object.defineProperty(w,"TypeDefinitionRequest",{enumerable:!0,get:function(){return YA.TypeDefinitionRequest}});var Dw=Y_();Object.defineProperty(w,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Dw.WorkspaceFoldersRequest}});Object.defineProperty(w,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Dw.DidChangeWorkspaceFoldersNotification}});var ZA=tv();Object.defineProperty(w,"ConfigurationRequest",{enumerable:!0,get:function(){return ZA.ConfigurationRequest}});var Fw=iv();Object.defineProperty(w,"DocumentColorRequest",{enumerable:!0,get:function(){return Fw.DocumentColorRequest}});Object.defineProperty(w,"ColorPresentationRequest",{enumerable:!0,get:function(){return Fw.ColorPresentationRequest}});var Ew=av();Object.defineProperty(w,"FoldingRangeRequest",{enumerable:!0,get:function(){return Ew.FoldingRangeRequest}});Object.defineProperty(w,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return Ew.FoldingRangeRefreshRequest}});var eN=lv();Object.defineProperty(w,"DeclarationRequest",{enumerable:!0,get:function(){return eN.DeclarationRequest}});var tN=hv();Object.defineProperty(w,"SelectionRangeRequest",{enumerable:!0,get:function(){return tN.SelectionRangeRequest}});var kh=bv();Object.defineProperty(w,"WorkDoneProgress",{enumerable:!0,get:function(){return kh.WorkDoneProgress}});Object.defineProperty(w,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return kh.WorkDoneProgressCreateRequest}});Object.defineProperty(w,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return kh.WorkDoneProgressCancelNotification}});var Th=wv();Object.defineProperty(w,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyIncomingCallsRequest}});Object.defineProperty(w,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Th.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(w,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Th.CallHierarchyPrepareRequest}});var Eo=Tv();Object.defineProperty(w,"TokenFormat",{enumerable:!0,get:function(){return Eo.TokenFormat}});Object.defineProperty(w,"SemanticTokensRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRequest}});Object.defineProperty(w,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensDeltaRequest}});Object.defineProperty(w,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRangeRequest}});Object.defineProperty(w,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Eo.SemanticTokensRefreshRequest}});Object.defineProperty(w,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Eo.SemanticTokensRegistrationType}});var nN=Fv();Object.defineProperty(w,"ShowDocumentRequest",{enumerable:!0,get:function(){return nN.ShowDocumentRequest}});var rN=Mv();Object.defineProperty(w,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return rN.LinkedEditingRangeRequest}});var Ui=$v();Object.defineProperty(w,"FileOperationPatternKind",{enumerable:!0,get:function(){return Ui.FileOperationPatternKind}});Object.defineProperty(w,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Ui.DidCreateFilesNotification}});Object.defineProperty(w,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Ui.WillCreateFilesRequest}});Object.defineProperty(w,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Ui.DidRenameFilesNotification}});Object.defineProperty(w,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Ui.WillRenameFilesRequest}});Object.defineProperty(w,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Ui.DidDeleteFilesNotification}});Object.defineProperty(w,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Ui.WillDeleteFilesRequest}});var Rh=Vv();Object.defineProperty(w,"UniquenessLevel",{enumerable:!0,get:function(){return Rh.UniquenessLevel}});Object.defineProperty(w,"MonikerKind",{enumerable:!0,get:function(){return Rh.MonikerKind}});Object.defineProperty(w,"MonikerRequest",{enumerable:!0,get:function(){return Rh.MonikerRequest}});var Dh=Jv();Object.defineProperty(w,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchyPrepareRequest}});Object.defineProperty(w,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySubtypesRequest}});Object.defineProperty(w,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Dh.TypeHierarchySupertypesRequest}});var Iw=Zv();Object.defineProperty(w,"InlineValueRequest",{enumerable:!0,get:function(){return Iw.InlineValueRequest}});Object.defineProperty(w,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Iw.InlineValueRefreshRequest}});var Fh=ry();Object.defineProperty(w,"InlayHintRequest",{enumerable:!0,get:function(){return Fh.InlayHintRequest}});Object.defineProperty(w,"InlayHintResolveRequest",{enumerable:!0,get:function(){return Fh.InlayHintResolveRequest}});Object.defineProperty(w,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return Fh.InlayHintRefreshRequest}});var As=ly();Object.defineProperty(w,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return As.DiagnosticServerCancellationData}});Object.defineProperty(w,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return As.DocumentDiagnosticReportKind}});Object.defineProperty(w,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return As.DocumentDiagnosticRequest}});Object.defineProperty(w,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return As.WorkspaceDiagnosticRequest}});Object.defineProperty(w,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return As.DiagnosticRefreshRequest}});var _r=by();Object.defineProperty(w,"NotebookCellKind",{enumerable:!0,get:function(){return _r.NotebookCellKind}});Object.defineProperty(w,"ExecutionSummary",{enumerable:!0,get:function(){return _r.ExecutionSummary}});Object.defineProperty(w,"NotebookCell",{enumerable:!0,get:function(){return _r.NotebookCell}});Object.defineProperty(w,"NotebookDocument",{enumerable:!0,get:function(){return _r.NotebookDocument}});Object.defineProperty(w,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return _r.NotebookDocumentSyncRegistrationType}});Object.defineProperty(w,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidOpenNotebookDocumentNotification}});Object.defineProperty(w,"NotebookCellArrayChange",{enumerable:!0,get:function(){return _r.NotebookCellArrayChange}});Object.defineProperty(w,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidChangeNotebookDocumentNotification}});Object.defineProperty(w,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidSaveNotebookDocumentNotification}});Object.defineProperty(w,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return _r.DidCloseNotebookDocumentNotification}});var iN=yy();Object.defineProperty(w,"InlineCompletionRequest",{enumerable:!0,get:function(){return iN.InlineCompletionRequest}});var Sh;(function(t){function e(n){let i=n;return Lt.string(i)||Lt.string(i.language)||Lt.string(i.scheme)||Lt.string(i.pattern)}t.is=e})(Sh||(w.TextDocumentFilter=Sh={}));var xh;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebookType)||Lt.string(i.scheme)||Lt.string(i.pattern))}t.is=e})(xh||(w.NotebookDocumentFilter=xh={}));var Ph;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(Lt.string(i.notebook)||xh.is(i.notebook))&&(i.language===void 0||Lt.string(i.language))}t.is=e})(Ph||(w.NotebookCellTextDocumentFilter=Ph={}));var Ch;(function(t){function e(n){if(!Array.isArray(n))return!1;for(let i of n)if(!Lt.string(i)&&!Sh.is(i)&&!Ph.is(i))return!1;return!0}t.is=e})(Ch||(w.DocumentSelector=Ch={}));var Sy;(function(t){t.method="client/registerCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Sy||(w.RegistrationRequest=Sy={}));var xy;(function(t){t.method="client/unregisterCapability",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(xy||(w.UnregistrationRequest=xy={}));var Py;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(Py||(w.ResourceOperationKind=Py={}));var Cy;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(Cy||(w.FailureHandlingKind=Cy={}));var ky;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(ky||(w.PositionEncodingKind=ky={}));var Ty;(function(t){function e(n){let i=n;return i&&Lt.string(i.id)&&i.id.length>0}t.hasId=e})(Ty||(w.StaticRegistrationOptions=Ty={}));var Ry;(function(t){function e(n){let i=n;return i&&(i.documentSelector===null||Ch.is(i.documentSelector))}t.is=e})(Ry||(w.TextDocumentRegistrationOptions=Ry={}));var Dy;(function(t){function e(i){let s=i;return Lt.objectLiteral(s)&&(s.workDoneProgress===void 0||Lt.boolean(s.workDoneProgress))}t.is=e;function n(i){let s=i;return s&&Lt.boolean(s.workDoneProgress)}t.hasWorkDoneProgress=n})(Dy||(w.WorkDoneProgressOptions=Dy={}));var Fy;(function(t){t.method="initialize",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Fy||(w.InitializeRequest=Fy={}));var Ey;(function(t){t.unknownProtocolVersion=1})(Ey||(w.InitializeErrorCodes=Ey={}));var Iy;(function(t){t.method="initialized",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Iy||(w.InitializedNotification=Iy={}));var My;(function(t){t.method="shutdown",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType0(t.method)})(My||(w.ShutdownRequest=My={}));var Ay;(function(t){t.method="exit",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType0(t.method)})(Ay||(w.ExitNotification=Ay={}));var Ny;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Ny||(w.DidChangeConfigurationNotification=Ny={}));var qy;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(qy||(w.MessageType=qy={}));var Oy;(function(t){t.method="window/showMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Oy||(w.ShowMessageNotification=Oy={}));var Ly;(function(t){t.method="window/showMessageRequest",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType(t.method)})(Ly||(w.ShowMessageRequest=Ly={}));var By;(function(t){t.method="window/logMessage",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(By||(w.LogMessageNotification=By={}));var Uy;(function(t){t.method="telemetry/event",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(Uy||(w.TelemetryEventNotification=Uy={}));var $y;(function(t){t.None=0,t.Full=1,t.Incremental=2})($y||(w.TextDocumentSyncKind=$y={}));var Wy;(function(t){t.method="textDocument/didOpen",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Wy||(w.DidOpenTextDocumentNotification=Wy={}));var jy;(function(t){function e(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range!==void 0&&(s.rangeLength===void 0||typeof s.rangeLength=="number")}t.isIncremental=e;function n(i){let s=i;return s!=null&&typeof s.text=="string"&&s.range===void 0&&s.rangeLength===void 0}t.isFull=n})(jy||(w.TextDocumentContentChangeEvent=jy={}));var zy;(function(t){t.method="textDocument/didChange",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(zy||(w.DidChangeTextDocumentNotification=zy={}));var Hy;(function(t){t.method="textDocument/didClose",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Hy||(w.DidCloseTextDocumentNotification=Hy={}));var Vy;(function(t){t.method="textDocument/didSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Vy||(w.DidSaveTextDocumentNotification=Vy={}));var Gy;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(Gy||(w.TextDocumentSaveReason=Gy={}));var Qy;(function(t){t.method="textDocument/willSave",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Qy||(w.WillSaveTextDocumentNotification=Qy={}));var Ky;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Ky||(w.WillSaveTextDocumentWaitUntilRequest=Ky={}));var Jy;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolNotificationType(t.method)})(Jy||(w.DidChangeWatchedFilesNotification=Jy={}));var Xy;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Xy||(w.FileChangeType=Xy={}));var Yy;(function(t){function e(n){let i=n;return Lt.objectLiteral(i)&&(wy.URI.is(i.baseUri)||wy.WorkspaceFolder.is(i.baseUri))&&Lt.string(i.pattern)}t.is=e})(Yy||(w.RelativePattern=Yy={}));var Zy;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Zy||(w.WatchKind=Zy={}));var ew;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolNotificationType(t.method)})(ew||(w.PublishDiagnosticsNotification=ew={}));var tw;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(tw||(w.CompletionTriggerKind=tw={}));var nw;(function(t){t.method="textDocument/completion",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(nw||(w.CompletionRequest=nw={}));var rw;(function(t){t.method="completionItem/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(rw||(w.CompletionResolveRequest=rw={}));var iw;(function(t){t.method="textDocument/hover",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(iw||(w.HoverRequest=iw={}));var ow;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(ow||(w.SignatureHelpTriggerKind=ow={}));var sw;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(sw||(w.SignatureHelpRequest=sw={}));var aw;(function(t){t.method="textDocument/definition",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(aw||(w.DefinitionRequest=aw={}));var cw;(function(t){t.method="textDocument/references",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(cw||(w.ReferencesRequest=cw={}));var uw;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(uw||(w.DocumentHighlightRequest=uw={}));var lw;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(lw||(w.DocumentSymbolRequest=lw={}));var dw;(function(t){t.method="textDocument/codeAction",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(dw||(w.CodeActionRequest=dw={}));var fw;(function(t){t.method="codeAction/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(fw||(w.CodeActionResolveRequest=fw={}));var hw;(function(t){t.method="workspace/symbol",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(hw||(w.WorkspaceSymbolRequest=hw={}));var gw;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(gw||(w.WorkspaceSymbolResolveRequest=gw={}));var pw;(function(t){t.method="textDocument/codeLens",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(pw||(w.CodeLensRequest=pw={}));var mw;(function(t){t.method="codeLens/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(mw||(w.CodeLensResolveRequest=mw={}));var bw;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType0(t.method)})(bw||(w.CodeLensRefreshRequest=bw={}));var _w;(function(t){t.method="textDocument/documentLink",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(_w||(w.DocumentLinkRequest=_w={}));var vw;(function(t){t.method="documentLink/resolve",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(vw||(w.DocumentLinkResolveRequest=vw={}));var yw;(function(t){t.method="textDocument/formatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(yw||(w.DocumentFormattingRequest=yw={}));var ww;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(ww||(w.DocumentRangeFormattingRequest=ww={}));var Sw;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Sw||(w.DocumentRangesFormattingRequest=Sw={}));var xw;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(xw||(w.DocumentOnTypeFormattingRequest=xw={}));var Pw;(function(t){t.Identifier=1})(Pw||(w.PrepareSupportDefaultBehavior=Pw={}));var Cw;(function(t){t.method="textDocument/rename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Cw||(w.RenameRequest=Cw={}));var kw;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(kw||(w.PrepareRenameRequest=kw={}));var Tw;(function(t){t.method="workspace/executeCommand",t.messageDirection=Y.MessageDirection.clientToServer,t.type=new Y.ProtocolRequestType(t.method)})(Tw||(w.ExecuteCommandRequest=Tw={}));var Rw;(function(t){t.method="workspace/applyEdit",t.messageDirection=Y.MessageDirection.serverToClient,t.type=new Y.ProtocolRequestType("workspace/applyEdit")})(Rw||(w.ApplyWorkspaceEditRequest=Rw={}))});var Nw=I(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.createProtocolConnection=void 0;var Aw=Bi();function oN(t,e,n,i){return Aw.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,Aw.createMessageConnection)(t,e,n,i)}Yc.createProtocolConnection=oN});var Ow=I(pn=>{"use strict";var sN=pn&&pn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Zc=pn&&pn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&sN(e,t,n)};Object.defineProperty(pn,"__esModule",{value:!0});pn.LSPErrorCodes=pn.createProtocolConnection=void 0;Zc(Bi(),pn);Zc(qc(),pn);Zc(pt(),pn);Zc(Mw(),pn);var aN=Nw();Object.defineProperty(pn,"createProtocolConnection",{enumerable:!0,get:function(){return aN.createProtocolConnection}});var qw;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(qw||(pn.LSPErrorCodes=qw={}))});var kt=I(vr=>{"use strict";var cN=vr&&vr.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),Lw=vr&&vr.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&cN(e,t,n)};Object.defineProperty(vr,"__esModule",{value:!0});vr.createProtocolConnection=void 0;var uN=gh();Lw(gh(),vr);Lw(Ow(),vr);function lN(t,e,n,i){return(0,uN.createMessageConnection)(t,e,n,i)}vr.createProtocolConnection=lN});var Eh=I($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.generateUuid=$n.parse=$n.isUUID=$n.v4=$n.empty=void 0;var Ns=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},qs=class t extends Ns{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return t._oneOf(t._chars)}constructor(){super([t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),"-","4",t._randomHex(),t._randomHex(),t._randomHex(),"-",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),"-",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(""))}};qs._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];qs._timeHighBits=["8","9","a","b"];$n.empty=new Ns("00000000-0000-0000-0000-000000000000");function Bw(){return new qs}$n.v4=Bw;var dN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Uw(t){return dN.test(t)}$n.isUUID=Uw;function fN(t){if(!Uw(t))throw new Error("invalid uuid");return new Ns(t)}$n.parse=fN;function hN(){return Bw().asHex()}$n.generateUuid=hN});var $w=I(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.attachPartialResult=fi.ProgressFeature=fi.attachWorkDone=void 0;var di=kt(),gN=Eh(),$i=class t{constructor(e,n){this._connection=e,this._token=n,t.Instances.set(this._token,this)}begin(e,n,i,s){let c={kind:"begin",title:e,percentage:n,message:i,cancellable:s};this._connection.sendProgress(di.WorkDoneProgress.type,this._token,c)}report(e,n){let i={kind:"report"};typeof e=="number"?(i.percentage=e,n!==void 0&&(i.message=n)):i.message=e,this._connection.sendProgress(di.WorkDoneProgress.type,this._token,i)}done(){t.Instances.delete(this._token),this._connection.sendProgress(di.WorkDoneProgress.type,this._token,{kind:"end"})}};$i.Instances=new Map;var eu=class extends $i{constructor(e,n){super(e,n),this._source=new di.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Os=class{constructor(){}begin(){}report(){}done(){}},tu=class extends Os{constructor(){super(),this._source=new di.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function pN(t,e){if(e===void 0||e.workDoneToken===void 0)return new Os;let n=e.workDoneToken;return delete e.workDoneToken,new $i(t,n)}fi.attachWorkDone=pN;var mN=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(di.WorkDoneProgressCancelNotification.type,n=>{let i=$i.Instances.get(n.token);(i instanceof eu||i instanceof tu)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new Os:new $i(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,gN.generateUuid)();return this.connection.sendRequest(di.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new eu(this.connection,e))}else return Promise.resolve(new tu)}};fi.ProgressFeature=mN;var Ih;(function(t){t.type=new di.ProgressType})(Ih||(Ih={}));var Mh=class{constructor(e,n){this._connection=e,this._token=n}report(e){this._connection.sendProgress(Ih.type,this._token,e)}};function bN(t,e){if(e===void 0||e.partialResultToken===void 0)return;let n=e.partialResultToken;return delete e.partialResultToken,new Mh(t,n)}fi.attachPartialResult=bN});var Ww=I(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.ConfigurationFeature=void 0;var _N=kt(),vN=hc(),yN=t=>class extends t{getConfiguration(e){return e?vN.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let n={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(_N.ConfigurationRequest.type,n).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};nu.ConfigurationFeature=yN});var jw=I(iu=>{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.WorkspaceFoldersFeature=void 0;var ru=kt(),wN=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let n=e.workspace;n&&n.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new ru.Emitter,this.connection.onNotification(ru.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let n=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n=="string"}getWorkspaceFolders(){return this.connection.sendRequest(ru.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(ru.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};iu.WorkspaceFoldersFeature=wN});var zw=I(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.CallHierarchyFeature=void 0;var Ah=kt(),SN=t=>class extends t{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Ah.CallHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:e=>{let n=Ah.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onOutgoingCalls:e=>{let n=Ah.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};ou.CallHierarchyFeature=SN});var qh=I(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.SemanticTokensBuilder=hi.SemanticTokensDiff=hi.SemanticTokensFeature=void 0;var su=kt(),xN=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(su.SemanticTokensRefreshRequest.type),on:e=>{let n=su.SemanticTokensRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onDelta:e=>{let n=su.SemanticTokensDeltaRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onRange:e=>{let n=su.SemanticTokensRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};hi.SemanticTokensFeature=xN;var au=class{constructor(e,n){this.originalSequence=e,this.modifiedSequence=n}computeDiff(){let e=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i=i&&c>=i&&this.originalSequence[s]===this.modifiedSequence[c];)s--,c--;(s0&&(u-=this._prevLine,u===0&&(d-=this._prevChar)),this._data[this._dataLen++]=u,this._data[this._dataLen++]=d,this._data[this._dataLen++]=i,this._data[this._dataLen++]=s,this._data[this._dataLen++]=c,this._prevLine=e,this._prevChar=n}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new au(this._prevData,this._data).computeDiff()}:this.build()}};hi.SemanticTokensBuilder=Nh});var Hw=I(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.ShowDocumentFeature=void 0;var PN=kt(),CN=t=>class extends t{showDocument(e){return this.connection.sendRequest(PN.ShowDocumentRequest.type,e)}};cu.ShowDocumentFeature=CN});var Vw=I(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.FileOperationsFeature=void 0;var Io=kt(),kN=t=>class extends t{onDidCreateFiles(e){return this.connection.onNotification(Io.DidCreateFilesNotification.type,n=>{e(n)})}onDidRenameFiles(e){return this.connection.onNotification(Io.DidRenameFilesNotification.type,n=>{e(n)})}onDidDeleteFiles(e){return this.connection.onNotification(Io.DidDeleteFilesNotification.type,n=>{e(n)})}onWillCreateFiles(e){return this.connection.onRequest(Io.WillCreateFilesRequest.type,(n,i)=>e(n,i))}onWillRenameFiles(e){return this.connection.onRequest(Io.WillRenameFilesRequest.type,(n,i)=>e(n,i))}onWillDeleteFiles(e){return this.connection.onRequest(Io.WillDeleteFilesRequest.type,(n,i)=>e(n,i))}};uu.FileOperationsFeature=kN});var Gw=I(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.LinkedEditingRangeFeature=void 0;var TN=kt(),RN=t=>class extends t{onLinkedEditingRange(e){return this.connection.onRequest(TN.LinkedEditingRangeRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0))}};lu.LinkedEditingRangeFeature=RN});var Qw=I(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.TypeHierarchyFeature=void 0;var Oh=kt(),DN=t=>class extends t{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Oh.TypeHierarchyPrepareRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:e=>{let n=Oh.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))},onSubtypes:e=>{let n=Oh.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};du.TypeHierarchyFeature=DN});var Jw=I(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.InlineValueFeature=void 0;var Kw=kt(),FN=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(Kw.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(Kw.InlineValueRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};fu.InlineValueFeature=FN});var Yw=I(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.FoldingRangeFeature=void 0;var Xw=kt(),EN=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(Xw.FoldingRangeRefreshRequest.type),on:e=>{let n=Xw.FoldingRangeRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};hu.FoldingRangeFeature=EN});var Zw=I(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.InlayHintFeature=void 0;var Lh=kt(),IN=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(Lh.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(Lh.InlayHintRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n))),resolve:e=>this.connection.onRequest(Lh.InlayHintResolveRequest.type,(n,i)=>e(n,i))}}};gu.InlayHintFeature=IN});var eS=I(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.DiagnosticFeature=void 0;var Ls=kt(),MN=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Ls.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Ls.DocumentDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.DocumentDiagnosticRequest.partialResult,n))),onWorkspace:e=>this.connection.onRequest(Ls.WorkspaceDiagnosticRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(Ls.WorkspaceDiagnosticRequest.partialResult,n)))}}};pu.DiagnosticFeature=MN});var Uh=I(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.TextDocuments=void 0;var Wi=kt(),Bh=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new Wi.Emitter,this._onDidOpen=new Wi.Emitter,this._onDidClose=new Wi.Emitter,this._onDidSave=new Wi.Emitter,this._onWillSave=new Wi.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=Wi.TextDocumentSyncKind.Incremental;let n=[];return n.push(e.onDidOpenTextDocument(i=>{let s=i.textDocument,c=this._configuration.create(s.uri,s.languageId,s.version,s.text);this._syncedDocuments.set(s.uri,c);let u=Object.freeze({document:c});this._onDidOpen.fire(u),this._onDidChangeContent.fire(u)})),n.push(e.onDidChangeTextDocument(i=>{let s=i.textDocument,c=i.contentChanges;if(c.length===0)return;let{version:u}=s;if(u==null)throw new Error(`Received document change event for ${s.uri} without valid version identifier`);let d=this._syncedDocuments.get(s.uri);d!==void 0&&(d=this._configuration.update(d,c,u),this._syncedDocuments.set(s.uri,d),this._onDidChangeContent.fire(Object.freeze({document:d})))})),n.push(e.onDidCloseTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onWillSave.fire(Object.freeze({document:s,reason:i.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((i,s)=>{let c=this._syncedDocuments.get(i.textDocument.uri);return c!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:c,reason:i.reason}),s):[]})),n.push(e.onDidSaveTextDocument(i=>{let s=this._syncedDocuments.get(i.textDocument.uri);s!==void 0&&this._onDidSave.fire(Object.freeze({document:s}))})),Wi.Disposable.create(()=>{n.forEach(i=>i.dispose())})}};mu.TextDocuments=Bh});var Wh=I(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.NotebookDocuments=Mo.NotebookSyncFeature=void 0;var Wn=kt(),tS=Uh(),AN=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(Wn.DidOpenNotebookDocumentNotification.type,n=>{e(n)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(Wn.DidChangeNotebookDocumentNotification.type,n=>{e(n)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(Wn.DidSaveNotebookDocumentNotification.type,n=>{e(n)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(Wn.DidCloseNotebookDocumentNotification.type,n=>{e(n)})}}};Mo.NotebookSyncFeature=AN;var bu=class t{onDidOpenTextDocument(e){return this.openHandler=e,Wn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Wn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Wn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};bu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var $h=class{constructor(e){e instanceof tS.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new tS.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Wn.Emitter,this._onDidChange=new Wn.Emitter,this._onDidSave=new Wn.Emitter,this._onDidClose=new Wn.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let n=this.notebookCellMap.get(e);return n&&n[0]}findNotebookDocumentForCell(e){let n=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let n=new bu,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(s=>{this.notebookDocuments.set(s.notebookDocument.uri,s.notebookDocument);for(let c of s.cellTextDocuments)n.openTextDocument({textDocument:c});this.updateCellMap(s.notebookDocument),this._onDidOpen.fire(s.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c===void 0)return;c.version=s.notebookDocument.version;let u=c.metadata,d=!1,f=s.change;f.metadata!==void 0&&(d=!0,c.metadata=f.metadata);let m=[],y=[],x=[],D=[];if(f.cells!==void 0){let K=f.cells;if(K.structure!==void 0){let F=K.structure.array;if(c.cells.splice(F.start,F.deleteCount,...F.cells!==void 0?F.cells:[]),K.structure.didOpen!==void 0)for(let P of K.structure.didOpen)n.openTextDocument({textDocument:P}),m.push(P.uri);if(K.structure.didClose)for(let P of K.structure.didClose)n.closeTextDocument({textDocument:P}),y.push(P.uri)}if(K.data!==void 0){let F=new Map(K.data.map(P=>[P.document,P]));for(let P=0;P<=c.cells.length;P++){let U=F.get(c.cells[P].document);if(U!==void 0){let te=c.cells.splice(P,1,U);if(x.push({old:te[0],new:U}),F.delete(U.document),F.size===0)break}}}if(K.textContent!==void 0)for(let F of K.textContent)n.changeTextDocument({textDocument:F.document,contentChanges:F.changes}),D.push(F.document.uri)}this.updateCellMap(c);let N={notebookDocument:c};d&&(N.metadata={old:u,new:c.metadata});let A=[];for(let K of m)A.push(this.getNotebookCell(K));let L=[];for(let K of y)L.push(this.getNotebookCell(K));let B=[];for(let K of D)B.push(this.getNotebookCell(K));(A.length>0||L.length>0||x.length>0||B.length>0)&&(N.cells={added:A,removed:L,changed:{data:x,textContent:B}}),(N.metadata!==void 0||N.cells!==void 0)&&this._onDidChange.fire(N)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);c!==void 0&&this._onDidSave.fire(c)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(s=>{let c=this.notebookDocuments.get(s.notebookDocument.uri);if(c!==void 0){this._onDidClose.fire(c);for(let u of s.cellTextDocuments)n.closeTextDocument({textDocument:u});this.notebookDocuments.delete(s.notebookDocument.uri);for(let u of c.cells)this.notebookCellMap.delete(u.document)}})),Wn.Disposable.create(()=>{i.forEach(s=>s.dispose())})}updateCellMap(e){for(let n of e.cells)this.notebookCellMap.set(n.document,[n,e])}};Mo.NotebookDocuments=$h});var nS=I(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.MonikerFeature=void 0;var NN=kt(),qN=t=>class extends t{get moniker(){return{on:e=>{let n=NN.MonikerRequest.type;return this.connection.onRequest(n,(i,s)=>e(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n,i)))}}}};_u.MonikerFeature=qN});var Qh=I($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.createConnection=$e.combineFeatures=$e.combineNotebooksFeatures=$e.combineLanguagesFeatures=$e.combineWorkspaceFeatures=$e.combineWindowFeatures=$e.combineClientFeatures=$e.combineTracerFeatures=$e.combineTelemetryFeatures=$e.combineConsoleFeatures=$e._NotebooksImpl=$e._LanguagesImpl=$e.BulkUnregistration=$e.BulkRegistration=$e.ErrorMessageTracker=void 0;var ee=kt(),jn=hc(),zh=Eh(),ye=$w(),ON=Ww(),LN=jw(),BN=zw(),UN=qh(),$N=Hw(),WN=Vw(),jN=Gw(),zN=Qw(),HN=Jw(),VN=Yw(),GN=Zw(),QN=eS(),KN=Wh(),JN=nS();function jh(t){if(t!==null)return t}var Hh=class{constructor(){this._messages=Object.create(null)}add(e){let n=this._messages[e];n||(n=0),n++,this._messages[e]=n}sendErrors(e){Object.keys(this._messages).forEach(n=>{e.window.showErrorMessage(n)})}};$e.ErrorMessageTracker=Hh;var vu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(ee.MessageType.Error,e)}warn(e){this.send(ee.MessageType.Warning,e)}info(e){this.send(ee.MessageType.Info,e)}log(e){this.send(ee.MessageType.Log,e)}debug(e){this.send(ee.MessageType.Debug,e)}send(e,n){this._rawConnection&&this._rawConnection.sendNotification(ee.LogMessageNotification.type,{type:e,message:n}).catch(()=>{(0,ee.RAL)().console.error("Sending log message failed")})}},Vh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...n){let i={type:ee.MessageType.Error,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showWarningMessage(e,...n){let i={type:ee.MessageType.Warning,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}showInformationMessage(e,...n){let i={type:ee.MessageType.Info,message:e,actions:n};return this.connection.sendRequest(ee.ShowMessageRequest.type,i).then(jh)}},rS=(0,$N.ShowDocumentFeature)((0,ye.ProgressFeature)(Vh)),iS;(function(t){function e(){return new yu}t.create=e})(iS||($e.BulkRegistration=iS={}));var yu=class{constructor(){this._registrations=[],this._registered=new Set}add(e,n){let i=jn.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let s=zh.generateUuid();this._registrations.push({id:s,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},oS;(function(t){function e(){return new Bs(void 0,[])}t.create=e})(oS||($e.BulkUnregistration=oS={}));var Bs=class{constructor(e,n){this._connection=e,this._unregistrations=new Map,n.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let n={unregisterations:e};this._connection.sendRequest(ee.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let n=jn.string(e)?e:e.method,i=this._unregistrations.get(n);if(!i)return!1;let s={unregisterations:[i]};return this._connection.sendRequest(ee.UnregistrationRequest.type,s).then(()=>{this._unregistrations.delete(n)},c=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},wu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,n,i){return e instanceof yu?this.registerMany(e):e instanceof Bs?this.registerSingle1(e,n,i):this.registerSingle2(e,n)}registerSingle1(e,n,i){let s=jn.string(n)?n:n.method,c=zh.generateUuid(),u={registrations:[{id:c,method:s,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(ee.RegistrationRequest.type,u).then(d=>(e.add({id:c,method:s}),e),d=>(this.connection.console.info(`Registering request handler for ${s} failed.`),Promise.reject(d)))}registerSingle2(e,n){let i=jn.string(e)?e:e.method,s=zh.generateUuid(),c={registrations:[{id:s,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(ee.RegistrationRequest.type,c).then(u=>ee.Disposable.create(()=>{this.unregisterSingle(s,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${s} failed.`)})}),u=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(u)))}unregisterSingle(e,n){let i={unregisterations:[{id:e,method:n}]};return this.connection.sendRequest(ee.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let n=e.asRegistrationParams();return this.connection.sendRequest(ee.RegistrationRequest.type,n).then(()=>new Bs(this._connection,n.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},Gh=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function n(s){return s&&!!s.edit}let i=n(e)?e:{edit:e};return this.connection.sendRequest(ee.ApplyWorkspaceEditRequest.type,i)}},sS=(0,WN.FileOperationsFeature)((0,LN.WorkspaceFoldersFeature)((0,ON.ConfigurationFeature)(Gh))),Su=class{constructor(){this._trace=ee.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,n){this._trace!==ee.Trace.Off&&this.connection.sendNotification(ee.LogTraceNotification.type,{message:e,verbose:this._trace===ee.Trace.Verbose?n:void 0}).catch(()=>{})}},xu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(ee.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Pu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,ye.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,ye.attachPartialResult)(this.connection,n)}};$e._LanguagesImpl=Pu;var aS=(0,VN.FoldingRangeFeature)((0,JN.MonikerFeature)((0,QN.DiagnosticFeature)((0,GN.InlayHintFeature)((0,HN.InlineValueFeature)((0,zN.TypeHierarchyFeature)((0,jN.LinkedEditingRangeFeature)((0,UN.SemanticTokensFeature)((0,BN.CallHierarchyFeature)(Pu))))))))),Cu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,ye.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,n){return(0,ye.attachPartialResult)(this.connection,n)}};$e._NotebooksImpl=Cu;var cS=(0,KN.NotebookSyncFeature)(Cu);function uS(t,e){return function(n){return e(t(n))}}$e.combineConsoleFeatures=uS;function lS(t,e){return function(n){return e(t(n))}}$e.combineTelemetryFeatures=lS;function dS(t,e){return function(n){return e(t(n))}}$e.combineTracerFeatures=dS;function fS(t,e){return function(n){return e(t(n))}}$e.combineClientFeatures=fS;function hS(t,e){return function(n){return e(t(n))}}$e.combineWindowFeatures=hS;function gS(t,e){return function(n){return e(t(n))}}$e.combineWorkspaceFeatures=gS;function pS(t,e){return function(n){return e(t(n))}}$e.combineLanguagesFeatures=pS;function mS(t,e){return function(n){return e(t(n))}}$e.combineNotebooksFeatures=mS;function XN(t,e){function n(s,c,u){return s&&c?u(s,c):s||c}return{__brand:"features",console:n(t.console,e.console,uS),tracer:n(t.tracer,e.tracer,dS),telemetry:n(t.telemetry,e.telemetry,lS),client:n(t.client,e.client,fS),window:n(t.window,e.window,hS),workspace:n(t.workspace,e.workspace,gS),languages:n(t.languages,e.languages,pS),notebooks:n(t.notebooks,e.notebooks,mS)}}$e.combineFeatures=XN;function YN(t,e,n){let i=n&&n.console?new(n.console(vu)):new vu,s=t(i);i.rawAttach(s);let c=n&&n.tracer?new(n.tracer(Su)):new Su,u=n&&n.telemetry?new(n.telemetry(xu)):new xu,d=n&&n.client?new(n.client(wu)):new wu,f=n&&n.window?new(n.window(rS)):new rS,m=n&&n.workspace?new(n.workspace(sS)):new sS,y=n&&n.languages?new(n.languages(aS)):new aS,x=n&&n.notebooks?new(n.notebooks(cS)):new cS,D=[i,c,u,d,f,m,y,x];function N(F){return F instanceof Promise?F:jn.thenable(F)?new Promise((P,U)=>{F.then(te=>P(te),te=>U(te))}):Promise.resolve(F)}let A,L,B,K={listen:()=>s.listen(),sendRequest:(F,...P)=>s.sendRequest(jn.string(F)?F:F.method,...P),onRequest:(F,P)=>s.onRequest(F,P),sendNotification:(F,P)=>{let U=jn.string(F)?F:F.method;return s.sendNotification(U,P)},onNotification:(F,P)=>s.onNotification(F,P),onProgress:s.onProgress,sendProgress:s.sendProgress,onInitialize:F=>(L=F,{dispose:()=>{L=void 0}}),onInitialized:F=>s.onNotification(ee.InitializedNotification.type,F),onShutdown:F=>(A=F,{dispose:()=>{A=void 0}}),onExit:F=>(B=F,{dispose:()=>{B=void 0}}),get console(){return i},get telemetry(){return u},get tracer(){return c},get client(){return d},get window(){return f},get workspace(){return m},get languages(){return y},get notebooks(){return x},onDidChangeConfiguration:F=>s.onNotification(ee.DidChangeConfigurationNotification.type,F),onDidChangeWatchedFiles:F=>s.onNotification(ee.DidChangeWatchedFilesNotification.type,F),__textDocumentSync:void 0,onDidOpenTextDocument:F=>s.onNotification(ee.DidOpenTextDocumentNotification.type,F),onDidChangeTextDocument:F=>s.onNotification(ee.DidChangeTextDocumentNotification.type,F),onDidCloseTextDocument:F=>s.onNotification(ee.DidCloseTextDocumentNotification.type,F),onWillSaveTextDocument:F=>s.onNotification(ee.WillSaveTextDocumentNotification.type,F),onWillSaveTextDocumentWaitUntil:F=>s.onRequest(ee.WillSaveTextDocumentWaitUntilRequest.type,F),onDidSaveTextDocument:F=>s.onNotification(ee.DidSaveTextDocumentNotification.type,F),sendDiagnostics:F=>s.sendNotification(ee.PublishDiagnosticsNotification.type,F),onHover:F=>s.onRequest(ee.HoverRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),void 0)),onCompletion:F=>s.onRequest(ee.CompletionRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onCompletionResolve:F=>s.onRequest(ee.CompletionResolveRequest.type,F),onSignatureHelp:F=>s.onRequest(ee.SignatureHelpRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),void 0)),onDeclaration:F=>s.onRequest(ee.DeclarationRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onDefinition:F=>s.onRequest(ee.DefinitionRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onTypeDefinition:F=>s.onRequest(ee.TypeDefinitionRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onImplementation:F=>s.onRequest(ee.ImplementationRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onReferences:F=>s.onRequest(ee.ReferencesRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onDocumentHighlight:F=>s.onRequest(ee.DocumentHighlightRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onDocumentSymbol:F=>s.onRequest(ee.DocumentSymbolRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onWorkspaceSymbol:F=>s.onRequest(ee.WorkspaceSymbolRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onWorkspaceSymbolResolve:F=>s.onRequest(ee.WorkspaceSymbolResolveRequest.type,F),onCodeAction:F=>s.onRequest(ee.CodeActionRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onCodeActionResolve:F=>s.onRequest(ee.CodeActionResolveRequest.type,(P,U)=>F(P,U)),onCodeLens:F=>s.onRequest(ee.CodeLensRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onCodeLensResolve:F=>s.onRequest(ee.CodeLensResolveRequest.type,(P,U)=>F(P,U)),onDocumentFormatting:F=>s.onRequest(ee.DocumentFormattingRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),void 0)),onDocumentRangeFormatting:F=>s.onRequest(ee.DocumentRangeFormattingRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),void 0)),onDocumentOnTypeFormatting:F=>s.onRequest(ee.DocumentOnTypeFormattingRequest.type,(P,U)=>F(P,U)),onRenameRequest:F=>s.onRequest(ee.RenameRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),void 0)),onPrepareRename:F=>s.onRequest(ee.PrepareRenameRequest.type,(P,U)=>F(P,U)),onDocumentLinks:F=>s.onRequest(ee.DocumentLinkRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onDocumentLinkResolve:F=>s.onRequest(ee.DocumentLinkResolveRequest.type,(P,U)=>F(P,U)),onDocumentColor:F=>s.onRequest(ee.DocumentColorRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onColorPresentation:F=>s.onRequest(ee.ColorPresentationRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onFoldingRanges:F=>s.onRequest(ee.FoldingRangeRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onSelectionRanges:F=>s.onRequest(ee.SelectionRangeRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),(0,ye.attachPartialResult)(s,P))),onExecuteCommand:F=>s.onRequest(ee.ExecuteCommandRequest.type,(P,U)=>F(P,U,(0,ye.attachWorkDone)(s,P),void 0)),dispose:()=>s.dispose()};for(let F of D)F.attach(K);return s.onRequest(ee.InitializeRequest.type,F=>{e.initialize(F),jn.string(F.trace)&&(c.trace=ee.Trace.fromString(F.trace));for(let P of D)P.initialize(F.capabilities);if(L){let P=L(F,new ee.CancellationTokenSource().token,(0,ye.attachWorkDone)(s,F),void 0);return N(P).then(U=>{if(U instanceof ee.ResponseError)return U;let te=U;te||(te={capabilities:{}});let _e=te.capabilities;_e||(_e={},te.capabilities=_e),_e.textDocumentSync===void 0||_e.textDocumentSync===null?_e.textDocumentSync=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None:!jn.number(_e.textDocumentSync)&&!jn.number(_e.textDocumentSync.change)&&(_e.textDocumentSync.change=jn.number(K.__textDocumentSync)?K.__textDocumentSync:ee.TextDocumentSyncKind.None);for(let Be of D)Be.fillServerCapabilities(_e);return te})}else{let P={capabilities:{textDocumentSync:ee.TextDocumentSyncKind.None}};for(let U of D)U.fillServerCapabilities(P.capabilities);return P}}),s.onRequest(ee.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,A)return A(new ee.CancellationTokenSource().token)}),s.onNotification(ee.ExitNotification.type,()=>{try{B&&B()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),s.onNotification(ee.SetTraceNotification.type,F=>{c.trace=ee.Trace.fromString(F.value)}),K}$e.createConnection=YN});var bS=I(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.resolveModulePath=mn.FileSystem=mn.resolveGlobalYarnPath=mn.resolveGlobalNodePath=mn.resolve=mn.uriToFilePath=void 0;var ZN=require("url"),tr=require("path"),Kh=require("fs"),Zh=require("child_process");function eq(t){let e=ZN.parse(t);if(e.protocol!=="file:"||!e.path)return;let n=e.path.split("/");for(var i=0,s=n.length;i1){let c=n[0],u=n[1];c.length===0&&u.length>1&&u[1]===":"&&n.shift()}return tr.normalize(n.join("/"))}mn.uriToFilePath=eq;function Jh(){return process.platform==="win32"}function ku(t,e,n,i){let s="NODE_PATH",c=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((u,d)=>{let f=process.env,m=Object.create(null);Object.keys(f).forEach(y=>m[y]=f[y]),e&&Kh.existsSync(e)&&(m[s]?m[s]=e+tr.delimiter+m[s]:m[s]=e,i&&i(`NODE_PATH value is: ${m[s]}`)),m.ELECTRON_RUN_AS_NODE="1";try{let y=(0,Zh.fork)("",[],{cwd:n,env:m,execArgv:["-e",c]});if(y.pid===void 0){d(new Error(`Starting process to resolve node module ${t} failed`));return}y.on("error",D=>{d(D)}),y.on("message",D=>{D.c==="r"&&(y.send({c:"e"}),D.s?u(D.r):d(new Error(`Failed to resolve module: ${t}`)))});let x={c:"rs",a:t};y.send(x)}catch(y){d(y)}})}mn.resolve=ku;function Xh(t){let e="npm",n=Object.create(null);Object.keys(process.env).forEach(c=>n[c]=process.env[c]),n.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:n};Jh()&&(e="npm.cmd",i.shell=!0);let s=()=>{};try{process.on("SIGPIPE",s);let c=(0,Zh.spawnSync)(e,["config","get","prefix"],i).stdout;if(!c){t&&t("'npm config get prefix' didn't return a value.");return}let u=c.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?Jh()?tr.join(u,"node_modules"):tr.join(u,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",s)}}mn.resolveGlobalNodePath=Xh;function tq(t){let e="yarn",n={encoding:"utf8"};Jh()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let s=(0,Zh.spawnSync)(e,["global","dir","--json"],n),c=s.stdout;if(!c){t&&(t("'yarn global dir' didn't return a value."),s.stderr&&t(s.stderr));return}let u=c.trim().split(/\r?\n/);for(let d of u)try{let f=JSON.parse(d);if(f.type==="log")return tr.join(f.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}mn.resolveGlobalYarnPath=tq;var Yh;(function(t){let e;function n(){return e!==void 0||(process.platform==="win32"?e=!1:e=!Kh.existsSync(__filename.toUpperCase())||!Kh.existsSync(__filename.toLowerCase())),e}t.isCaseSensitive=n;function i(s,c){return n()?tr.normalize(c).indexOf(tr.normalize(s))===0:tr.normalize(c).toLowerCase().indexOf(tr.normalize(s).toLowerCase())===0}t.isParent=i})(Yh||(mn.FileSystem=Yh={}));function nq(t,e,n,i){return n?(tr.isAbsolute(n)||(n=tr.join(t,n)),ku(e,n,n,i).then(s=>Yh.isParent(n,s)?s:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,s=>ku(e,Xh(i),t,i))):ku(e,Xh(i),t,i)}mn.resolveModulePath=nq});var eg=I((kz,_S)=>{"use strict";_S.exports=kt()});var vS=I(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.InlineCompletionFeature=void 0;var rq=kt(),iq=t=>class extends t{get inlineCompletion(){return{on:e=>this.connection.onRequest(rq.InlineCompletionRequest.type,(n,i)=>e(n,i,this.attachWorkDoneProgress(n)))}}};Tu.InlineCompletionFeature=iq});var SS=I(Kt=>{"use strict";var oq=Kt&&Kt.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),wS=Kt&&Kt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&oq(e,t,n)};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.ProposedFeatures=Kt.NotebookDocuments=Kt.TextDocuments=Kt.SemanticTokensBuilder=void 0;var sq=qh();Object.defineProperty(Kt,"SemanticTokensBuilder",{enumerable:!0,get:function(){return sq.SemanticTokensBuilder}});var aq=vS();wS(kt(),Kt);var cq=Uh();Object.defineProperty(Kt,"TextDocuments",{enumerable:!0,get:function(){return cq.TextDocuments}});var uq=Wh();Object.defineProperty(Kt,"NotebookDocuments",{enumerable:!0,get:function(){return uq.NotebookDocuments}});wS(Qh(),Kt);var yS;(function(t){t.all={__brand:"features",languages:aq.InlineCompletionFeature}})(yS||(Kt.ProposedFeatures=yS={}))});var ng=I(zn=>{"use strict";var lq=zn&&zn.__createBinding||(Object.create?function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}:function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]}),kS=zn&&zn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&lq(e,t,n)};Object.defineProperty(zn,"__esModule",{value:!0});zn.createConnection=zn.Files=void 0;var xS=require("node:util"),tg=hc(),dq=Qh(),Us=bS(),ji=eg();kS(eg(),zn);kS(SS(),zn);var PS;(function(t){t.uriToFilePath=Us.uriToFilePath,t.resolveGlobalNodePath=Us.resolveGlobalNodePath,t.resolveGlobalYarnPath=Us.resolveGlobalYarnPath,t.resolve=Us.resolve,t.resolveModulePath=Us.resolveModulePath})(PS||(zn.Files=PS={}));var CS;function Ru(){if(CS!==void 0)try{CS.end()}catch{}}var Ao=!1,TS;function fq(){let t="--clientProcessId";function e(n){try{let i=parseInt(n);isNaN(i)||(TS=setInterval(()=>{try{process.kill(i,0)}catch{Ru(),process.exit(Ao?0:1)}},3e3))}catch{}}for(let n=2;n{let e=t.processId;tg.number(e)&&TS===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(Ao?0:1)}},3e3)},get shutdownReceived(){return Ao},set shutdownReceived(t){Ao=t},exit:t=>{Ru(),process.exit(t)}};function gq(t,e,n,i){let s,c,u,d;return t!==void 0&&t.__brand==="features"&&(s=t,t=e,e=n,n=i),ji.ConnectionStrategy.is(t)||ji.ConnectionOptions.is(t)?d=t:(c=t,u=e,d=n),pq(c,u,d,s)}zn.createConnection=gq;function pq(t,e,n,i){let s=!1;if(!t&&!e&&process.argv.length>2){let f,m,y=process.argv.slice(2);for(let x=0;x{Ru(),process.exit(Ao?0:1)}),f.on("close",()=>{Ru(),process.exit(Ao?0:1)})}let d=f=>{let m=(0,ji.createProtocolConnection)(t,e,f,n);return s&&mq(f),m};return(0,dq.createConnection)(d,hq,i)}function mq(t){function e(i){return i.map(s=>typeof s=="string"?s:(0,xS.inspect)(s)).join(" ")}let n=new Map;console.assert=function(s,...c){if(!s)if(c.length===0)t.error("Assertion failed");else{let[u,...d]=c;t.error(`Assertion failed: ${u} ${e(d)}`)}},console.count=function(s="default"){let c=String(s),u=n.get(c)??0;u+=1,n.set(c,u),t.log(`${c}: ${c}`)},console.countReset=function(s){s===void 0?n.clear():n.delete(String(s))},console.debug=function(...s){t.log(e(s))},console.dir=function(s,c){t.log((0,xS.inspect)(s,c))},console.log=function(...s){t.log(e(s))},console.error=function(...s){t.error(e(s))},console.trace=function(...s){let c=new Error().stack.replace(/(.+\n){2}/,""),u="Trace";s.length!==0&&(u+=`: ${e(s)}`),t.log(`${u} +${c}`)},console.warn=function(...s){t.warn(e(s))}}});var DS=I((Ez,RS)=>{"use strict";RS.exports=ng()});var NS=I((Vz,AS)=>{"use strict";function Sq(){this.__data__=[],this.size=0}AS.exports=Sq});var sg=I((Gz,qS)=>{"use strict";function xq(t,e){return t===e||t!==t&&e!==e}qS.exports=xq});var Ws=I((Qz,OS)=>{"use strict";var Pq=sg();function Cq(t,e){for(var n=t.length;n--;)if(Pq(t[n][0],e))return n;return-1}OS.exports=Cq});var BS=I((Kz,LS)=>{"use strict";var kq=Ws(),Tq=Array.prototype,Rq=Tq.splice;function Dq(t){var e=this.__data__,n=kq(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():Rq.call(e,n,1),--this.size,!0}LS.exports=Dq});var $S=I((Jz,US)=>{"use strict";var Fq=Ws();function Eq(t){var e=this.__data__,n=Fq(e,t);return n<0?void 0:e[n][1]}US.exports=Eq});var jS=I((Xz,WS)=>{"use strict";var Iq=Ws();function Mq(t){return Iq(this.__data__,t)>-1}WS.exports=Mq});var HS=I((Yz,zS)=>{"use strict";var Aq=Ws();function Nq(t,e){var n=this.__data__,i=Aq(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}zS.exports=Nq});var js=I((Zz,VS)=>{"use strict";var qq=NS(),Oq=BS(),Lq=$S(),Bq=jS(),Uq=HS();function No(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var $q=js();function Wq(){this.__data__=new $q,this.size=0}GS.exports=Wq});var JS=I((tH,KS)=>{"use strict";function jq(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}KS.exports=jq});var YS=I((nH,XS)=>{"use strict";function zq(t){return this.__data__.get(t)}XS.exports=zq});var ex=I((rH,ZS)=>{"use strict";function Hq(t){return this.__data__.has(t)}ZS.exports=Hq});var ag=I((iH,tx)=>{"use strict";var Vq=typeof global=="object"&&global&&global.Object===Object&&global;tx.exports=Vq});var nr=I((oH,nx)=>{"use strict";var Gq=ag(),Qq=typeof self=="object"&&self&&self.Object===Object&&self,Kq=Gq||Qq||Function("return this")();nx.exports=Kq});var Mu=I((sH,rx)=>{"use strict";var Jq=nr(),Xq=Jq.Symbol;rx.exports=Xq});var ax=I((aH,sx)=>{"use strict";var ix=Mu(),ox=Object.prototype,Yq=ox.hasOwnProperty,Zq=ox.toString,zs=ix?ix.toStringTag:void 0;function e1(t){var e=Yq.call(t,zs),n=t[zs];try{t[zs]=void 0;var i=!0}catch{}var s=Zq.call(t);return i&&(e?t[zs]=n:delete t[zs]),s}sx.exports=e1});var ux=I((cH,cx)=>{"use strict";var t1=Object.prototype,n1=t1.toString;function r1(t){return n1.call(t)}cx.exports=r1});var Hs=I((uH,fx)=>{"use strict";var lx=Mu(),i1=ax(),o1=ux(),s1="[object Null]",a1="[object Undefined]",dx=lx?lx.toStringTag:void 0;function c1(t){return t==null?t===void 0?a1:s1:dx&&dx in Object(t)?i1(t):o1(t)}fx.exports=c1});var qo=I((lH,hx)=>{"use strict";function u1(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}hx.exports=u1});var cg=I((dH,gx)=>{"use strict";var l1=Hs(),d1=qo(),f1="[object AsyncFunction]",h1="[object Function]",g1="[object GeneratorFunction]",p1="[object Proxy]";function m1(t){if(!d1(t))return!1;var e=l1(t);return e==h1||e==g1||e==f1||e==p1}gx.exports=m1});var mx=I((fH,px)=>{"use strict";var b1=nr(),_1=b1["__core-js_shared__"];px.exports=_1});var vx=I((hH,_x)=>{"use strict";var ug=mx(),bx=function(){var t=/[^.]+$/.exec(ug&&ug.keys&&ug.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function v1(t){return!!bx&&bx in t}_x.exports=v1});var lg=I((gH,yx)=>{"use strict";var y1=Function.prototype,w1=y1.toString;function S1(t){if(t!=null){try{return w1.call(t)}catch{}try{return t+""}catch{}}return""}yx.exports=S1});var Sx=I((pH,wx)=>{"use strict";var x1=cg(),P1=vx(),C1=qo(),k1=lg(),T1=/[\\^$.*+?()[\]{}|]/g,R1=/^\[object .+?Constructor\]$/,D1=Function.prototype,F1=Object.prototype,E1=D1.toString,I1=F1.hasOwnProperty,M1=RegExp("^"+E1.call(I1).replace(T1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function A1(t){if(!C1(t)||P1(t))return!1;var e=x1(t)?M1:R1;return e.test(k1(t))}wx.exports=A1});var Px=I((mH,xx)=>{"use strict";function N1(t,e){return t?.[e]}xx.exports=N1});var pi=I((bH,Cx)=>{"use strict";var q1=Sx(),O1=Px();function L1(t,e){var n=O1(t,e);return q1(n)?n:void 0}Cx.exports=L1});var Au=I((_H,kx)=>{"use strict";var B1=pi(),U1=nr(),$1=B1(U1,"Map");kx.exports=$1});var Vs=I((vH,Tx)=>{"use strict";var W1=pi(),j1=W1(Object,"create");Tx.exports=j1});var Fx=I((yH,Dx)=>{"use strict";var Rx=Vs();function z1(){this.__data__=Rx?Rx(null):{},this.size=0}Dx.exports=z1});var Ix=I((wH,Ex)=>{"use strict";function H1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Ex.exports=H1});var Ax=I((SH,Mx)=>{"use strict";var V1=Vs(),G1="__lodash_hash_undefined__",Q1=Object.prototype,K1=Q1.hasOwnProperty;function J1(t){var e=this.__data__;if(V1){var n=e[t];return n===G1?void 0:n}return K1.call(e,t)?e[t]:void 0}Mx.exports=J1});var qx=I((xH,Nx)=>{"use strict";var X1=Vs(),Y1=Object.prototype,Z1=Y1.hasOwnProperty;function eO(t){var e=this.__data__;return X1?e[t]!==void 0:Z1.call(e,t)}Nx.exports=eO});var Lx=I((PH,Ox)=>{"use strict";var tO=Vs(),nO="__lodash_hash_undefined__";function rO(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=tO&&e===void 0?nO:e,this}Ox.exports=rO});var Ux=I((CH,Bx)=>{"use strict";var iO=Fx(),oO=Ix(),sO=Ax(),aO=qx(),cO=Lx();function Oo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var $x=Ux(),uO=js(),lO=Au();function dO(){this.size=0,this.__data__={hash:new $x,map:new(lO||uO),string:new $x}}Wx.exports=dO});var Hx=I((TH,zx)=>{"use strict";function fO(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}zx.exports=fO});var Gs=I((RH,Vx)=>{"use strict";var hO=Hx();function gO(t,e){var n=t.__data__;return hO(e)?n[typeof e=="string"?"string":"hash"]:n.map}Vx.exports=gO});var Qx=I((DH,Gx)=>{"use strict";var pO=Gs();function mO(t){var e=pO(this,t).delete(t);return this.size-=e?1:0,e}Gx.exports=mO});var Jx=I((FH,Kx)=>{"use strict";var bO=Gs();function _O(t){return bO(this,t).get(t)}Kx.exports=_O});var Yx=I((EH,Xx)=>{"use strict";var vO=Gs();function yO(t){return vO(this,t).has(t)}Xx.exports=yO});var eP=I((IH,Zx)=>{"use strict";var wO=Gs();function SO(t,e){var n=wO(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}Zx.exports=SO});var nP=I((MH,tP)=>{"use strict";var xO=jx(),PO=Qx(),CO=Jx(),kO=Yx(),TO=eP();function Lo(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e{"use strict";var RO=js(),DO=Au(),FO=nP(),EO=200;function IO(t,e){var n=this.__data__;if(n instanceof RO){var i=n.__data__;if(!DO||i.length{"use strict";var MO=js(),AO=QS(),NO=JS(),qO=YS(),OO=ex(),LO=iP();function Bo(t){var e=this.__data__=new MO(t);this.size=e.size}Bo.prototype.clear=AO;Bo.prototype.delete=NO;Bo.prototype.get=qO;Bo.prototype.has=OO;Bo.prototype.set=LO;oP.exports=Bo});var cP=I((qH,aP)=>{"use strict";function BO(t,e){for(var n=-1,i=t==null?0:t.length;++n{"use strict";var UO=pi(),$O=function(){try{var t=UO(Object,"defineProperty");return t({},"",{}),t}catch{}}();uP.exports=$O});var dg=I((LH,fP)=>{"use strict";var dP=lP();function WO(t,e,n){e=="__proto__"&&dP?dP(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}fP.exports=WO});var fg=I((BH,hP)=>{"use strict";var jO=dg(),zO=sg(),HO=Object.prototype,VO=HO.hasOwnProperty;function GO(t,e,n){var i=t[e];(!(VO.call(t,e)&&zO(i,n))||n===void 0&&!(e in t))&&jO(t,e,n)}hP.exports=GO});var Qs=I((UH,gP)=>{"use strict";var QO=fg(),KO=dg();function JO(t,e,n,i){var s=!n;n||(n={});for(var c=-1,u=e.length;++c{"use strict";function XO(t,e){for(var n=-1,i=Array(t);++n{"use strict";function YO(t){return t!=null&&typeof t=="object"}bP.exports=YO});var vP=I((jH,_P)=>{"use strict";var ZO=Hs(),eL=Uo(),tL="[object Arguments]";function nL(t){return eL(t)&&ZO(t)==tL}_P.exports=nL});var xP=I((zH,SP)=>{"use strict";var yP=vP(),rL=Uo(),wP=Object.prototype,iL=wP.hasOwnProperty,oL=wP.propertyIsEnumerable,sL=yP(function(){return arguments}())?yP:function(t){return rL(t)&&iL.call(t,"callee")&&!oL.call(t,"callee")};SP.exports=sL});var Nu=I((HH,PP)=>{"use strict";var aL=Array.isArray;PP.exports=aL});var kP=I((VH,CP)=>{"use strict";function cL(){return!1}CP.exports=cL});var hg=I((Ks,$o)=>{"use strict";var uL=nr(),lL=kP(),DP=typeof Ks=="object"&&Ks&&!Ks.nodeType&&Ks,TP=DP&&typeof $o=="object"&&$o&&!$o.nodeType&&$o,dL=TP&&TP.exports===DP,RP=dL?uL.Buffer:void 0,fL=RP?RP.isBuffer:void 0,hL=fL||lL;$o.exports=hL});var EP=I((GH,FP)=>{"use strict";var gL=9007199254740991,pL=/^(?:0|[1-9]\d*)$/;function mL(t,e){var n=typeof t;return e=e??gL,!!e&&(n=="number"||n!="symbol"&&pL.test(t))&&t>-1&&t%1==0&&t{"use strict";var bL=9007199254740991;function _L(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=bL}IP.exports=_L});var AP=I((KH,MP)=>{"use strict";var vL=Hs(),yL=gg(),wL=Uo(),SL="[object Arguments]",xL="[object Array]",PL="[object Boolean]",CL="[object Date]",kL="[object Error]",TL="[object Function]",RL="[object Map]",DL="[object Number]",FL="[object Object]",EL="[object RegExp]",IL="[object Set]",ML="[object String]",AL="[object WeakMap]",NL="[object ArrayBuffer]",qL="[object DataView]",OL="[object Float32Array]",LL="[object Float64Array]",BL="[object Int8Array]",UL="[object Int16Array]",$L="[object Int32Array]",WL="[object Uint8Array]",jL="[object Uint8ClampedArray]",zL="[object Uint16Array]",HL="[object Uint32Array]",dt={};dt[OL]=dt[LL]=dt[BL]=dt[UL]=dt[$L]=dt[WL]=dt[jL]=dt[zL]=dt[HL]=!0;dt[SL]=dt[xL]=dt[NL]=dt[PL]=dt[qL]=dt[CL]=dt[kL]=dt[TL]=dt[RL]=dt[DL]=dt[FL]=dt[EL]=dt[IL]=dt[ML]=dt[AL]=!1;function VL(t){return wL(t)&&yL(t.length)&&!!dt[vL(t)]}MP.exports=VL});var qu=I((JH,NP)=>{"use strict";function GL(t){return function(e){return t(e)}}NP.exports=GL});var Ou=I((Js,Wo)=>{"use strict";var QL=ag(),qP=typeof Js=="object"&&Js&&!Js.nodeType&&Js,Xs=qP&&typeof Wo=="object"&&Wo&&!Wo.nodeType&&Wo,KL=Xs&&Xs.exports===qP,pg=KL&&QL.process,JL=function(){try{var t=Xs&&Xs.require&&Xs.require("util").types;return t||pg&&pg.binding&&pg.binding("util")}catch{}}();Wo.exports=JL});var UP=I((XH,BP)=>{"use strict";var XL=AP(),YL=qu(),OP=Ou(),LP=OP&&OP.isTypedArray,ZL=LP?YL(LP):XL;BP.exports=ZL});var mg=I((YH,$P)=>{"use strict";var eB=mP(),tB=xP(),nB=Nu(),rB=hg(),iB=EP(),oB=UP(),sB=Object.prototype,aB=sB.hasOwnProperty;function cB(t,e){var n=nB(t),i=!n&&tB(t),s=!n&&!i&&rB(t),c=!n&&!i&&!s&&oB(t),u=n||i||s||c,d=u?eB(t.length,String):[],f=d.length;for(var m in t)(e||aB.call(t,m))&&!(u&&(m=="length"||s&&(m=="offset"||m=="parent")||c&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||iB(m,f)))&&d.push(m);return d}$P.exports=cB});var Lu=I((ZH,WP)=>{"use strict";var uB=Object.prototype;function lB(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||uB;return t===n}WP.exports=lB});var bg=I((eV,jP)=>{"use strict";function dB(t,e){return function(n){return t(e(n))}}jP.exports=dB});var HP=I((tV,zP)=>{"use strict";var fB=bg(),hB=fB(Object.keys,Object);zP.exports=hB});var GP=I((nV,VP)=>{"use strict";var gB=Lu(),pB=HP(),mB=Object.prototype,bB=mB.hasOwnProperty;function _B(t){if(!gB(t))return pB(t);var e=[];for(var n in Object(t))bB.call(t,n)&&n!="constructor"&&e.push(n);return e}VP.exports=_B});var _g=I((rV,QP)=>{"use strict";var vB=cg(),yB=gg();function wB(t){return t!=null&&yB(t.length)&&!vB(t)}QP.exports=wB});var Bu=I((iV,KP)=>{"use strict";var SB=mg(),xB=GP(),PB=_g();function CB(t){return PB(t)?SB(t):xB(t)}KP.exports=CB});var XP=I((oV,JP)=>{"use strict";var kB=Qs(),TB=Bu();function RB(t,e){return t&&kB(e,TB(e),t)}JP.exports=RB});var ZP=I((sV,YP)=>{"use strict";function DB(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}YP.exports=DB});var tC=I((aV,eC)=>{"use strict";var FB=qo(),EB=Lu(),IB=ZP(),MB=Object.prototype,AB=MB.hasOwnProperty;function NB(t){if(!FB(t))return IB(t);var e=EB(t),n=[];for(var i in t)i=="constructor"&&(e||!AB.call(t,i))||n.push(i);return n}eC.exports=NB});var Uu=I((cV,nC)=>{"use strict";var qB=mg(),OB=tC(),LB=_g();function BB(t){return LB(t)?qB(t,!0):OB(t)}nC.exports=BB});var iC=I((uV,rC)=>{"use strict";var UB=Qs(),$B=Uu();function WB(t,e){return t&&UB(e,$B(e),t)}rC.exports=WB});var uC=I((Ys,jo)=>{"use strict";var jB=nr(),cC=typeof Ys=="object"&&Ys&&!Ys.nodeType&&Ys,oC=cC&&typeof jo=="object"&&jo&&!jo.nodeType&&jo,zB=oC&&oC.exports===cC,sC=zB?jB.Buffer:void 0,aC=sC?sC.allocUnsafe:void 0;function HB(t,e){if(e)return t.slice();var n=t.length,i=aC?aC(n):new t.constructor(n);return t.copy(i),i}jo.exports=HB});var dC=I((lV,lC)=>{"use strict";function VB(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{"use strict";function GB(t,e){for(var n=-1,i=t==null?0:t.length,s=0,c=[];++n{"use strict";function QB(){return[]}gC.exports=QB});var $u=I((hV,mC)=>{"use strict";var KB=hC(),JB=vg(),XB=Object.prototype,YB=XB.propertyIsEnumerable,pC=Object.getOwnPropertySymbols,ZB=pC?function(t){return t==null?[]:(t=Object(t),KB(pC(t),function(e){return YB.call(t,e)}))}:JB;mC.exports=ZB});var _C=I((gV,bC)=>{"use strict";var eU=Qs(),tU=$u();function nU(t,e){return eU(t,tU(t),e)}bC.exports=nU});var yg=I((pV,vC)=>{"use strict";function rU(t,e){for(var n=-1,i=e.length,s=t.length;++n{"use strict";var iU=bg(),oU=iU(Object.getPrototypeOf,Object);yC.exports=oU});var Sg=I((bV,wC)=>{"use strict";var sU=yg(),aU=wg(),cU=$u(),uU=vg(),lU=Object.getOwnPropertySymbols,dU=lU?function(t){for(var e=[];t;)sU(e,cU(t)),t=aU(t);return e}:uU;wC.exports=dU});var xC=I((_V,SC)=>{"use strict";var fU=Qs(),hU=Sg();function gU(t,e){return fU(t,hU(t),e)}SC.exports=gU});var xg=I((vV,PC)=>{"use strict";var pU=yg(),mU=Nu();function bU(t,e,n){var i=e(t);return mU(t)?i:pU(i,n(t))}PC.exports=bU});var kC=I((yV,CC)=>{"use strict";var _U=xg(),vU=$u(),yU=Bu();function wU(t){return _U(t,yU,vU)}CC.exports=wU});var RC=I((wV,TC)=>{"use strict";var SU=xg(),xU=Sg(),PU=Uu();function CU(t){return SU(t,PU,xU)}TC.exports=CU});var FC=I((SV,DC)=>{"use strict";var kU=pi(),TU=nr(),RU=kU(TU,"DataView");DC.exports=RU});var IC=I((xV,EC)=>{"use strict";var DU=pi(),FU=nr(),EU=DU(FU,"Promise");EC.exports=EU});var AC=I((PV,MC)=>{"use strict";var IU=pi(),MU=nr(),AU=IU(MU,"Set");MC.exports=AU});var qC=I((CV,NC)=>{"use strict";var NU=pi(),qU=nr(),OU=NU(qU,"WeakMap");NC.exports=OU});var Wu=I((kV,jC)=>{"use strict";var Pg=FC(),Cg=Au(),kg=IC(),Tg=AC(),Rg=qC(),WC=Hs(),zo=lg(),OC="[object Map]",LU="[object Object]",LC="[object Promise]",BC="[object Set]",UC="[object WeakMap]",$C="[object DataView]",BU=zo(Pg),UU=zo(Cg),$U=zo(kg),WU=zo(Tg),jU=zo(Rg),zi=WC;(Pg&&zi(new Pg(new ArrayBuffer(1)))!=$C||Cg&&zi(new Cg)!=OC||kg&&zi(kg.resolve())!=LC||Tg&&zi(new Tg)!=BC||Rg&&zi(new Rg)!=UC)&&(zi=function(t){var e=WC(t),n=e==LU?t.constructor:void 0,i=n?zo(n):"";if(i)switch(i){case BU:return $C;case UU:return OC;case $U:return LC;case WU:return BC;case jU:return UC}return e});jC.exports=zi});var HC=I((TV,zC)=>{"use strict";var zU=Object.prototype,HU=zU.hasOwnProperty;function VU(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&HU.call(t,"index")&&(n.index=t.index,n.input=t.input),n}zC.exports=VU});var GC=I((RV,VC)=>{"use strict";var GU=nr(),QU=GU.Uint8Array;VC.exports=QU});var ju=I((DV,KC)=>{"use strict";var QC=GC();function KU(t){var e=new t.constructor(t.byteLength);return new QC(e).set(new QC(t)),e}KC.exports=KU});var XC=I((FV,JC)=>{"use strict";var JU=ju();function XU(t,e){var n=e?JU(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}JC.exports=XU});var ZC=I((EV,YC)=>{"use strict";var YU=/\w*$/;function ZU(t){var e=new t.constructor(t.source,YU.exec(t));return e.lastIndex=t.lastIndex,e}YC.exports=ZU});var ik=I((IV,rk)=>{"use strict";var ek=Mu(),tk=ek?ek.prototype:void 0,nk=tk?tk.valueOf:void 0;function e$(t){return nk?Object(nk.call(t)):{}}rk.exports=e$});var sk=I((MV,ok)=>{"use strict";var t$=ju();function n$(t,e){var n=e?t$(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}ok.exports=n$});var ck=I((AV,ak)=>{"use strict";var r$=ju(),i$=XC(),o$=ZC(),s$=ik(),a$=sk(),c$="[object Boolean]",u$="[object Date]",l$="[object Map]",d$="[object Number]",f$="[object RegExp]",h$="[object Set]",g$="[object String]",p$="[object Symbol]",m$="[object ArrayBuffer]",b$="[object DataView]",_$="[object Float32Array]",v$="[object Float64Array]",y$="[object Int8Array]",w$="[object Int16Array]",S$="[object Int32Array]",x$="[object Uint8Array]",P$="[object Uint8ClampedArray]",C$="[object Uint16Array]",k$="[object Uint32Array]";function T$(t,e,n){var i=t.constructor;switch(e){case m$:return r$(t);case c$:case u$:return new i(+t);case b$:return i$(t,n);case _$:case v$:case y$:case w$:case S$:case x$:case P$:case C$:case k$:return a$(t,n);case l$:return new i;case d$:case g$:return new i(t);case f$:return o$(t);case h$:return new i;case p$:return s$(t)}}ak.exports=T$});var dk=I((NV,lk)=>{"use strict";var R$=qo(),uk=Object.create,D$=function(){function t(){}return function(e){if(!R$(e))return{};if(uk)return uk(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();lk.exports=D$});var hk=I((qV,fk)=>{"use strict";var F$=dk(),E$=wg(),I$=Lu();function M$(t){return typeof t.constructor=="function"&&!I$(t)?F$(E$(t)):{}}fk.exports=M$});var pk=I((OV,gk)=>{"use strict";var A$=Wu(),N$=Uo(),q$="[object Map]";function O$(t){return N$(t)&&A$(t)==q$}gk.exports=O$});var vk=I((LV,_k)=>{"use strict";var L$=pk(),B$=qu(),mk=Ou(),bk=mk&&mk.isMap,U$=bk?B$(bk):L$;_k.exports=U$});var wk=I((BV,yk)=>{"use strict";var $$=Wu(),W$=Uo(),j$="[object Set]";function z$(t){return W$(t)&&$$(t)==j$}yk.exports=z$});var Ck=I((UV,Pk)=>{"use strict";var H$=wk(),V$=qu(),Sk=Ou(),xk=Sk&&Sk.isSet,G$=xk?V$(xk):H$;Pk.exports=G$});var Fk=I(($V,Dk)=>{"use strict";var Q$=sP(),K$=cP(),J$=fg(),X$=XP(),Y$=iC(),Z$=uC(),eW=dC(),tW=_C(),nW=xC(),rW=kC(),iW=RC(),oW=Wu(),sW=HC(),aW=ck(),cW=hk(),uW=Nu(),lW=hg(),dW=vk(),fW=qo(),hW=Ck(),gW=Bu(),pW=Uu(),mW=1,bW=2,_W=4,kk="[object Arguments]",vW="[object Array]",yW="[object Boolean]",wW="[object Date]",SW="[object Error]",Tk="[object Function]",xW="[object GeneratorFunction]",PW="[object Map]",CW="[object Number]",Rk="[object Object]",kW="[object RegExp]",TW="[object Set]",RW="[object String]",DW="[object Symbol]",FW="[object WeakMap]",EW="[object ArrayBuffer]",IW="[object DataView]",MW="[object Float32Array]",AW="[object Float64Array]",NW="[object Int8Array]",qW="[object Int16Array]",OW="[object Int32Array]",LW="[object Uint8Array]",BW="[object Uint8ClampedArray]",UW="[object Uint16Array]",$W="[object Uint32Array]",it={};it[kk]=it[vW]=it[EW]=it[IW]=it[yW]=it[wW]=it[MW]=it[AW]=it[NW]=it[qW]=it[OW]=it[PW]=it[CW]=it[Rk]=it[kW]=it[TW]=it[RW]=it[DW]=it[LW]=it[BW]=it[UW]=it[$W]=!0;it[SW]=it[Tk]=it[FW]=!1;function zu(t,e,n,i,s,c){var u,d=e&mW,f=e&bW,m=e&_W;if(n&&(u=s?n(t,i,s,c):n(t)),u!==void 0)return u;if(!fW(t))return t;var y=uW(t);if(y){if(u=sW(t),!d)return eW(t,u)}else{var x=oW(t),D=x==Tk||x==xW;if(lW(t))return Z$(t,d);if(x==Rk||x==kk||D&&!s){if(u=f||D?{}:cW(t),!d)return f?nW(t,Y$(u,t)):tW(t,X$(u,t))}else{if(!it[x])return s?t:{};u=aW(t,x,d)}}c||(c=new Q$);var N=c.get(t);if(N)return N;c.set(t,u),hW(t)?t.forEach(function(B){u.add(zu(B,e,n,B,t,c))}):dW(t)&&t.forEach(function(B,K){u.set(K,zu(B,e,n,K,t,c))});var A=m?f?iW:rW:f?pW:gW,L=y?void 0:A(t);return K$(L||t,function(B,K){L&&(K=B,B=t[K]),J$(u,K,zu(B,e,n,K,t,c))}),u}Dk.exports=zu});var Ik=I((WV,Ek)=>{"use strict";var WW=Fk(),jW=1,zW=4;function HW(t){return WW(t,jW|zW)}Ek.exports=HW});var Dg=I((Mk,Hu)=>{"use strict";(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof Hu=="object"&&Hu.exports?Hu.exports=e():t.log=e()})(Mk,function(){"use strict";var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},c=null;function u(A,L){var B=A[L];if(typeof B.bind=="function")return B.bind(A);try{return Function.prototype.bind.call(B,A)}catch{return function(){return Function.prototype.apply.apply(B,[A,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function f(A){return A==="debug"&&(A="log"),typeof console===e?!1:A==="trace"&&n?d:console[A]!==void 0?u(console,A):console.log!==void 0?u(console,"log"):t}function m(){for(var A=this.getLevel(),L=0;L=0&&X<=B.levels.SILENT)return X;throw new TypeError("log.setLevel() called with invalid level: "+we)}B.name=A,B.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},B.methodFactory=L||x,B.getLevel=function(){return P??F??K},B.setLevel=function(we,X){return P=Je(we),X!==!1&&te(P),m.call(B)},B.setDefaultLevel=function(we){F=Je(we),_e()||B.setLevel(we,!1)},B.resetLevel=function(){P=null,Be(),m.call(B)},B.enableAll=function(we){B.setLevel(B.levels.TRACE,we)},B.disableAll=function(we){B.setLevel(B.levels.SILENT,we)},B.rebuild=function(){if(c!==B&&(K=Je(c.getLevel())),m.call(B),c===B)for(var we in s)s[we].rebuild()},K=Je(c?c.getLevel():"WARN");var Dt=_e();Dt!=null&&(P=Je(Dt)),m.call(B)}c=new D,c.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var B=s[L];return B||(B=s[L]=new D(L,c.methodFactory)),B};var N=typeof window!==e?window.log:void 0;return c.noConflict=function(){return typeof window!==e&&window.log===c&&(window.log=N),c},c.getLoggers=function(){return s},c.default=c,c})});var Go=I((Vo,ea)=>{"use strict";(function(){var t,e="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,f="__lodash_placeholder__",m=1,y=2,x=4,D=1,N=2,A=1,L=2,B=4,K=8,F=16,P=32,U=64,te=128,_e=256,Be=512,Je=30,Dt="...",we=800,X=16,z=1,se=2,re=3,De=1/0,ge=9007199254740991,pe=17976931348623157e292,St=NaN,We=4294967295,je=We-1,bn=We>>>1,yr=[["ary",te],["bind",A],["bindKey",L],["curry",K],["curryRight",F],["flip",Be],["partial",P],["partialRight",U],["rearg",_e]],Vn="[object Arguments]",ur="[object Array]",xi="[object AsyncFunction]",lr="[object Boolean]",dr="[object Date]",Qi="[object DOMException]",wr="[object Error]",Sr="[object Function]",xr="[object GeneratorFunction]",mt="[object Map]",fr="[object Number]",Ki="[object Null]",Bt="[object Object]",Pi="[object Promise]",zr="[object Proxy]",hr="[object RegExp]",xt="[object Set]",sn="[object String]",Pr="[object Symbol]",Ji="[object Undefined]",jt="[object WeakMap]",Ci="[object WeakSet]",Gn="[object ArrayBuffer]",_n="[object DataView]",Cr="[object Float32Array]",vn="[object Float64Array]",C="[object Int8Array]",H="[object Int16Array]",Z="[object Int32Array]",ie="[object Uint8Array]",Ue="[object Uint8ClampedArray]",Le="[object Uint16Array]",Ge="[object Uint32Array]",et=/\b__p \+= '';/g,Fe=/\b(__p \+=) '' \+/g,Qe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ne=/&(?:amp|lt|gt|quot|#39);/g,ct=/[&<>"']/g,Ft=RegExp(Ne.source),Yt=RegExp(ct.source),Xi=/<%-([\s\S]+?)%>/g,ya=/<%([\s\S]+?)%>/g,ls=/<%=([\s\S]+?)%>/g,wa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Sa=/^\w*$/,zl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,q=/[\\^$.*+?()[\]{}|]/g,p=RegExp(q.source),k=/^\s+/,R=/\s/,v=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,g=/\{\n\/\* \[wrapped with (.+)\] \*/,O=/,? & /,G=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,Xe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,an=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,Qn=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,Hr=/^0o[0-7]+$/i,Yi=/^(?:0|[1-9]\d*)$/,xa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pa=/($^)/,$T=/['\n\r\u2028\u2029\\]/g,Ca="\\ud800-\\udfff",WT="\\u0300-\\u036f",jT="\\ufe20-\\ufe2f",zT="\\u20d0-\\u20ff",Ip=WT+jT+zT,Mp="\\u2700-\\u27bf",Ap="a-z\\xdf-\\xf6\\xf8-\\xff",HT="\\xac\\xb1\\xd7\\xf7",VT="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",GT="\\u2000-\\u206f",QT=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Np="A-Z\\xc0-\\xd6\\xd8-\\xde",qp="\\ufe0e\\ufe0f",Op=HT+VT+GT+QT,Hl="['\u2019]",KT="["+Ca+"]",Lp="["+Op+"]",ka="["+Ip+"]",Bp="\\d+",JT="["+Mp+"]",Up="["+Ap+"]",$p="[^"+Ca+Op+Bp+Mp+Ap+Np+"]",Vl="\\ud83c[\\udffb-\\udfff]",XT="(?:"+ka+"|"+Vl+")",Wp="[^"+Ca+"]",Gl="(?:\\ud83c[\\udde6-\\uddff]){2}",Ql="[\\ud800-\\udbff][\\udc00-\\udfff]",Zi="["+Np+"]",jp="\\u200d",zp="(?:"+Up+"|"+$p+")",YT="(?:"+Zi+"|"+$p+")",Hp="(?:"+Hl+"(?:d|ll|m|re|s|t|ve))?",Vp="(?:"+Hl+"(?:D|LL|M|RE|S|T|VE))?",Gp=XT+"?",Qp="["+qp+"]?",ZT="(?:"+jp+"(?:"+[Wp,Gl,Ql].join("|")+")"+Qp+Gp+")*",eR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",tR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Kp=Qp+Gp+ZT,nR="(?:"+[JT,Gl,Ql].join("|")+")"+Kp,rR="(?:"+[Wp+ka+"?",ka,Gl,Ql,KT].join("|")+")",iR=RegExp(Hl,"g"),oR=RegExp(ka,"g"),Kl=RegExp(Vl+"(?="+Vl+")|"+rR+Kp,"g"),sR=RegExp([Zi+"?"+Up+"+"+Hp+"(?="+[Lp,Zi,"$"].join("|")+")",YT+"+"+Vp+"(?="+[Lp,Zi+zp,"$"].join("|")+")",Zi+"?"+zp+"+"+Hp,Zi+"+"+Vp,tR,eR,Bp,nR].join("|"),"g"),aR=RegExp("["+jp+Ca+Ip+qp+"]"),cR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,uR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],lR=-1,ut={};ut[Cr]=ut[vn]=ut[C]=ut[H]=ut[Z]=ut[ie]=ut[Ue]=ut[Le]=ut[Ge]=!0,ut[Vn]=ut[ur]=ut[Gn]=ut[lr]=ut[_n]=ut[dr]=ut[wr]=ut[Sr]=ut[mt]=ut[fr]=ut[Bt]=ut[hr]=ut[xt]=ut[sn]=ut[jt]=!1;var tt={};tt[Vn]=tt[ur]=tt[Gn]=tt[_n]=tt[lr]=tt[dr]=tt[Cr]=tt[vn]=tt[C]=tt[H]=tt[Z]=tt[mt]=tt[fr]=tt[Bt]=tt[hr]=tt[xt]=tt[sn]=tt[Pr]=tt[ie]=tt[Ue]=tt[Le]=tt[Ge]=!0,tt[wr]=tt[Sr]=tt[jt]=!1;var dR={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},fR={"&":"&","<":"<",">":">",'"':""","'":"'"},hR={"&":"&","<":"<",">":">",""":'"',"'":"'"},gR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},pR=parseFloat,mR=parseInt,Jp=typeof global=="object"&&global&&global.Object===Object&&global,bR=typeof self=="object"&&self&&self.Object===Object&&self,qt=Jp||bR||Function("return this")(),Jl=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,ki=Jl&&typeof ea=="object"&&ea&&!ea.nodeType&&ea,Xp=ki&&ki.exports===Jl,Xl=Xp&&Jp.process,En=function(){try{var E=ki&&ki.require&&ki.require("util").types;return E||Xl&&Xl.binding&&Xl.binding("util")}catch{}}(),Yp=En&&En.isArrayBuffer,Zp=En&&En.isDate,em=En&&En.isMap,tm=En&&En.isRegExp,nm=En&&En.isSet,rm=En&&En.isTypedArray;function wn(E,W,$){switch($.length){case 0:return E.call(W);case 1:return E.call(W,$[0]);case 2:return E.call(W,$[0],$[1]);case 3:return E.call(W,$[0],$[1],$[2])}return E.apply(W,$)}function _R(E,W,$,oe){for(var ve=-1,ze=E==null?0:E.length;++ve-1}function Yl(E,W,$){for(var oe=-1,ve=E==null?0:E.length;++oe-1;);return $}function dm(E,W){for(var $=E.length;$--&&eo(W,E[$],0)>-1;);return $}function TR(E,W){for(var $=E.length,oe=0;$--;)E[$]===W&&++oe;return oe}var RR=nd(dR),DR=nd(fR);function FR(E){return"\\"+gR[E]}function ER(E,W){return E==null?t:E[W]}function to(E){return aR.test(E)}function IR(E){return cR.test(E)}function MR(E){for(var W,$=[];!(W=E.next()).done;)$.push(W.value);return $}function sd(E){var W=-1,$=Array(E.size);return E.forEach(function(oe,ve){$[++W]=[ve,oe]}),$}function fm(E,W){return function($){return E(W($))}}function Qr(E,W){for(var $=-1,oe=E.length,ve=0,ze=[];++$-1}function yD(r,o){var a=this.__data__,l=za(a,r);return l<0?(++this.size,a.push([r,o])):a[l][1]=o,this}kr.prototype.clear=mD,kr.prototype.delete=bD,kr.prototype.get=_D,kr.prototype.has=vD,kr.prototype.set=yD;function Tr(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function Nn(r,o,a,l,h,_){var S,T=o&m,M=o&y,V=o&x;if(a&&(S=h?a(r,l,h,_):a(r)),S!==t)return S;if(!bt(r))return r;var Q=Se(r);if(Q){if(S=P0(r),!T)return cn(r,S)}else{var J=Ht(r),ne=J==Sr||J==xr;if(ti(r))return Qm(r,T);if(J==Bt||J==Vn||ne&&!h){if(S=M||ne?{}:hb(r),!T)return M?h0(r,qD(S,r)):f0(r,Pm(S,r))}else{if(!tt[J])return h?r:{};S=C0(r,J,T)}}_||(_=new Jn);var ae=_.get(r);if(ae)return ae;_.set(r,S),Wb(r)?r.forEach(function(fe){S.add(Nn(fe,o,a,fe,r,_))}):Ub(r)&&r.forEach(function(fe,Me){S.set(Me,Nn(fe,o,a,Me,r,_))});var de=V?M?Id:Ed:M?ln:Ot,Re=Q?t:de(r);return In(Re||r,function(fe,Me){Re&&(Me=fe,fe=r[Me]),bs(S,Me,Nn(fe,o,a,Me,r,_))}),S}function OD(r){var o=Ot(r);return function(a){return Cm(a,r,o)}}function Cm(r,o,a){var l=a.length;if(r==null)return!l;for(r=Ye(r);l--;){var h=a[l],_=o[h],S=r[h];if(S===t&&!(h in r)||!_(S))return!1}return!0}function km(r,o,a){if(typeof r!="function")throw new Mn(s);return Ps(function(){r.apply(t,a)},o)}function _s(r,o,a,l){var h=-1,_=Ta,S=!0,T=r.length,M=[],V=o.length;if(!T)return M;a&&(o=gt(o,Sn(a))),l?(_=Yl,S=!1):o.length>=n&&(_=ds,S=!1,o=new Di(o));e:for(;++hh?0:h+a),l=l===t||l>h?h:Te(l),l<0&&(l+=h),l=a>l?0:zb(l);a0&&a(T)?o>1?Ut(T,o-1,a,l,h):Gr(h,T):l||(h[h.length]=T)}return h}var hd=eb(),Dm=eb(!0);function gr(r,o){return r&&hd(r,o,Ot)}function gd(r,o){return r&&Dm(r,o,Ot)}function Va(r,o){return Vr(o,function(a){return Ir(r[a])})}function Ei(r,o){o=Zr(o,r);for(var a=0,l=o.length;r!=null&&ao}function UD(r,o){return r!=null&&Ke.call(r,o)}function $D(r,o){return r!=null&&o in Ye(r)}function WD(r,o,a){return r>=zt(o,a)&&r=120&&Q.length>=120)?new Di(S&&Q):t}Q=r[0];var J=-1,ne=T[0];e:for(;++J-1;)T!==r&&Oa.call(T,M,1),Oa.call(r,M,1);return r}function Um(r,o){for(var a=r?o.length:0,l=a-1;a--;){var h=o[a];if(a==l||h!==_){var _=h;Er(h)?Oa.call(r,h,1):Pd(r,h)}}return r}function wd(r,o){return r+Ua(ym()*(o-r+1))}function t0(r,o,a,l){for(var h=-1,_=At(Ba((o-r)/(a||1)),0),S=$(_);_--;)S[l?_:++h]=r,r+=a;return S}function Sd(r,o){var a="";if(!r||o<1||o>ge)return a;do o%2&&(a+=r),o=Ua(o/2),o&&(r+=r);while(o);return a}function Ee(r,o){return Bd(mb(r,o,dn),r+"")}function n0(r){return xm(fo(r))}function r0(r,o){var a=fo(r);return rc(a,Fi(o,0,a.length))}function ws(r,o,a,l){if(!bt(r))return r;o=Zr(o,r);for(var h=-1,_=o.length,S=_-1,T=r;T!=null&&++h<_;){var M=mr(o[h]),V=a;if(M==="__proto__"||M==="constructor"||M==="prototype")return r;if(h!=S){var Q=T[M];V=l?l(Q,M,T):t,V===t&&(V=bt(Q)?Q:Er(o[h+1])?[]:{})}bs(T,M,V),T=T[M]}return r}var $m=$a?function(r,o){return $a.set(r,o),r}:dn,i0=La?function(r,o){return La(r,"toString",{configurable:!0,enumerable:!1,value:Kd(o),writable:!0})}:dn;function o0(r){return rc(fo(r))}function qn(r,o,a){var l=-1,h=r.length;o<0&&(o=-o>h?0:h+o),a=a>h?h:a,a<0&&(a+=h),h=o>a?0:a-o>>>0,o>>>=0;for(var _=$(h);++l>>1,S=r[_];S!==null&&!Pn(S)&&(a?S<=o:S=n){var V=o?null:b0(r);if(V)return Da(V);S=!1,h=ds,M=new Di}else M=o?[]:T;e:for(;++l<_;){var Q=r[l],J=o?o(Q):Q;if(Q=a||Q!==0?Q:0,S&&J===J){for(var ne=M.length;ne--;)if(M[ne]===J)continue e;o&&M.push(J),T.push(Q)}else h(M,J,a)||(M!==T&&M.push(J),T.push(Q))}return T}function Pd(r,o){return o=Zr(o,r),r=bb(r,o),r==null||delete r[mr(On(o))]}function zm(r,o,a,l){return ws(r,o,a(Ei(r,o)),l)}function Ka(r,o,a,l){for(var h=r.length,_=l?h:-1;(l?_--:++_=l?r:qn(r,o,a)}var Gm=QR||function(r){return qt.clearTimeout(r)};function Qm(r,o){if(o)return r.slice();var a=r.length,l=pm?pm(a):new r.constructor(a);return r.copy(l),l}function Rd(r){var o=new r.constructor(r.byteLength);return new Na(o).set(new Na(r)),o}function c0(r,o){var a=o?Rd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.byteLength)}function u0(r){var o=new r.constructor(r.source,an.exec(r));return o.lastIndex=r.lastIndex,o}function l0(r){return ms?Ye(ms.call(r)):{}}function Km(r,o){var a=o?Rd(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function Jm(r,o){if(r!==o){var a=r!==t,l=r===null,h=r===r,_=Pn(r),S=o!==t,T=o===null,M=o===o,V=Pn(o);if(!T&&!V&&!_&&r>o||_&&S&&M&&!T&&!V||l&&S&&M||!a&&M||!h)return 1;if(!l&&!_&&!V&&r=T)return M;var V=a[l];return M*(V=="desc"?-1:1)}}return r.index-o.index}function Xm(r,o,a,l){for(var h=-1,_=r.length,S=a.length,T=-1,M=o.length,V=At(_-S,0),Q=$(M+V),J=!l;++T1?a[h-1]:t,S=h>2?a[2]:t;for(_=r.length>3&&typeof _=="function"?(h--,_):t,S&&en(a[0],a[1],S)&&(_=h<3?t:_,h=1),o=Ye(o);++l-1?h[_?o[S]:S]:t}}function rb(r){return Fr(function(o){var a=o.length,l=a,h=An.prototype.thru;for(r&&o.reverse();l--;){var _=o[l];if(typeof _!="function")throw new Mn(s);if(h&&!S&&tc(_)=="wrapper")var S=new An([],!0)}for(l=S?l:a;++l1&&qe.reverse(),Q&&MT))return!1;var V=_.get(r),Q=_.get(o);if(V&&Q)return V==o&&Q==r;var J=-1,ne=!0,ae=a&N?new Di:t;for(_.set(r,o),_.set(o,r);++J1?"& ":"")+o[l],o=o.join(a>2?", ":" "),r.replace(v,`{ /* [wrapped with `+o+`] */ -`)}function T0(r){return Pe(r)||Ai(r)||!!(vm&&r&&r[vm])}function Er(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Yi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=xe)return arguments[0]}else o=0;return r.apply(t,arguments)}}function ic(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,Db(r,a)});function Fb(r){var o=b(r);return o.__chain__=!0,o}function LF(r,o){return o(r),r}function oc(r,o){return o(r)}var BF=Fr(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return hd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Er(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:oc,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function UF(){return Fb(this)}function $F(){return new An(this.value(),this.__chain__)}function WF(){this.__values__===t&&(this.__values__=zb(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function jF(){return this}function zF(r){for(var o,a=this;a instanceof za;){var l=xb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function HF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:oc,args:[$d],thisArg:t}),new An(o,this.__chain__)}return this.thru($d)}function VF(){return Vm(this.__wrapped__,this.__actions__)}var GF=Xa(function(r,o,a){Ke.call(r,a)?++r[a]:Rr(r,a,1)});function QF(r,o,a){var l=Pe(r)?om:LD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function KF(r,o){var a=Pe(r)?Vr:Dm;return a(r,le(o,3))}var JF=rb(Pb),XF=rb(Cb);function YF(r,o){return Ut(sc(r,o),1)}function ZF(r,o){return Ut(sc(r,o),De)}function eE(r,o,a){return a=a===t?1:Te(a),Ut(sc(r,o),a)}function Eb(r,o){var a=Pe(r)?In:Xr;return a(r,le(o,3))}function Ib(r,o){var a=Pe(r)?vR:Rm;return a(r,le(o,3))}var tE=Xa(function(r,o,a){Ke.call(r,a)?r[a].push(o):Rr(r,a,[o])});function nE(r,o,a,l){r=un(r)?r:fo(r),a=a&&!l?Te(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),dc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&eo(r,o,a)>-1}var rE=Ee(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Xr(r,function(S){_[++l]=h?wn(o,S,a):_s(S,o,a)}),_}),iE=Xa(function(r,o,a){Rr(r,a,o)});function sc(r,o){var a=Pe(r)?gt:Nm;return a(r,le(o,3))}function oE(r,o,a,l){return r==null?[]:(Pe(o)||(o=o==null?[]:[o]),a=l?t:a,Pe(a)||(a=a==null?[]:[a]),Bm(r,o,a))}var sE=Xa(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function aE(r,o,a){var l=Pe(r)?ed:um,h=arguments.length<3;return l(r,le(o,4),a,h,Xr)}function cE(r,o,a){var l=Pe(r)?yR:um,h=arguments.length<3;return l(r,le(o,4),a,h,Rm)}function uE(r,o){var a=Pe(r)?Vr:Dm;return a(r,uc(le(o,3)))}function lE(r){var o=Pe(r)?Pm:n0;return o(r)}function dE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=Te(o);var l=Pe(r)?MD:r0;return l(r,o)}function fE(r){var o=Pe(r)?AD:o0;return o(r)}function hE(r){if(r==null)return 0;if(un(r))return dc(r)?no(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:vd(r).length}function gE(r,o,a){var l=Pe(r)?td:s0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var pE=Ee(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),Bm(r,Ut(o,1),[])}),ac=KR||function(){return qt.Date.now()};function mE(r,o){if(typeof o!="function")throw new Mn(s);return r=Te(r),function(){if(--r<1)return o.apply(this,arguments)}}function Mb(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Dr(r,te,t,t,t,t,o)}function Ab(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=Te(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var jd=Ee(function(r,o,a){var l=A;if(a.length){var h=Qr(a,uo(jd));l|=P}return Dr(r,l,o,a,h)}),Nb=Ee(function(r,o,a){var l=A|L;if(a.length){var h=Qr(a,uo(Nb));l|=P}return Dr(o,l,r,a,h)});function qb(r,o,a){o=a?t:o;var l=Dr(r,K,t,t,t,t,t,o);return l.placeholder=qb.placeholder,l}function Ob(r,o,a){o=a?t:o;var l=Dr(r,F,t,t,t,t,t,o);return l.placeholder=Ob.placeholder,l}function Lb(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Ar=h;return l=h=t,V=Ct,S=r.apply(Ar,Yn),S}function de(Ct){return V=Ct,T=xs(Me,o),Q?ae(Ct):S}function Re(Ct){var Yn=Ct-M,Ar=Ct-V,r_=o-Yn;return J?zt(r_,_-Ar):r_}function fe(Ct){var Yn=Ct-M,Ar=Ct-V;return M===t||Yn>=o||Yn<0||J&&Ar>=_}function Me(){var Ct=ac();if(fe(Ct))return qe(Ct);T=xs(Me,Re(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&Qm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(ac())}function kn(){var Ct=ac(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return Qm(T),T=xs(Me,o),ae(M)}return T===t&&(T=xs(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var bE=Ee(function(r,o){return Tm(r,1,o)}),_E=Ee(function(r,o,a){return Tm(r,Ln(o)||0,a)});function vE(r){return Dr(r,Be)}function cc(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(cc.Cache||Tr),a}cc.Cache=Tr;function uc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function yE(r){return Ab(2,r)}var wE=a0(function(r,o){o=o.length==1&&Pe(o[0])?gt(o[0],Sn(le())):gt(Ut(o,1),Sn(le()));var a=o.length;return Ee(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),zd=Ee(function(r,o){var a=Qr(o,uo(zd));return Dr(r,P,t,o,a)}),Bb=Ee(function(r,o){var a=Qr(o,uo(Bb));return Dr(r,U,t,o,a)}),SE=Fr(function(r,o){return Dr(r,ve,t,t,t,o)});function xE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:Te(o),Ee(r,o)}function PE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(Te(o),0),Ee(function(a){var l=a[o],h=ei(a,0,o);return l&&Gr(h,l),wn(r,this,h)})}function CE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Lb(r,o,{leading:l,maxWait:o,trailing:h})}function kE(r){return Mb(r,1)}function TE(r,o){return zd(Rd(o),r)}function RE(){if(!arguments.length)return[];var r=arguments[0];return Pe(r)?r:[r]}function DE(r){return Nn(r,x)}function FE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function EE(r){return Nn(r,m|x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function ME(r,o){return o==null||km(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var AE=tc(md),NE=tc(function(r,o){return r>=o}),Ai=Im(function(){return arguments}())?Im:function(r){return yt(r)&&Ke.call(r,"callee")&&!_m.call(r,"callee")},Pe=$.isArray,qE=Zp?Sn(Zp):zD;function un(r){return r!=null&&lc(r.length)&&!Ir(r)}function Pt(r){return yt(r)&&un(r)}function OE(r){return r===!0||r===!1||yt(r)&&Zt(r)==lr}var ti=XR||tf,LE=em?Sn(em):HD;function BE(r){return yt(r)&&r.nodeType===1&&!Ps(r)}function UE(r){if(r==null)return!0;if(un(r)&&(Pe(r)||typeof r=="string"||typeof r.splice=="function"||ti(r)||lo(r)||Ai(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(Ss(r))return!vd(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function $E(r,o){return vs(r,o)}function WE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?vs(r,o,t,a):!!l}function Hd(r){if(!yt(r))return!1;var o=Zt(r);return o==wr||o==Qi||typeof r.message=="string"&&typeof r.name=="string"&&!Ps(r)}function jE(r){return typeof r=="number"&&ym(r)}function Ir(r){if(!bt(r))return!1;var o=Zt(r);return o==Sr||o==xr||o==xi||o==zr}function Ub(r){return typeof r=="number"&&r==Te(r)}function lc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function yt(r){return r!=null&&typeof r=="object"}var $b=tm?Sn(tm):GD;function zE(r,o){return r===o||_d(r,o,Nd(o))}function HE(r,o,a){return a=typeof a=="function"?a:t,_d(r,o,Nd(o),a)}function VE(r){return Wb(r)&&r!=+r}function GE(r){if(F0(r))throw new ye(i);return Mm(r)}function QE(r){return r===null}function KE(r){return r==null}function Wb(r){return typeof r=="number"||yt(r)&&Zt(r)==fr}function Ps(r){if(!yt(r)||Zt(r)!=Bt)return!1;var o=Oa(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Ma.call(a)==HR}var Vd=nm?Sn(nm):QD;function JE(r){return Ub(r)&&r>=-ge&&r<=ge}var jb=rm?Sn(rm):KD;function dc(r){return typeof r=="string"||!Pe(r)&&yt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||yt(r)&&Zt(r)==Pr}var lo=im?Sn(im):JD;function XE(r){return r===t}function YE(r){return yt(r)&&Ht(r)==jt}function ZE(r){return yt(r)&&Zt(r)==Ci}var eI=tc(yd),tI=tc(function(r,o){return r<=o});function zb(r){if(!r)return[];if(un(r))return dc(r)?Kn(r):cn(r);if(ds&&r[ds])return MR(r[ds]());var o=Ht(r),a=o==mt?ad:o==xt?Fa:fo;return a(r)}function Mr(r){if(!r)return r===0?r:0;if(r=Ln(r),r===De||r===-De){var o=r<0?-1:1;return o*pe}return r===r?r:0}function Te(r){var o=Mr(r),a=o%1;return o===o?a?o-a:o:0}function Hb(r){return r?Fi(Te(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=lm(r);var a=Qn.test(r);return a||Hr.test(r)?mR(r.slice(2),a?2:8):yn.test(r)?St:+r}function Vb(r){return pr(r,ln(r))}function nI(r){return r?Fi(Te(r),-ge,ge):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var rI=ao(function(r,o){if(Ss(o)||un(o)){pr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&ms(r,a,o[a])}),Gb=ao(function(r,o){pr(o,ln(o),r)}),fc=ao(function(r,o,a,l){pr(o,ln(o),r,l)}),iI=ao(function(r,o,a,l){pr(o,Ot(o),r,l)}),oI=Fr(hd);function sI(r,o){var a=so(r);return o==null?a:Cm(a,o)}var aI=Ee(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),pr(r,Md(r),a),l&&(a=Nn(a,m|y|x,_0));for(var h=o.length;h--;)Cd(a,o[h]);return a});function CI(r,o){return Kb(r,uc(le(o)))}var kI=Fr(function(r,o){return r==null?{}:ZD(r,o)});function Kb(r,o){if(r==null)return{};var a=gt(Md(r),function(l){return[l]});return o=le(o),Um(r,a,function(l,h){return o(l,h[0])})}function TI(r,o,a){o=Zr(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=wm();return zt(r+h*(o-r+pR("1e-"+((h+"").length-1))),o)}return Sd(r,o)}var LI=co(function(r,o,a){return o=o.toLowerCase(),r+(a?Yb(o):o)});function Yb(r){return Kd(Ve(r).toLowerCase())}function Zb(r){return r=Ve(r),r&&r.replace(Pa,RR).replace(oR,"")}function BI(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Fi(Te(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function UI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(ct,DR):r}function $I(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var WI=co(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),jI=co(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),zI=nb("toLowerCase");function HI(r,o,a){r=Ve(r),o=Te(o);var l=o?no(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return ec($a(h),a)+r+ec(Ua(h),a)}function VI(r,o,a){r=Ve(r),o=Te(o);var l=o?no(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Vd(o))&&(o=xn(o),!o&&to(r))?ei(Kn(r),0,a):r.split(o,a)):[]}var ZI=co(function(r,o,a){return r+(a?" ":"")+Kd(o)});function eM(r,o,a){return r=Ve(r),a=a==null?0:Fi(Te(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function tM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=fc({},o,l,ub);var h=fc({},o.imports,l.imports,ub),_=Ot(h),S=sd(h,_),T,M,V=0,Q=o.interpolate||Ca,J="__p += '",ne=cd((o.escape||Ca).source+"|"+Q.source+"|"+(Q===us?Xe:Ca).source+"|"+(o.evaluate||Ca).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++lR+"]")+` +`)}function T0(r){return Se(r)||Ai(r)||!!(_m&&r&&r[_m])}function Er(r,o){var a=typeof r;return o=o??ge,!!o&&(a=="number"||a!="symbol"&&Yi.test(r))&&r>-1&&r%1==0&&r0){if(++o>=we)return arguments[0]}else o=0;return r.apply(t,arguments)}}function rc(r,o){var a=-1,l=r.length,h=l-1;for(o=o===t?l:o;++a1?r[o-1]:t;return a=typeof a=="function"?(r.pop(),a):t,Rb(r,a)});function Db(r){var o=b(r);return o.__chain__=!0,o}function LF(r,o){return o(r),r}function ic(r,o){return o(r)}var BF=Fr(function(r){var o=r.length,a=o?r[0]:0,l=this.__wrapped__,h=function(_){return fd(_,r)};return o>1||this.__actions__.length||!(l instanceof Ae)||!Er(a)?this.thru(h):(l=l.slice(a,+a+(o?1:0)),l.__actions__.push({func:ic,args:[h],thisArg:t}),new An(l,this.__chain__).thru(function(_){return o&&!_.length&&_.push(t),_}))});function UF(){return Db(this)}function $F(){return new An(this.value(),this.__chain__)}function WF(){this.__values__===t&&(this.__values__=jb(this.value()));var r=this.__index__>=this.__values__.length,o=r?t:this.__values__[this.__index__++];return{done:r,value:o}}function jF(){return this}function zF(r){for(var o,a=this;a instanceof ja;){var l=Sb(a);l.__index__=0,l.__values__=t,o?h.__wrapped__=l:o=l;var h=l;a=a.__wrapped__}return h.__wrapped__=r,o}function HF(){var r=this.__wrapped__;if(r instanceof Ae){var o=r;return this.__actions__.length&&(o=new Ae(this)),o=o.reverse(),o.__actions__.push({func:ic,args:[Ud],thisArg:t}),new An(o,this.__chain__)}return this.thru(Ud)}function VF(){return Hm(this.__wrapped__,this.__actions__)}var GF=Ja(function(r,o,a){Ke.call(r,a)?++r[a]:Rr(r,a,1)});function QF(r,o,a){var l=Se(r)?im:LD;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}function KF(r,o){var a=Se(r)?Vr:Rm;return a(r,le(o,3))}var JF=nb(xb),XF=nb(Pb);function YF(r,o){return Ut(oc(r,o),1)}function ZF(r,o){return Ut(oc(r,o),De)}function eE(r,o,a){return a=a===t?1:Te(a),Ut(oc(r,o),a)}function Fb(r,o){var a=Se(r)?In:Xr;return a(r,le(o,3))}function Eb(r,o){var a=Se(r)?vR:Tm;return a(r,le(o,3))}var tE=Ja(function(r,o,a){Ke.call(r,a)?r[a].push(o):Rr(r,a,[o])});function nE(r,o,a,l){r=un(r)?r:fo(r),a=a&&!l?Te(a):0;var h=r.length;return a<0&&(a=At(h+a,0)),lc(r)?a<=h&&r.indexOf(o,a)>-1:!!h&&eo(r,o,a)>-1}var rE=Ee(function(r,o,a){var l=-1,h=typeof o=="function",_=un(r)?$(r.length):[];return Xr(r,function(S){_[++l]=h?wn(o,S,a):vs(S,o,a)}),_}),iE=Ja(function(r,o,a){Rr(r,a,o)});function oc(r,o){var a=Se(r)?gt:Am;return a(r,le(o,3))}function oE(r,o,a,l){return r==null?[]:(Se(o)||(o=o==null?[]:[o]),a=l?t:a,Se(a)||(a=a==null?[]:[a]),Lm(r,o,a))}var sE=Ja(function(r,o,a){r[a?0:1].push(o)},function(){return[[],[]]});function aE(r,o,a){var l=Se(r)?Zl:cm,h=arguments.length<3;return l(r,le(o,4),a,h,Xr)}function cE(r,o,a){var l=Se(r)?yR:cm,h=arguments.length<3;return l(r,le(o,4),a,h,Tm)}function uE(r,o){var a=Se(r)?Vr:Rm;return a(r,cc(le(o,3)))}function lE(r){var o=Se(r)?xm:n0;return o(r)}function dE(r,o,a){(a?en(r,o,a):o===t)?o=1:o=Te(o);var l=Se(r)?MD:r0;return l(r,o)}function fE(r){var o=Se(r)?AD:o0;return o(r)}function hE(r){if(r==null)return 0;if(un(r))return lc(r)?no(r):r.length;var o=Ht(r);return o==mt||o==xt?r.size:_d(r).length}function gE(r,o,a){var l=Se(r)?ed:s0;return a&&en(r,o,a)&&(o=t),l(r,le(o,3))}var pE=Ee(function(r,o){if(r==null)return[];var a=o.length;return a>1&&en(r,o[0],o[1])?o=[]:a>2&&en(o[0],o[1],o[2])&&(o=[o[0]]),Lm(r,Ut(o,1),[])}),sc=KR||function(){return qt.Date.now()};function mE(r,o){if(typeof o!="function")throw new Mn(s);return r=Te(r),function(){if(--r<1)return o.apply(this,arguments)}}function Ib(r,o,a){return o=a?t:o,o=r&&o==null?r.length:o,Dr(r,te,t,t,t,t,o)}function Mb(r,o){var a;if(typeof o!="function")throw new Mn(s);return r=Te(r),function(){return--r>0&&(a=o.apply(this,arguments)),r<=1&&(o=t),a}}var Wd=Ee(function(r,o,a){var l=A;if(a.length){var h=Qr(a,uo(Wd));l|=P}return Dr(r,l,o,a,h)}),Ab=Ee(function(r,o,a){var l=A|L;if(a.length){var h=Qr(a,uo(Ab));l|=P}return Dr(o,l,r,a,h)});function Nb(r,o,a){o=a?t:o;var l=Dr(r,K,t,t,t,t,t,o);return l.placeholder=Nb.placeholder,l}function qb(r,o,a){o=a?t:o;var l=Dr(r,F,t,t,t,t,t,o);return l.placeholder=qb.placeholder,l}function Ob(r,o,a){var l,h,_,S,T,M,V=0,Q=!1,J=!1,ne=!0;if(typeof r!="function")throw new Mn(s);o=Ln(o)||0,bt(a)&&(Q=!!a.leading,J="maxWait"in a,_=J?At(Ln(a.maxWait)||0,o):_,ne="trailing"in a?!!a.trailing:ne);function ae(Ct){var Yn=l,Ar=h;return l=h=t,V=Ct,S=r.apply(Ar,Yn),S}function de(Ct){return V=Ct,T=Ps(Me,o),Q?ae(Ct):S}function Re(Ct){var Yn=Ct-M,Ar=Ct-V,n_=o-Yn;return J?zt(n_,_-Ar):n_}function fe(Ct){var Yn=Ct-M,Ar=Ct-V;return M===t||Yn>=o||Yn<0||J&&Ar>=_}function Me(){var Ct=sc();if(fe(Ct))return qe(Ct);T=Ps(Me,Re(Ct))}function qe(Ct){return T=t,ne&&l?ae(Ct):(l=h=t,S)}function Cn(){T!==t&&Gm(T),V=0,l=M=h=T=t}function tn(){return T===t?S:qe(sc())}function kn(){var Ct=sc(),Yn=fe(Ct);if(l=arguments,h=this,M=Ct,Yn){if(T===t)return de(M);if(J)return Gm(T),T=Ps(Me,o),ae(M)}return T===t&&(T=Ps(Me,o)),S}return kn.cancel=Cn,kn.flush=tn,kn}var bE=Ee(function(r,o){return km(r,1,o)}),_E=Ee(function(r,o,a){return km(r,Ln(o)||0,a)});function vE(r){return Dr(r,Be)}function ac(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new Mn(s);var a=function(){var l=arguments,h=o?o.apply(this,l):l[0],_=a.cache;if(_.has(h))return _.get(h);var S=r.apply(this,l);return a.cache=_.set(h,S)||_,S};return a.cache=new(ac.Cache||Tr),a}ac.Cache=Tr;function cc(r){if(typeof r!="function")throw new Mn(s);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function yE(r){return Mb(2,r)}var wE=a0(function(r,o){o=o.length==1&&Se(o[0])?gt(o[0],Sn(le())):gt(Ut(o,1),Sn(le()));var a=o.length;return Ee(function(l){for(var h=-1,_=zt(l.length,a);++h<_;)l[h]=o[h].call(this,l[h]);return wn(r,this,l)})}),jd=Ee(function(r,o){var a=Qr(o,uo(jd));return Dr(r,P,t,o,a)}),Lb=Ee(function(r,o){var a=Qr(o,uo(Lb));return Dr(r,U,t,o,a)}),SE=Fr(function(r,o){return Dr(r,_e,t,t,t,o)});function xE(r,o){if(typeof r!="function")throw new Mn(s);return o=o===t?o:Te(o),Ee(r,o)}function PE(r,o){if(typeof r!="function")throw new Mn(s);return o=o==null?0:At(Te(o),0),Ee(function(a){var l=a[o],h=ei(a,0,o);return l&&Gr(h,l),wn(r,this,h)})}function CE(r,o,a){var l=!0,h=!0;if(typeof r!="function")throw new Mn(s);return bt(a)&&(l="leading"in a?!!a.leading:l,h="trailing"in a?!!a.trailing:h),Ob(r,o,{leading:l,maxWait:o,trailing:h})}function kE(r){return Ib(r,1)}function TE(r,o){return jd(Td(o),r)}function RE(){if(!arguments.length)return[];var r=arguments[0];return Se(r)?r:[r]}function DE(r){return Nn(r,x)}function FE(r,o){return o=typeof o=="function"?o:t,Nn(r,x,o)}function EE(r){return Nn(r,m|x)}function IE(r,o){return o=typeof o=="function"?o:t,Nn(r,m|x,o)}function ME(r,o){return o==null||Cm(r,o,Ot(o))}function Xn(r,o){return r===o||r!==r&&o!==o}var AE=ec(pd),NE=ec(function(r,o){return r>=o}),Ai=Em(function(){return arguments}())?Em:function(r){return yt(r)&&Ke.call(r,"callee")&&!bm.call(r,"callee")},Se=$.isArray,qE=Yp?Sn(Yp):zD;function un(r){return r!=null&&uc(r.length)&&!Ir(r)}function Pt(r){return yt(r)&&un(r)}function OE(r){return r===!0||r===!1||yt(r)&&Zt(r)==lr}var ti=XR||ef,LE=Zp?Sn(Zp):HD;function BE(r){return yt(r)&&r.nodeType===1&&!Cs(r)}function UE(r){if(r==null)return!0;if(un(r)&&(Se(r)||typeof r=="string"||typeof r.splice=="function"||ti(r)||lo(r)||Ai(r)))return!r.length;var o=Ht(r);if(o==mt||o==xt)return!r.size;if(xs(r))return!_d(r).length;for(var a in r)if(Ke.call(r,a))return!1;return!0}function $E(r,o){return ys(r,o)}function WE(r,o,a){a=typeof a=="function"?a:t;var l=a?a(r,o):t;return l===t?ys(r,o,t,a):!!l}function zd(r){if(!yt(r))return!1;var o=Zt(r);return o==wr||o==Qi||typeof r.message=="string"&&typeof r.name=="string"&&!Cs(r)}function jE(r){return typeof r=="number"&&vm(r)}function Ir(r){if(!bt(r))return!1;var o=Zt(r);return o==Sr||o==xr||o==xi||o==zr}function Bb(r){return typeof r=="number"&&r==Te(r)}function uc(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ge}function bt(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function yt(r){return r!=null&&typeof r=="object"}var Ub=em?Sn(em):GD;function zE(r,o){return r===o||bd(r,o,Ad(o))}function HE(r,o,a){return a=typeof a=="function"?a:t,bd(r,o,Ad(o),a)}function VE(r){return $b(r)&&r!=+r}function GE(r){if(F0(r))throw new ve(i);return Im(r)}function QE(r){return r===null}function KE(r){return r==null}function $b(r){return typeof r=="number"||yt(r)&&Zt(r)==fr}function Cs(r){if(!yt(r)||Zt(r)!=Bt)return!1;var o=qa(r);if(o===null)return!0;var a=Ke.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Ia.call(a)==HR}var Hd=tm?Sn(tm):QD;function JE(r){return Bb(r)&&r>=-ge&&r<=ge}var Wb=nm?Sn(nm):KD;function lc(r){return typeof r=="string"||!Se(r)&&yt(r)&&Zt(r)==sn}function Pn(r){return typeof r=="symbol"||yt(r)&&Zt(r)==Pr}var lo=rm?Sn(rm):JD;function XE(r){return r===t}function YE(r){return yt(r)&&Ht(r)==jt}function ZE(r){return yt(r)&&Zt(r)==Ci}var eI=ec(vd),tI=ec(function(r,o){return r<=o});function jb(r){if(!r)return[];if(un(r))return lc(r)?Kn(r):cn(r);if(fs&&r[fs])return MR(r[fs]());var o=Ht(r),a=o==mt?sd:o==xt?Da:fo;return a(r)}function Mr(r){if(!r)return r===0?r:0;if(r=Ln(r),r===De||r===-De){var o=r<0?-1:1;return o*pe}return r===r?r:0}function Te(r){var o=Mr(r),a=o%1;return o===o?a?o-a:o:0}function zb(r){return r?Fi(Te(r),0,We):0}function Ln(r){if(typeof r=="number")return r;if(Pn(r))return St;if(bt(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=bt(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=um(r);var a=Qn.test(r);return a||Hr.test(r)?mR(r.slice(2),a?2:8):yn.test(r)?St:+r}function Hb(r){return pr(r,ln(r))}function nI(r){return r?Fi(Te(r),-ge,ge):r===0?r:0}function Ve(r){return r==null?"":xn(r)}var rI=ao(function(r,o){if(xs(o)||un(o)){pr(o,Ot(o),r);return}for(var a in o)Ke.call(o,a)&&bs(r,a,o[a])}),Vb=ao(function(r,o){pr(o,ln(o),r)}),dc=ao(function(r,o,a,l){pr(o,ln(o),r,l)}),iI=ao(function(r,o,a,l){pr(o,Ot(o),r,l)}),oI=Fr(fd);function sI(r,o){var a=so(r);return o==null?a:Pm(a,o)}var aI=Ee(function(r,o){r=Ye(r);var a=-1,l=o.length,h=l>2?o[2]:t;for(h&&en(o[0],o[1],h)&&(l=1);++a1),_}),pr(r,Id(r),a),l&&(a=Nn(a,m|y|x,_0));for(var h=o.length;h--;)Pd(a,o[h]);return a});function CI(r,o){return Qb(r,cc(le(o)))}var kI=Fr(function(r,o){return r==null?{}:ZD(r,o)});function Qb(r,o){if(r==null)return{};var a=gt(Id(r),function(l){return[l]});return o=le(o),Bm(r,a,function(l,h){return o(l,h[0])})}function TI(r,o,a){o=Zr(o,r);var l=-1,h=o.length;for(h||(h=1,r=t);++lo){var l=r;r=o,o=l}if(a||r%1||o%1){var h=ym();return zt(r+h*(o-r+pR("1e-"+((h+"").length-1))),o)}return wd(r,o)}var LI=co(function(r,o,a){return o=o.toLowerCase(),r+(a?Xb(o):o)});function Xb(r){return Qd(Ve(r).toLowerCase())}function Yb(r){return r=Ve(r),r&&r.replace(xa,RR).replace(oR,"")}function BI(r,o,a){r=Ve(r),o=xn(o);var l=r.length;a=a===t?l:Fi(Te(a),0,l);var h=a;return a-=o.length,a>=0&&r.slice(a,h)==o}function UI(r){return r=Ve(r),r&&Yt.test(r)?r.replace(ct,DR):r}function $I(r){return r=Ve(r),r&&p.test(r)?r.replace(q,"\\$&"):r}var WI=co(function(r,o,a){return r+(a?"-":"")+o.toLowerCase()}),jI=co(function(r,o,a){return r+(a?" ":"")+o.toLowerCase()}),zI=tb("toLowerCase");function HI(r,o,a){r=Ve(r),o=Te(o);var l=o?no(r):0;if(!o||l>=o)return r;var h=(o-l)/2;return Za(Ua(h),a)+r+Za(Ba(h),a)}function VI(r,o,a){r=Ve(r),o=Te(o);var l=o?no(r):0;return o&&l>>0,a?(r=Ve(r),r&&(typeof o=="string"||o!=null&&!Hd(o))&&(o=xn(o),!o&&to(r))?ei(Kn(r),0,a):r.split(o,a)):[]}var ZI=co(function(r,o,a){return r+(a?" ":"")+Qd(o)});function eM(r,o,a){return r=Ve(r),a=a==null?0:Fi(Te(a),0,r.length),o=xn(o),r.slice(a,a+o.length)==o}function tM(r,o,a){var l=b.templateSettings;a&&en(r,o,a)&&(o=t),r=Ve(r),o=dc({},o,l,cb);var h=dc({},o.imports,l.imports,cb),_=Ot(h),S=od(h,_),T,M,V=0,Q=o.interpolate||Pa,J="__p += '",ne=ad((o.escape||Pa).source+"|"+Q.source+"|"+(Q===ls?Xe:Pa).source+"|"+(o.evaluate||Pa).source+"|$","g"),ae="//# sourceURL="+(Ke.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++lR+"]")+` `;r.replace(ne,function(fe,Me,qe,Cn,tn,kn){return qe||(qe=Cn),J+=r.slice(V,kn).replace($T,FR),Me&&(T=!0,J+=`' + __e(`+Me+`) + '`),tn&&(M=!0,J+=`'; @@ -52,40 +52,40 @@ __p += '`),qe&&(J+=`' + `;var de=Ke.call(o,"variable")&&o.variable;if(!de)J=`with (obj) { `+J+` } -`;else if(be.test(de))throw new ye(c);J=(M?J.replace(et,""):J).replace(Fe,"$1").replace(Qe,"$1;"),J="function("+(de||"obj")+`) { +`;else if(be.test(de))throw new ve(c);J=(M?J.replace(et,""):J).replace(Fe,"$1").replace(Qe,"$1;"),J="function("+(de||"obj")+`) { `+(de?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(T?", __e = _.escape":"")+(M?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+J+`return __p -}`;var Re=t_(function(){return ze(_,ae+"return "+J).apply(t,S)});if(Re.source=J,Hd(Re))throw Re;return Re}function nM(r){return Ve(r).toLowerCase()}function rM(r){return Ve(r).toUpperCase()}function iM(r,o,a){if(r=Ve(r),r&&(a||o===t))return lm(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=dm(l,h),S=fm(l,h)+1;return ei(l,_,S).join("")}function oM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,gm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=fm(l,Kn(o))+1;return ei(l,0,h).join("")}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=dm(l,Kn(o));return ei(l,h).join("")}function aM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Te(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(to(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-no(l);if(T<1)return l;var M=S?ei(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Vd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=cd(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function cM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,OR):r}var uM=co(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Kd=nb("toUpperCase");function e_(r,o,a){return r=Ve(r),o=a?t:o,o===t?IR(r)?UR(r):xR(r):r.match(o)||[]}var t_=Ee(function(r,o){try{return wn(r,t,o)}catch(a){return Hd(a)?a:new ye(a)}}),lM=Fr(function(r,o){return In(o,function(a){a=mr(a),Rr(r,a,jd(r[a],r))}),r});function dM(r){var o=r==null?0:r.length,a=le();return r=o?gt(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Ee(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=od(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Te(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},gr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||Pe(S),J=function(Me){var qe=h.apply(b,Gr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,Re=M&&!ae;if(!_&&Q){S=Re?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:oc,args:[J],thisArg:t}),new An(fe,ne)}return de&&Re?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Ea[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(Pe(_)?_:[],h)}return this[a](function(S){return o.apply(Pe(S)?S:[],h)})}}),gr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(oo,l)||(oo[l]=[]),oo[l].push({name:o,func:a})}}),oo[Ya(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=cD,Ae.prototype.reverse=uD,Ae.prototype.value=lD,b.prototype.at=BF,b.prototype.chain=UF,b.prototype.commit=$F,b.prototype.next=WF,b.prototype.plant=zF,b.prototype.reverse=HF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=VF,b.prototype.first=b.prototype.head,ds&&(b.prototype[ds]=jF),b},Kr=$R();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Kr,define(function(){return Kr})):ki?((ki.exports=Kr)._=Kr,Xl._=Kr):qt._=Kr}).call(Ho)});var Kk=I((f3,tj)=>{tj.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var pT=I((hG,gT)=>{"use strict";function sT(t){return Array.isArray(t)?t:[t]}var lT="",aT=" ",Jg="\\",gj=/^\s+$/,pj=/(?:[^\\]|^)\\$/,mj=/^\\!/,bj=/^\\#/,_j=/\r?\n/g,vj=/^\.*\/|^\.+$/,Xg="/",dT="node-ignore";typeof Symbol<"u"&&(dT=Symbol.for("node-ignore"));var cT=dT,yj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),wj=/([0-z])-([0-z])/g,fT=()=>!1,Sj=t=>t.replace(wj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:lT),xj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Pj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?aT:lT],[/\\\s/g,()=>aT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Jg],[/\\\\/g,()=>Jg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Jg?`\\[${n}${xj(i)}${s}`:s==="]"&&i.length%2===0?`[${Sj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],uT=Object.create(null),Cj=(t,e)=>{let n=uT[t];return n||(n=Pj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),uT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},ep=t=>typeof t=="string",kj=t=>t&&ep(t)&&!gj.test(t)&&!pj.test(t)&&t.indexOf("#")!==0,Tj=t=>t.split(_j),Yg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Rj=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(mj,"!").replace(bj,"#");let s=Cj(t,e);return new Yg(n,t,i,s)},Dj=(t,e)=>{throw new e(t)},Br=(t,e,n)=>ep(t)?t?Br.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),hT=t=>vj.test(t);Br.isNotRelative=hT;Br.convert=t=>t;var Zg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){yj(this,cT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[cT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(kj(e)){let n=Rj(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,sT(ep(e)?Tj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Br.convert(e);return Br(c,e,this._allowRelativePaths?fT:Dj),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Xg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Xg)+Xg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return sT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},hl=t=>new Zg(t),Fj=t=>Br(t&&Br.convert(t),t,fT);hl.isPathValid=Fj;hl.default=hl;gT.exports=hl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Br.convert=t;let e=/^[a-z]:\//i;Br.isNotRelative=n=>e.test(n)||hT(n)}});var Zj={};module.exports=eA(Zj);var UT=nt(require("os")),zl=nt(require("path"));var hc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=a_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,y=o_(i.text,!1,c);if(f-d===y.length)for(let D=0,N=y.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&s_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},Ni;(function(t){function e(s,c,u,d){return new hc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof hc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=rf(c.map(tA),(y,x)=>{let D=y.range.start.line-x.range.start.line;return D===0?y.range.start.character-x.range.start.character:D}),f=0,m=[];for(let y of d){let x=s.offsetAt(y.range.start);if(xf&&m.push(u.substring(f,x)),y.newText.length&&m.push(y.newText),f=s.offsetAt(y.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(Ni||(Ni={}));function rf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);rf(i,e),rf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function tA(t){let e=a_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Se=nt(FS());var ES=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function bq(t){return typeof t=="string"&&ES.test(t)}var ig=bq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function IS(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var MS=require("crypto"),Eu=new Uint8Array(256),Fu=Eu.length;function og(){return Fu>Eu.length-16&&((0,MS.randomFillSync)(Eu),Fu=0),Eu.slice(Fu,Fu+=16)}var AS=require("crypto"),sg={randomUUID:AS.randomUUID};function _q(t,e,n){if(sg.randomUUID&&!e&&!t)return sg.randomUUID();t=t||{};let i=t.random||(t.rng||og)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return IS(i)}var Us=_q;var Iu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var Mu=class extends Error{constructor(){super("No models available")}},gi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},vt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(vq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?yq.has(n.status):!1}};function vq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var yq=new Set([3,1]);function wq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function ke(t,e=!1){if(t instanceof Error){if(e){let n=wq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Qk=nt(Mk());var Gu=nt(require("fs")),Zs=nt(Fg()),qk=nt(require("os")),ea=nt(require("path")),VW=process.env.TEST_TMPDIR?ea.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||ea.default.join(qk.default.homedir(),".local","state"),Nk=ea.default.join(VW,"augment","augment-server.log"),Ys;function GW(){if(Ys)return Ys;let t=ea.default.dirname(Nk);Gu.default.existsSync(t)||Gu.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"warn").toLowerCase(),n;return["trace","debug","info","warn","error"].includes(e)?Zs.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "warn"`,Zs.default.setLevel("warn")),Zs.default.methodFactory=function(i){return function(s){let c=new Date().toISOString();Gu.default.appendFileSync(Nk,`${c} [${i.toUpperCase()}] ${s} -`)}},Ys=Zs.default.getLogger("server"),n&&Ys.warn(n),Ys}function _e(t){let e=GW();return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var na=nt(Vo()),Go=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,na.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: +}`;var Re=e_(function(){return ze(_,ae+"return "+J).apply(t,S)});if(Re.source=J,zd(Re))throw Re;return Re}function nM(r){return Ve(r).toLowerCase()}function rM(r){return Ve(r).toUpperCase()}function iM(r,o,a){if(r=Ve(r),r&&(a||o===t))return um(r);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=Kn(o),_=lm(l,h),S=dm(l,h)+1;return ei(l,_,S).join("")}function oM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.slice(0,hm(r)+1);if(!r||!(o=xn(o)))return r;var l=Kn(r),h=dm(l,Kn(o))+1;return ei(l,0,h).join("")}function sM(r,o,a){if(r=Ve(r),r&&(a||o===t))return r.replace(k,"");if(!r||!(o=xn(o)))return r;var l=Kn(r),h=lm(l,Kn(o));return ei(l,h).join("")}function aM(r,o){var a=Je,l=Dt;if(bt(o)){var h="separator"in o?o.separator:h;a="length"in o?Te(o.length):a,l="omission"in o?xn(o.omission):l}r=Ve(r);var _=r.length;if(to(r)){var S=Kn(r);_=S.length}if(a>=_)return r;var T=a-no(l);if(T<1)return l;var M=S?ei(S,0,T).join(""):r.slice(0,T);if(h===t)return M+l;if(S&&(T+=M.length-T),Hd(h)){if(r.slice(T).search(h)){var V,Q=M;for(h.global||(h=ad(h.source,Ve(an.exec(h))+"g")),h.lastIndex=0;V=h.exec(Q);)var J=V.index;M=M.slice(0,J===t?T:J)}}else if(r.indexOf(xn(h),T)!=T){var ne=M.lastIndexOf(h);ne>-1&&(M=M.slice(0,ne))}return M+l}function cM(r){return r=Ve(r),r&&Ft.test(r)?r.replace(Ne,OR):r}var uM=co(function(r,o,a){return r+(a?" ":"")+o.toUpperCase()}),Qd=tb("toUpperCase");function Zb(r,o,a){return r=Ve(r),o=a?t:o,o===t?IR(r)?UR(r):xR(r):r.match(o)||[]}var e_=Ee(function(r,o){try{return wn(r,t,o)}catch(a){return zd(a)?a:new ve(a)}}),lM=Fr(function(r,o){return In(o,function(a){a=mr(a),Rr(r,a,Wd(r[a],r))}),r});function dM(r){var o=r==null?0:r.length,a=le();return r=o?gt(r,function(l){if(typeof l[1]!="function")throw new Mn(s);return[a(l[0]),l[1]]}):[],Ee(function(l){for(var h=-1;++hge)return[];var a=We,l=zt(r,We);o=le(o),r-=We;for(var h=id(l,o);++a0||o<0)?new Ae(a):(r<0?a=a.takeRight(-r):r&&(a=a.drop(r)),o!==t&&(o=Te(o),a=o<0?a.dropRight(-o):a.take(o-r)),a)},Ae.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ae.prototype.toArray=function(){return this.take(We)},gr(Ae.prototype,function(r,o){var a=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),h=b[l?"take"+(o=="last"?"Right":""):o],_=l||/^find/.test(o);h&&(b.prototype[o]=function(){var S=this.__wrapped__,T=l?[1]:arguments,M=S instanceof Ae,V=T[0],Q=M||Se(S),J=function(Me){var qe=h.apply(b,Gr([Me],T));return l&&ne?qe[0]:qe};Q&&a&&typeof V=="function"&&V.length!=1&&(M=Q=!1);var ne=this.__chain__,ae=!!this.__actions__.length,de=_&&!ne,Re=M&&!ae;if(!_&&Q){S=Re?S:new Ae(this);var fe=r.apply(S,T);return fe.__actions__.push({func:ic,args:[J],thisArg:t}),new An(fe,ne)}return de&&Re?r.apply(this,T):(fe=this.thru(J),de?l?fe.value()[0]:fe.value():fe)})}),In(["pop","push","shift","sort","splice","unshift"],function(r){var o=Fa[r],a=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);b.prototype[r]=function(){var h=arguments;if(l&&!this.__chain__){var _=this.value();return o.apply(Se(_)?_:[],h)}return this[a](function(S){return o.apply(Se(S)?S:[],h)})}}),gr(Ae.prototype,function(r,o){var a=b[o];if(a){var l=a.name+"";Ke.call(oo,l)||(oo[l]=[]),oo[l].push({name:o,func:a})}}),oo[Xa(t,L).name]=[{name:"wrapper",func:t}],Ae.prototype.clone=cD,Ae.prototype.reverse=uD,Ae.prototype.value=lD,b.prototype.at=BF,b.prototype.chain=UF,b.prototype.commit=$F,b.prototype.next=WF,b.prototype.plant=zF,b.prototype.reverse=HF,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=VF,b.prototype.first=b.prototype.head,fs&&(b.prototype[fs]=jF),b},Kr=$R();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=Kr,define(function(){return Kr})):ki?((ki.exports=Kr)._=Kr,Jl._=Kr):qt._=Kr}).call(Vo)});var Kk=I((d3,ej)=>{ej.exports=[{name:"C",vscode_name:"c",type:"programming",extensions:[".c",".cats",".h",".idc",".w"]},{name:"C++",vscode_name:"cpp",type:"programming",extensions:[".cpp",".c++",".cc",".cp",".cxx",".h",".h++",".hh",".hpp",".hxx",".inc",".inl",".ipp",".tcc",".tpp"]},{name:"Go",vscode_name:"go",type:"programming",extensions:[".go"]},{name:"Java",vscode_name:"java",type:"programming",extensions:[".java"]},{name:"JavaScript",vscode_name:"javascript",type:"programming",extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".njs",".pac",".sjs",".ssjs",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session",".xsjs",".xsjslib"]},{name:"Python",vscode_name:"python",type:"programming",extensions:[".py",".bzl",".cgi",".fcgi",".gyp",".lmi",".pyde",".pyp",".pyt",".pyw",".rpy",".tac",".wsgi",".xpy"]}]});var pT=I((fG,gT)=>{"use strict";function sT(t){return Array.isArray(t)?t:[t]}var lT="",aT=" ",Kg="\\",hj=/^\s+$/,gj=/(?:[^\\]|^)\\$/,pj=/^\\!/,mj=/^\\#/,bj=/\r?\n/g,_j=/^\.*\/|^\.+$/,Jg="/",dT="node-ignore";typeof Symbol<"u"&&(dT=Symbol.for("node-ignore"));var cT=dT,vj=(t,e,n)=>Object.defineProperty(t,e,{value:n}),yj=/([0-z])-([0-z])/g,fT=()=>!1,wj=t=>t.replace(yj,(e,n,i)=>n.charCodeAt(0)<=i.charCodeAt(0)?e:lT),Sj=t=>{let{length:e}=t;return t.slice(0,e-e%2)},xj=[[/\\?\s+$/,t=>t.indexOf("\\")===0?aT:lT],[/\\\s/g,()=>aT],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6{let i=n.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Kg],[/\\\\/g,()=>Kg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,i,s)=>e===Kg?`\\[${n}${Sj(i)}${s}`:s==="]"&&i.length%2===0?`[${wj(n)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],uT=Object.create(null),Pj=(t,e)=>{let n=uT[t];return n||(n=xj.reduce((i,s)=>i.replace(s[0],s[1].bind(t)),t),uT[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Zg=t=>typeof t=="string",Cj=t=>t&&Zg(t)&&!hj.test(t)&&!gj.test(t)&&t.indexOf("#")!==0,kj=t=>t.split(bj),Xg=class{constructor(e,n,i,s){this.origin=e,this.pattern=n,this.negative=i,this.regex=s}},Tj=(t,e)=>{let n=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(pj,"!").replace(mj,"#");let s=Pj(t,e);return new Xg(n,t,i,s)},Rj=(t,e)=>{throw new e(t)},Br=(t,e,n)=>Zg(t)?t?Br.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),hT=t=>_j.test(t);Br.isNotRelative=hT;Br.convert=t=>t;var Yg=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:i=!1}={}){vj(this,cT,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[cT]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Cj(e)){let n=Tj(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,sT(Zg(e)?kj(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let i=!1,s=!1;return this._rules.forEach(c=>{let{negative:u}=c;if(s===u&&i!==s||u&&!i&&!s&&!n)return;c.regex.test(e)&&(i=!u,s=u)}),{ignored:i,unignored:s}}_test(e,n,i,s){let c=e&&Br.convert(e);return Br(c,e,this._allowRelativePaths?fT:Rj),this._t(c,n,i,s)}_t(e,n,i,s){if(e in n)return n[e];if(s||(s=e.split(Jg)),s.pop(),!s.length)return n[e]=this._testOne(e,i);let c=this._t(s.join(Jg)+Jg,n,i,s);if(c.ignored)return n[e]=c;let u=this._testOne(e,i);return n[e]={ignored:u.ignored,unignored:c.unignored||u.unignored}}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return sT(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},fl=t=>new Yg(t),Dj=t=>Br(t&&Br.convert(t),t,fT);fl.isPathValid=Dj;fl.default=fl;gT.exports=fl;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");Br.convert=t;let e=/^[a-z]:\//i;Br.isNotRelative=n=>e.test(n)||hT(n)}});var Yj={};module.exports=eA(Yj);var UT=nt(require("os")),jl=nt(require("path"));var fc=class t{constructor(e,n,i,s){this._uri=e,this._languageId=n,this._version=i,this._content=s,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){for(let i of e)if(t.isIncremental(i)){let s=s_(i.range),c=this.offsetAt(s.start),u=this.offsetAt(s.end);this._content=this._content.substring(0,c)+i.text+this._content.substring(u,this._content.length);let d=Math.max(s.start.line,0),f=Math.max(s.end.line,0),m=this._lineOffsets,y=i_(i.text,!1,c);if(f-d===y.length)for(let D=0,N=y.length;De?s=u:i=u+1}let c=i-1;return e=this.ensureBeforeEOL(e,n[c]),{line:c,character:e-n[c]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line];if(e.character<=0)return i;let s=e.line+1n&&o_(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},Ni;(function(t){function e(s,c,u,d){return new fc(s,c,u,d)}t.create=e;function n(s,c,u){if(s instanceof fc)return s.update(c,u),s;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function i(s,c){let u=s.getText(),d=nf(c.map(tA),(y,x)=>{let D=y.range.start.line-x.range.start.line;return D===0?y.range.start.character-x.range.start.character:D}),f=0,m=[];for(let y of d){let x=s.offsetAt(y.range.start);if(xf&&m.push(u.substring(f,x)),y.newText.length&&m.push(y.newText),f=s.offsetAt(y.range.end)}return m.push(u.substr(f)),m.join("")}t.applyEdits=i})(Ni||(Ni={}));function nf(t,e){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),s=t.slice(n);nf(i,e),nf(s,e);let c=0,u=0,d=0;for(;cn.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function tA(t){let e=s_(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var ke=nt(DS());var FS=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function bq(t){return typeof t=="string"&&FS.test(t)}var rg=bq;var Wt=[];for(let t=0;t<256;++t)Wt.push((t+256).toString(16).slice(1));function ES(t,e=0){return(Wt[t[e+0]]+Wt[t[e+1]]+Wt[t[e+2]]+Wt[t[e+3]]+"-"+Wt[t[e+4]]+Wt[t[e+5]]+"-"+Wt[t[e+6]]+Wt[t[e+7]]+"-"+Wt[t[e+8]]+Wt[t[e+9]]+"-"+Wt[t[e+10]]+Wt[t[e+11]]+Wt[t[e+12]]+Wt[t[e+13]]+Wt[t[e+14]]+Wt[t[e+15]]).toLowerCase()}var IS=require("crypto"),Fu=new Uint8Array(256),Du=Fu.length;function ig(){return Du>Fu.length-16&&((0,IS.randomFillSync)(Fu),Du=0),Fu.slice(Du,Du+=16)}var MS=require("crypto"),og={randomUUID:MS.randomUUID};function _q(t,e,n){if(og.randomUUID&&!e&&!t)return og.randomUUID();t=t||{};let i=t.random||(t.rng||ig)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){n=n||0;for(let s=0;s<16;++s)e[n+s]=i[s];return e}return ES(i)}var $s=_q;var Eu=class extends Error{constructor(n){super(`Configured model "${n}" is not available`);this.modelName=n}};var Iu=class extends Error{constructor(){super("No models available")}},gi=class extends Error{constructor(e="Skipping inline completion."){super(e)}},vt=class t extends Error{constructor(n,i){super(i);this.status=n}static transientIssue(n){return new t(3,n)}static fromResponse(n){return new t(vq(n.status),`HTTP error: ${n.status} ${n.statusText}`)}static isAPIErrorWithStatus(n,i){return n instanceof t?n.status===i:!1}static isRetriableAPIError(n){return n instanceof t?yq.has(n.status):!1}};function vq(t){switch(t){case 200:return 0;case 400:return 5;case 401:return 7;case 403:return 8;case 404:return 4;case 413:return 10;case 429:return 6;case 499:return 1;case 504:return 9}return t>=500&&t<600?3:2}var yq=new Set([3,1]);function wq(t){return t.cause instanceof String?String(t.cause):t.cause instanceof Object?JSON.stringify(t.cause):""}function Ce(t,e=!1){if(t instanceof Error){if(e){let n=wq(t);if(n!=="")return`${t.message} (due to ${n})`}return t.message}return String(t)}var Qk=nt(Ik());var Vu=nt(require("fs")),Ho=nt(Dg()),Nk=nt(require("os")),Zs=nt(require("path")),VW=process.env.TEST_TMPDIR?Zs.default.join(process.env.TEST_TMPDIR,"state"):process.env.XDG_STATE_HOME||Zs.default.join(Nk.default.homedir(),".local","state"),Ak=Zs.default.join(VW,"augment","augment-server.log");function qk(){let t=Zs.default.dirname(Ak);Vu.default.existsSync(t)||Vu.default.mkdirSync(t,{recursive:!0});let e=(process.env.AUGMENT_LOG_LEVEL||"warn").toLowerCase(),n;["trace","debug","info","warn","error"].includes(e)?Ho.default.setLevel(e):(n=`Environment variable AUGMENT_LOG_LEVEL set to invalid log level "${e}". Defaulting to "warn"`,Ho.default.setLevel("warn")),Ho.default.methodFactory=function(s,c,u){return function(d){let f=new Date().toISOString(),m=typeof u=="string"?` '${u}'`:"";Vu.default.appendFileSync(Ak,`${f} [${s.toUpperCase()}]${m} ${d} +`)}};let i=Ho.default.getLogger("server");return n&&i.warn(n),i}function Pe(t){let e=Ho.default.getLogger(t);return{...e,verbose:(n,...i)=>e.debug(n,...i)}}var ta=nt(Go()),Qo=class{constructor(e,n){this.name=e;this._logger=n}_isSet=!1;_value;get value(){return this._value}update(e){return this._isSet&&(0,ta.isEqual)(e,this._value)?!1:(this._isSet?this._logger.info(`${this.name} changed: ${this.diff(this.value,e).map(n=>` - ${n}`).join(` -`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,na.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,na.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var Wk=require("events"),Dn=nt(require("fs")),jk=nt(Fg()),zk=nt(require("os")),Xu=nt(require("path")),Hk=nt(rg());var Ok;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var y,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else y===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",y=!1,x=arguments.length-1;x>=-1&&!y;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,y=D.charCodeAt(0)===47)}return m=u(m,!y),y?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,y=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&y&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=y:f+="/"+y)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var y=1;yL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(y+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(y+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=y+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),y=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?y?"/":".":y&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var y,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(y=f.length-1;y>=0;--y){var B=f.charCodeAt(y);if(B===47){if(!N){x=y+1;break}}else L===-1&&(N=!1,L=y+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=y):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(y=f.length-1;y>=0;--y)if(f.charCodeAt(y)===47){if(!N){x=y+1;break}}else D===-1&&(N=!1,D=y+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,y=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){y=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===y+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,y){var x=y.dir||y.root,D=y.base||(y.name||"")+(y.ext||"");return x?x===y.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var y,x=f.charCodeAt(0),D=x===47;D?(m.root="/",y=1):y=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=y;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>xe}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",y="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,De,ge,pe=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,pe),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==y&&(We=y+We):We=y}return We}(this.scheme,re||m),this.query=De||m,this.fragment=ge||m,f(this,pe))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:De,query:ge,fragment:pe}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),De===void 0?De=this.path:De===null&&(De=m),ge===void 0?ge=this.query:ge===null&&(ge=m),pe===void 0?pe=this.fragment:pe===null&&(pe=m),se===this.scheme&&re===this.authority&&De===this.path&&ge===this.query&&pe===this.fragment?this:new A(se,re,De,ge,pe)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,ve(re[4]||m),ve(re[5]||m),ve(re[7]||m),ve(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,y)),z[0]===y&&z[1]===y){let re=z.indexOf(y,2);re===-1?(se=z.substring(2),z=y):(se=z.substring(2,re),z=z.substring(re)||y)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,De=-1;for(let ge=0;ge=97&&pe<=122||pe>=65&&pe<=90||pe>=48&&pe<=57||pe===45||pe===46||pe===95||pe===126||z&&pe===47||se&&pe===91||se&&pe===93||se&&pe===58)De!==-1&&(re+=encodeURIComponent(X.substring(De,ge)),De=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[pe];St!==void 0?(De!==-1&&(re+=encodeURIComponent(X.substring(De,ge)),De=-1),re+=St):De===-1&&(De=ge)}}return De!==-1&&(re+=encodeURIComponent(X.substring(De))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:De,authority:ge,path:pe,query:St,fragment:We}=X;if(De&&(re+=De,re+=":"),(ge||De==="file")&&(re+=y,re+=y),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(pe){if(pe.length>=3&&pe.charCodeAt(0)===47&&pe.charCodeAt(2)===58){let je=pe.charCodeAt(1);je>=65&&je<=90&&(pe=`/${String.fromCharCode(je+32)}:${pe.substr(3)}`)}else if(pe.length>=2&&pe.charCodeAt(1)===58){let je=pe.charCodeAt(0);je>=65&&je<=90&&(pe=`${String.fromCharCode(je+32)}:${pe.substr(2)}`)}re+=se(pe,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ve(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var xe;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,De=!1;re[0]!==Dt&&(re=Dt+re,De=!0);let ge=Je.resolve(re,...se);return De&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(xe||(xe={}))})(),Ok=i})();var{URI:ot,Utils:Tt}=Ok;var Qu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=Ni.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Hi=nt(require("fs")),nn=nt(require("fs/promises"));function QW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function KW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Lk(t){return{size:t.size,type:KW(t),mtime:Math.floor(t.mtimeMs)}}async function Bk(t){let e=await nn.lstat(t);return Lk(e)}function Ku(t){try{return Vi(t).type==="File"}catch{return!1}}async function Uk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Vi(t){let e=Hi.lstatSync(t);return Lk(e)}function ra(t){let e=[],n=Hi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,QW(i)]);return e}async function ia(t){await nn.mkdir(t,{recursive:!0})}async function Eg(t,e){await nn.rename(t,e)}async function $k(t){return await nn.readFile(t)}async function Qo(t){return await nn.readFile(t,{encoding:"utf8"})}async function Ju(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Ig(t){return Hi.readFileSync(t,{encoding:"utf8"})}var Ko=class extends Error{constructor(){super("Operation cancelled")}};var Or=class t{_position;constructor(e,n){this._position=Hk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},bi=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Or(e,n),this.end=new Or(i,s);else if(e instanceof Or&&n instanceof Or)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},_i=class{constructor(e){this.document=e}get uri(){return ot.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Or(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new Wk.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Lr=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},JW=new ue,Ng=new ue,qg=new ue,Og=new ue,XW=new ue,YW=new ue;var Mg=new ue,Vk=[];function Gk(t){Vk=t.map((e,n)=>({uri:ot.parse(e.uri),name:e.name,index:n}))}function ZW(){let t=(0,jk.getLogger)("WorkspaceConfig"),e=process.env.TEST_TMPDIR?Xu.join(process.env.TEST_TMPDIR,"config"):process.env.XDG_CONFIG_HOME||Xu.join(zk.default.homedir(),".config"),n=process.env.AUGMENT_CONFIG_PATH||Xu.join(e,"augment","user_config.json");try{if(t.debug(`Checking for user config at ${n}`),!Ku(n))return t.debug(`File doesn't exist: ${n}`),{};let i=Ig(n),s=JSON.parse(i);return t.info(`Found user config: ${JSON.stringify(s)}`),s}catch(i){t.error(`Failed to read augment config at ${n}: ${ke(i)}`)}return{}}var Rt={onDidChangeConfiguration:JW.event,getConfiguration:t=>t==="augment"?ZW():{},onDidOpenTextDocument:Ng.event,onDidChangeTextDocument:qg.event,onDidCloseTextDocument:Og.event,onWillRenameFiles:XW.event,onDidChangeWorkspaceFolders:YW.event,documents:new Qu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new _i(t))},get workspaceFolders(){return Vk}},Ag=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Mg.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Mg.fire({key:e}))}onDidChange=Mg.event},Yu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Ig(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},Zu=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Ag(e),this.globalState=new Yu(this.globalStorageUri),this.workspaceState=new Yu(this.storageUri)}};var ej=128*1024,Bg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:ej,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Lg=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Qk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},el=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=_e("FeatureFlagManager");_flags;constructor(e){this._flags=new Go("feature flags",this._logger),this._flags.update(e?.initialFlags??Bg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Lg(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Lr().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var nj=Kk(),Ug=[],rj=new Set;for(let t of nj){Ug.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)rj.add(e)}function oa(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function vi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Jo(t,e,n){oa(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function $g(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function sa(t,e=""){let n=[];if(typeof t!="object"||t===null)return Jk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${sa(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(sa(s,e+" "))):n.push(`${e}${i}: ${Jk(s)}`);return n.join(` -`)}function Jk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var ij={initialMS:100,mult:2,maxMS:3e4};function aa(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function Wg(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=ij){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>vt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await Wg(i)}}async function jg(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function tl(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var zg=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},nl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new Hg;_logger=_e("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return Us()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,y=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,y=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Gi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await jg(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${ke(U,!0)}`),vt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?vt.fromResponse(B):(B.status===401&&y&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),vt.fromResponse(B).status===10&&this._logger.debug(`object size is ${sa(s)} `),vt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new zg(ke(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let y;try{y=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Gi}if(!y.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await jg(this._fetchFunction(y.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${y.toString()} failed: ${ke(P,!0)}`),P.stack&&this._logger.error(P.stack),vt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?vt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${y.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${y.toString()} response ${L.status}: ${L.statusText}`),vt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?sa(s):0} `),vt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:ve,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(ve,{stream:!0});te.includes(` +`)}`):this._logger.info(`${this.name} changed from to ${this._formatValue(e)}`),this._value=(0,ta.cloneDeep)(e),this._isSet=!0,!0)}diff(e,n,i=[]){if((0,ta.isEqual)(n,e))return[];if(!this.isObject(n)||!this.isObject(e))return[`${this._formatValue(e)} to ${this._formatValue(n)}`];let s=new Set([...Object.keys(e||{}),...Object.keys(n||{})]),c=[];for(let u of s){let d=n?n[u]:void 0,f=e?e[u]:void 0;!this.isObject(d)||!this.isObject(f)?d!==f&&c.push(`${i.concat(u).join(" > ")}: ${this._formatValue(f)} to ${this._formatValue(d)}`):c.push(...this.diff(f,d,i.concat(u)))}return c}isObject(e){return typeof e=="object"&&e!==null}toString(){return this._isSet?this._formatValue(this.value):""}_formatValue(e){return e===void 0?"undefined":JSON.stringify(e)}};var Wk=require("events"),Dn=nt(require("fs")),jk=nt(Dg()),zk=nt(require("os")),Ju=nt(require("path")),Hk=nt(ng());var Ok;(()=>{"use strict";var t={470:s=>{function c(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function u(f,m){for(var y,x="",D=0,N=-1,A=0,L=0;L<=f.length;++L){if(L2){var B=x.lastIndexOf("/");if(B!==x.length-1){B===-1?(x="",D=0):D=(x=x.slice(0,B)).length-1-x.lastIndexOf("/"),N=L,A=0;continue}}else if(x.length===2||x.length===1){x="",D=0,N=L,A=0;continue}}m&&(x.length>0?x+="/..":x="..",D=2)}else x.length>0?x+="/"+f.slice(N+1,L):x=f.slice(N+1,L),D=L-N-1;N=L,A=0}else y===46&&A!==-1?++A:A=-1}return x}var d={resolve:function(){for(var f,m="",y=!1,x=arguments.length-1;x>=-1&&!y;x--){var D;x>=0?D=arguments[x]:(f===void 0&&(f=process.cwd()),D=f),c(D),D.length!==0&&(m=D+"/"+m,y=D.charCodeAt(0)===47)}return m=u(m,!y),y?m.length>0?"/"+m:"/":m.length>0?m:"."},normalize:function(f){if(c(f),f.length===0)return".";var m=f.charCodeAt(0)===47,y=f.charCodeAt(f.length-1)===47;return(f=u(f,!m)).length!==0||m||(f="."),f.length>0&&y&&(f+="/"),m?"/"+f:f},isAbsolute:function(f){return c(f),f.length>0&&f.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var f,m=0;m0&&(f===void 0?f=y:f+="/"+y)}return f===void 0?".":d.normalize(f)},relative:function(f,m){if(c(f),c(m),f===m||(f=d.resolve(f))===(m=d.resolve(m)))return"";for(var y=1;yL){if(m.charCodeAt(N+K)===47)return m.slice(N+K+1);if(K===0)return m.slice(N+K)}else D>L&&(f.charCodeAt(y+K)===47?B=K:K===0&&(B=0));break}var F=f.charCodeAt(y+K);if(F!==m.charCodeAt(N+K))break;F===47&&(B=K)}var P="";for(K=y+B+1;K<=x;++K)K!==x&&f.charCodeAt(K)!==47||(P.length===0?P+="..":P+="/..");return P.length>0?P+m.slice(N+B):(N+=B,m.charCodeAt(N)===47&&++N,m.slice(N))},_makeLong:function(f){return f},dirname:function(f){if(c(f),f.length===0)return".";for(var m=f.charCodeAt(0),y=m===47,x=-1,D=!0,N=f.length-1;N>=1;--N)if((m=f.charCodeAt(N))===47){if(!D){x=N;break}}else D=!1;return x===-1?y?"/":".":y&&x===1?"//":f.slice(0,x)},basename:function(f,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');c(f);var y,x=0,D=-1,N=!0;if(m!==void 0&&m.length>0&&m.length<=f.length){if(m.length===f.length&&m===f)return"";var A=m.length-1,L=-1;for(y=f.length-1;y>=0;--y){var B=f.charCodeAt(y);if(B===47){if(!N){x=y+1;break}}else L===-1&&(N=!1,L=y+1),A>=0&&(B===m.charCodeAt(A)?--A==-1&&(D=y):(A=-1,D=L))}return x===D?D=L:D===-1&&(D=f.length),f.slice(x,D)}for(y=f.length-1;y>=0;--y)if(f.charCodeAt(y)===47){if(!N){x=y+1;break}}else D===-1&&(N=!1,D=y+1);return D===-1?"":f.slice(x,D)},extname:function(f){c(f);for(var m=-1,y=0,x=-1,D=!0,N=0,A=f.length-1;A>=0;--A){var L=f.charCodeAt(A);if(L!==47)x===-1&&(D=!1,x=A+1),L===46?m===-1?m=A:N!==1&&(N=1):m!==-1&&(N=-1);else if(!D){y=A+1;break}}return m===-1||x===-1||N===0||N===1&&m===x-1&&m===y+1?"":f.slice(m,x)},format:function(f){if(f===null||typeof f!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof f);return function(m,y){var x=y.dir||y.root,D=y.base||(y.name||"")+(y.ext||"");return x?x===y.root?x+D:x+"/"+D:D}(0,f)},parse:function(f){c(f);var m={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return m;var y,x=f.charCodeAt(0),D=x===47;D?(m.root="/",y=1):y=0;for(var N=-1,A=0,L=-1,B=!0,K=f.length-1,F=0;K>=y;--K)if((x=f.charCodeAt(K))!==47)L===-1&&(B=!1,L=K+1),x===46?N===-1?N=K:F!==1&&(F=1):N!==-1&&(F=-1);else if(!B){A=K+1;break}return N===-1||L===-1||F===0||F===1&&N===L-1&&N===A+1?L!==-1&&(m.base=m.name=A===0&&D?f.slice(1,L):f.slice(A,L)):(A===0&&D?(m.name=f.slice(1,N),m.base=f.slice(1,L)):(m.name=f.slice(A,N),m.base=f.slice(A,L)),m.ext=f.slice(N,L)),A>0?m.dir=f.slice(0,A-1):D&&(m.dir="/"),m},sep:"/",delimiter:":",win32:null,posix:null};d.posix=d,s.exports=d}},e={};function n(s){var c=e[s];if(c!==void 0)return c.exports;var u=e[s]={exports:{}};return t[s](u,u.exports,n),u.exports}n.d=(s,c)=>{for(var u in c)n.o(c,u)&&!n.o(s,u)&&Object.defineProperty(s,u,{enumerable:!0,get:c[u]})},n.o=(s,c)=>Object.prototype.hasOwnProperty.call(s,c),n.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;n.r(i),n.d(i,{URI:()=>D,Utils:()=>we}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);let c=/^\w[\w\d+.-]*$/,u=/^\//,d=/^\/\//;function f(X,z){if(!X.scheme&&z)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${X.authority}", path: "${X.path}", query: "${X.query}", fragment: "${X.fragment}"}`);if(X.scheme&&!c.test(X.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(X.path){if(X.authority){if(!u.test(X.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(d.test(X.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let m="",y="/",x=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class D{static isUri(z){return z instanceof D||!!z&&typeof z.authority=="string"&&typeof z.fragment=="string"&&typeof z.path=="string"&&typeof z.query=="string"&&typeof z.scheme=="string"&&typeof z.fsPath=="string"&&typeof z.with=="function"&&typeof z.toString=="function"}scheme;authority;path;query;fragment;constructor(z,se,re,De,ge,pe=!1){typeof z=="object"?(this.scheme=z.scheme||m,this.authority=z.authority||m,this.path=z.path||m,this.query=z.query||m,this.fragment=z.fragment||m):(this.scheme=function(St,We){return St||We?St:"file"}(z,pe),this.authority=se||m,this.path=function(St,We){switch(St){case"https":case"http":case"file":We?We[0]!==y&&(We=y+We):We=y}return We}(this.scheme,re||m),this.query=De||m,this.fragment=ge||m,f(this,pe))}get fsPath(){return F(this,!1)}with(z){if(!z)return this;let{scheme:se,authority:re,path:De,query:ge,fragment:pe}=z;return se===void 0?se=this.scheme:se===null&&(se=m),re===void 0?re=this.authority:re===null&&(re=m),De===void 0?De=this.path:De===null&&(De=m),ge===void 0?ge=this.query:ge===null&&(ge=m),pe===void 0?pe=this.fragment:pe===null&&(pe=m),se===this.scheme&&re===this.authority&&De===this.path&&ge===this.query&&pe===this.fragment?this:new A(se,re,De,ge,pe)}static parse(z,se=!1){let re=x.exec(z);return re?new A(re[2]||m,_e(re[4]||m),_e(re[5]||m),_e(re[7]||m),_e(re[9]||m),se):new A(m,m,m,m,m)}static file(z){let se=m;if(s&&(z=z.replace(/\\/g,y)),z[0]===y&&z[1]===y){let re=z.indexOf(y,2);re===-1?(se=z.substring(2),z=y):(se=z.substring(2,re),z=z.substring(re)||y)}return new A("file",se,z,m,m)}static from(z){let se=new A(z.scheme,z.authority,z.path,z.query,z.fragment);return f(se,!0),se}toString(z=!1){return P(this,z)}toJSON(){return this}static revive(z){if(z){if(z instanceof D)return z;{let se=new A(z);return se._formatted=z.external,se._fsPath=z._sep===N?z.fsPath:null,se}}return z}}let N=s?1:void 0;class A extends D{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=F(this,!1)),this._fsPath}toString(z=!1){return z?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){let z={$mid:1};return this._fsPath&&(z.fsPath=this._fsPath,z._sep=N),this._formatted&&(z.external=this._formatted),this.path&&(z.path=this.path),this.scheme&&(z.scheme=this.scheme),this.authority&&(z.authority=this.authority),this.query&&(z.query=this.query),this.fragment&&(z.fragment=this.fragment),z}}let L={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function B(X,z,se){let re,De=-1;for(let ge=0;ge=97&&pe<=122||pe>=65&&pe<=90||pe>=48&&pe<=57||pe===45||pe===46||pe===95||pe===126||z&&pe===47||se&&pe===91||se&&pe===93||se&&pe===58)De!==-1&&(re+=encodeURIComponent(X.substring(De,ge)),De=-1),re!==void 0&&(re+=X.charAt(ge));else{re===void 0&&(re=X.substr(0,ge));let St=L[pe];St!==void 0?(De!==-1&&(re+=encodeURIComponent(X.substring(De,ge)),De=-1),re+=St):De===-1&&(De=ge)}}return De!==-1&&(re+=encodeURIComponent(X.substring(De))),re!==void 0?re:X}function K(X){let z;for(let se=0;se1&&X.scheme==="file"?`//${X.authority}${X.path}`:X.path.charCodeAt(0)===47&&(X.path.charCodeAt(1)>=65&&X.path.charCodeAt(1)<=90||X.path.charCodeAt(1)>=97&&X.path.charCodeAt(1)<=122)&&X.path.charCodeAt(2)===58?z?X.path.substr(1):X.path[1].toLowerCase()+X.path.substr(2):X.path,s&&(se=se.replace(/\//g,"\\")),se}function P(X,z){let se=z?K:B,re="",{scheme:De,authority:ge,path:pe,query:St,fragment:We}=X;if(De&&(re+=De,re+=":"),(ge||De==="file")&&(re+=y,re+=y),ge){let je=ge.indexOf("@");if(je!==-1){let bn=ge.substr(0,je);ge=ge.substr(je+1),je=bn.lastIndexOf(":"),je===-1?re+=se(bn,!1,!1):(re+=se(bn.substr(0,je),!1,!1),re+=":",re+=se(bn.substr(je+1),!1,!0)),re+="@"}ge=ge.toLowerCase(),je=ge.lastIndexOf(":"),je===-1?re+=se(ge,!1,!0):(re+=se(ge.substr(0,je),!1,!0),re+=ge.substr(je))}if(pe){if(pe.length>=3&&pe.charCodeAt(0)===47&&pe.charCodeAt(2)===58){let je=pe.charCodeAt(1);je>=65&&je<=90&&(pe=`/${String.fromCharCode(je+32)}:${pe.substr(3)}`)}else if(pe.length>=2&&pe.charCodeAt(1)===58){let je=pe.charCodeAt(0);je>=65&&je<=90&&(pe=`${String.fromCharCode(je+32)}:${pe.substr(2)}`)}re+=se(pe,!0,!1)}return St&&(re+="?",re+=se(St,!1,!1)),We&&(re+="#",re+=z?We:B(We,!1,!1)),re}function U(X){try{return decodeURIComponent(X)}catch{return X.length>3?X.substr(0,3)+U(X.substr(3)):X}}let te=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function _e(X){return X.match(te)?X.replace(te,z=>U(z)):X}var Be=n(470);let Je=Be.posix||Be,Dt="/";var we;(function(X){X.joinPath=function(z,...se){return z.with({path:Je.join(z.path,...se)})},X.resolvePath=function(z,...se){let re=z.path,De=!1;re[0]!==Dt&&(re=Dt+re,De=!0);let ge=Je.resolve(re,...se);return De&&ge[0]===Dt&&!z.authority&&(ge=ge.substring(1)),z.with({path:ge})},X.dirname=function(z){if(z.path.length===0||z.path===Dt)return z;let se=Je.dirname(z.path);return se.length===1&&se.charCodeAt(0)===46&&(se=""),z.with({path:se})},X.basename=function(z){return Je.basename(z.path)},X.extname=function(z){return Je.extname(z.path)}})(we||(we={}))})(),Ok=i})();var{URI:ot,Utils:Tt}=Ok;var Gu=class{documents=new Map;add(e){this.documents.set(e.uri.toString(),e)}remove(e){this.documents.delete(e)}get(e){return this.documents.get(e)}has(e){return this.documents.has(e)}clear(){this.documents.clear()}getAllDocuments(){return Array.from(this.documents.values())}getDocumentVersion(e){return this.documents.get(e)?.version}updateDocument(e,n){let i=this.documents.get(e);if(!i)return;let s=Ni.update(i,n.contentChanges,n.textDocument.version);this.documents.set(e,s)}};var Hi=nt(require("fs")),nn=nt(require("fs/promises"));function GW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function QW(t){return t.isFile()?"File":t.isDirectory()?"Directory":"Other"}function Lk(t){return{size:t.size,type:QW(t),mtime:Math.floor(t.mtimeMs)}}async function Bk(t){let e=await nn.lstat(t);return Lk(e)}function Qu(t){try{return Vi(t).type==="File"}catch{return!1}}async function Uk(t){try{return(await nn.stat(t)).isDirectory()}catch{return!1}}function Vi(t){let e=Hi.lstatSync(t);return Lk(e)}function na(t){let e=[],n=Hi.readdirSync(t,{withFileTypes:!0});for(let i of n)e.push([i.name,GW(i)]);return e}async function ra(t){await nn.mkdir(t,{recursive:!0})}async function Fg(t,e){await nn.rename(t,e)}async function $k(t){return await nn.readFile(t)}async function Ko(t){return await nn.readFile(t,{encoding:"utf8"})}async function Ku(t,e){return await nn.writeFile(t,e,{encoding:"utf8"})}function Eg(t){return Hi.readFileSync(t,{encoding:"utf8"})}var Jo=class extends Error{constructor(){super("Operation cancelled")}};var Or=class t{_position;constructor(e,n){this._position=Hk.Position.create(e,n)}get line(){return this._position.line}get character(){return this._position.character}translate(e,n){return e=e??0,n=n??0,new t(this.line+e,this.character+n)}},bi=class{start;end;constructor(e,n,i,s){if(typeof e=="number"&&typeof n=="number"&&typeof i=="number"&&typeof s=="number")this.start=new Or(e,n),this.end=new Or(i,s);else if(e instanceof Or&&n instanceof Or)this.start=e,this.end=n;else throw new Error("Invalid arguments for Range constructor")}},_i=class{constructor(e){this.document=e}get uri(){return ot.parse(this.document.uri)}get languageId(){return this.document.languageId}get version(){return this.document.version}positionAt(e){let n=this.document.positionAt(e);return new Or(n.line,n.character)}offsetAt(e){return this.document.offsetAt(e)}getText(e){return this.document.getText(e)}},rr=class{dispose;constructor(e){this.dispose=()=>e()}},ue=class{nodeEventEmitter;constructor(){this.nodeEventEmitter=new Wk.EventEmitter,this.event=(e,n,i)=>{let s=n?e.bind(n):e;this.nodeEventEmitter.on("event",s);let c=new rr(()=>{this.nodeEventEmitter.off("event",s)});return Array.isArray(i)&&i.push(c),c}}event;fire(e){this.nodeEventEmitter.emit("event",e)}dispose(){this.nodeEventEmitter.removeAllListeners("event")}};var Lr=class{token;tokenEvent;constructor(){this.tokenEvent=new ue,this.token={isCancellationRequested:!1,onCancellationRequested:this.tokenEvent.event}}cancel(){this.token.isCancellationRequested=!0,this.tokenEvent.fire()}dispose(){this.tokenEvent.dispose()}},KW=new ue,Ag=new ue,Ng=new ue,qg=new ue,JW=new ue,XW=new ue;var Ig=new ue,Vk=[];function Gk(t){Vk=t.map((e,n)=>({uri:ot.parse(e.uri),name:e.name,index:n}))}function YW(){let t=(0,jk.getLogger)("WorkspaceConfig"),e=process.env.TEST_TMPDIR?Ju.join(process.env.TEST_TMPDIR,"config"):process.env.XDG_CONFIG_HOME||Ju.join(zk.default.homedir(),".config"),n=process.env.AUGMENT_CONFIG_PATH||Ju.join(e,"augment","user_config.json");try{if(t.debug(`Checking for user config at ${n}`),!Qu(n))return t.debug(`File doesn't exist: ${n}`),{};let i=Eg(n),s=JSON.parse(i);return t.info(`Found user config: ${JSON.stringify(s)}`),s}catch(i){t.error(`Failed to read augment config at ${n}: ${Ce(i)}`)}return{}}var Rt={onDidChangeConfiguration:KW.event,getConfiguration:t=>t==="augment"?YW():{},onDidOpenTextDocument:Ag.event,onDidChangeTextDocument:Ng.event,onDidCloseTextDocument:qg.event,onWillRenameFiles:JW.event,onDidChangeWorkspaceFolders:XW.event,documents:new Gu,get textDocuments(){return this.documents.getAllDocuments().map(t=>new _i(t))},get workspaceFolders(){return Vk}},Mg=class{secretsPath;constructor(e){Dn.existsSync(e.fsPath)||Dn.mkdirSync(e.fsPath,{recursive:!0}),this.secretsPath=Tt.joinPath(e,"secrets.json").fsPath,Dn.existsSync(this.secretsPath)||Dn.writeFileSync(this.secretsPath,"{}",{mode:384})}async readSecrets(){try{let e=await Dn.promises.readFile(this.secretsPath,{encoding:"utf8"});return JSON.parse(e)}catch{return{}}}async writeSecrets(e){await Dn.promises.writeFile(this.secretsPath,JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}async get(e){return(await this.readSecrets())[e]}async store(e,n){let i=await this.readSecrets();i[e]=n,await this.writeSecrets(i),Ig.fire({key:e})}async delete(e){let n=await this.readSecrets();e in n&&(delete n[e],await this.writeSecrets(n),Ig.fire({key:e}))}onDidChange=Ig.event},Xu=class{inMemoryState=new Map;statePath;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.statePath=Tt.joinPath(e,"state.json").fsPath;try{let n=Eg(this.statePath),i=JSON.parse(n);this.inMemoryState=new Map(i)}catch{return}}get(e){return this.inMemoryState.get(e)}async update(e,n){this.inMemoryState.set(e,n);let i=JSON.stringify(Array.from(this.inMemoryState.entries()));await Dn.promises.writeFile(this.statePath,i,{encoding:"utf8",mode:420})}},Yu=class{globalState;workspaceState;storagePath;storageUri;globalStoragePath;globalStorageUri;secrets;constructor(e){Dn.mkdirSync(e.fsPath,{recursive:!0,mode:493}),this.storageUri=Tt.joinPath(e,"workspaceStorage"),this.storagePath=this.storageUri.fsPath,this.globalStorageUri=Tt.joinPath(e,"globalStorage"),this.globalStoragePath=this.globalStorageUri.fsPath,this.secrets=new Mg(e),this.globalState=new Xu(this.globalStorageUri),this.workspaceState=new Xu(this.storageUri)}};var ZW=128*1024,Lg={gitDiff:!1,gitDiffPollingFrequencyMSec:0,additionalChatModels:"",smallSyncThreshold:15,bigSyncThreshold:1e3,enableWorkspaceManagerUi:!1,enableInstructions:!1,enableSmartPaste:!1,enableSmartPasteMinVersion:"",enableViewTextDocument:!1,bypassLanguageFilter:!1,enableHindsight:!1,maxUploadSizeBytes:ZW,vscodeNextEditMinVersion:"",vscodeNextEditUx1MaxVersion:"",vscodeNextEditUx2MaxVersion:"",vscodeFlywheelMinVersion:"",vscodeExternalSourcesInChatMinVersion:"",vscodeShareMinVersion:"",maxTrackableFileCount:25e4,maxTrackableFileCountWithoutPermission:15e4,minUploadedPercentageWithoutPermission:90,vscodeSourcesMinVersion:"",vscodeChatHintDecorationMinVersion:"",nextEditDebounceMs:400,enableCompletionFileEditEvents:!1,vscodeEnableCpuProfile:!1,verifyFolderIsSourceRepo:!1,refuseToSyncHomeDirectories:!1,enableFileLimitsForSyncingPermission:!1,enableChatMermaidDiagrams:!1,enableSummaryTitles:!1,vscodeNewThreadsMenuMinVersion:"",vscodeEditableHistoryMinVersion:"",vscodeEnableChatMermaidDiagramsMinVersion:"",userGuidelinesLengthLimit:2e3,workspaceGuidelinesLengthLimit:2e3,enableGuidelines:!1,useCheckpointManagerContextMinVersion:"",validateCheckpointManagerContext:!1,vscodeDesignSystemRichTextEditorMinVersion:"",vscodeChatWithToolsMinVersion:"",vscodeAgentModeMinVersion:""},Og=class{constructor(e,n,i){this._watchedFlags=n;this._callback=i;this._currentFlags=(0,Qk.default)(e)}_disposed=!1;_currentFlags;get disposed(){return this._disposed}trigger(e){if(this._disposed)return;let n=[];for(let i of this._watchedFlags)e[i]!==this._currentFlags[i]&&n.push(i);n.length>0&&this._callback({previousFlags:this._currentFlags,newFlags:e,changedFlags:n})}dispose(){this._disposed=!0}},Zu=class{_subscriptions=[];_refreshTimer;_disposed=!1;_logger=Pe("FeatureFlagManager");_flags;constructor(e){this._flags=new Qo("feature flags",this._logger),this._flags.update(e?.initialFlags??Lg),this._setupRefreshTimer(e)}get currentFlags(){if(this._disposed)throw Error("FeatureFlagManager has been disposed");return this._flags.value}update(e){if(this._disposed)throw Error("FeatureFlagManager has been disposed");this._flags.update(e),this._subscriptions=this._subscriptions.filter(n=>!n.disposed);for(let n of this._subscriptions)n.trigger(e)}subscribe(e,n){if(this._disposed)throw Error("FeatureFlagManager has been disposed");let i=new Og(this._flags.value,e,n);return this._subscriptions.push(i),i}_setupRefreshTimer(e){if(!e?.fetcher||!e?.refreshIntervalMSec)return;this._cleanupRefreshTimer();let n=new Lr().token,i=e.fetcher,s=e.refreshIntervalMSec,c=async()=>{let u=await i(n);u?this.update(u):n.isCancellationRequested&&this._cleanupRefreshTimer()};this._refreshTimer=setInterval(()=>void c(),s)}_cleanupRefreshTimer(){clearInterval(this._refreshTimer),this._refreshTimer=void 0}dispose(){this._disposed||(this._subscriptions.forEach(e=>e.dispose()),this._subscriptions=[],this._cleanupRefreshTimer(),this._disposed=!0)}};var tj=Kk(),Bg=[],nj=new Set;for(let t of tj){Bg.push({name:t.name,vscodeName:t.vscodeName,extensions:t.extensions});for(let e of t.extensions)nj.add(e)}function ia(t,e,n){if(!Array.isArray(n))throw new Error(`Value of ${t}.${e} is not Array`)}function vi(t,e,n){let i=typeof n;if(i!=="number")throw new Error(`Value of ${t}.${e} has unexpected type. Expected number, received ${i}`);return n}function rn(t,e,n){let i=typeof n;if(i!=="string")throw new Error(`Value of ${t}.${e} has unexpected type. Expected string, received ${i}`);return n}function Xo(t,e,n){ia(t,e,n);let i=[];for(let s of n)i.push(rn(t,e,s));return i}function Ug(t,e,n,i=!1){if(n===null)return i;let s=typeof n;if(s!=="boolean")throw new Error(`Value of ${t}.${e} has unexpected type. Expected boolean, received ${s}`);return n}function oa(t,e=""){let n=[];if(typeof t!="object"||t===null)return Jk(t);for(let[i,s]of Object.entries(t))if(Array.isArray(s)){n.push(`${e}${i}: (array) ${s.length} (array length) ${JSON.stringify(s).length} (char length)`);let c=20;s.slice(0,c).forEach((u,d)=>{n.push(`${e} [${d}]: ${oa(u,e+" ")}`)}),s.length>c&&n.push(`${e} ${s.length-c} more items...`)}else typeof s=="object"&&s!==null?(n.push(`${e}${i}: (object) ${Object.keys(s).length} (object size) ${JSON.stringify(s).length} (char length)`),n.push(oa(s,e+" "))):n.push(`${e}${i}: ${Jk(s)}`);return n.join(` +`)}function Jk(t){return typeof t=="string"?`${t.length} (string length)`:typeof t=="boolean"||t===null||typeof t=="number"?"1":"N/A"}var rj={initialMS:100,mult:2,maxMS:3e4};function sa(t){let e;return new Promise(n=>{e=t(i=>{e.dispose(),n(i)})})}function $g(t){return t===0?Promise.resolve():new Promise(e=>{setTimeout(e,t)})}async function Fn(t,e,n=rj){let i=0,s=n.maxTotalMs!==void 0?Date.now():void 0,c=n.canRetry?n.canRetry:u=>vt.isRetriableAPIError(u);for(let u=0;;u++)try{let d=await t();return u>0&&e.info(`Operation succeeded after ${u} transient failures`),d}catch(d){if(!c(d))throw d;let f=u+1;if(n.maxTries!==void 0&&f>=n.maxTries||(i===0?i=n.initialMS:i=Math.min(i*n.mult,n.maxMS),e.info(`Operation failed with error ${d}, retrying in ${i} ms; retries = ${u}`),n.maxTotalMs!==void 0&&s!==void 0&&Date.now()-s+i>n.maxTotalMs))throw d;await $g(i)}}async function Wg(t,e){let n=new Promise((i,s)=>{setTimeout(()=>{s(new Error("Execution aborted due to timeout."))},e)});return await Promise.race([t,n])}function el(t){return{checkpoint_id:t.checkpointId,added_blobs:t.addedBlobs.sort(),deleted_blobs:t.deletedBlobs.sort()}}var jg=class extends Error{constructor(e,n){super(`Conversion failure: ${e}. Response = ${n}`)}},tl=class t{constructor(e,n,i,s,c){this._configListener=e;this._auth=n;this.sessionId=i;this._userAgent=s;this._fetchFunction=c}static defaultRequestTimeoutMs=3e4;_sequenceId=new zg;_logger=Pe("AugmentExtension");getSessionId(){return this.sessionId}createRequestId(){return $s()}async callApi(e,n,i,s,c,u,d,f){let m=n.apiToken,y=!1;if(this._auth.useOAuth){let U=await this._auth.getSession();U&&(m=U.accessToken,y=!0,u||(u=U.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let x;try{x=new URL(i,u)}catch(U){throw this._logger.error("Augment API URL is invalid:",U),new Gi}if(!x.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let D=JSON.stringify(s,(U,te)=>te===void 0?null:te),N=d??t.defaultRequestTimeoutMs,A=AbortSignal.timeout(N),L="POST",B,K,F;try{let U={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${this.sessionId}`,"x-api-version":"2"};m&&(U.Authorization=`Bearer ${m}`),K=Date.now(),B=await Wg(this._fetchFunction(x.toString(),{method:L,headers:U,body:D,signal:A}),N),F=Date.now()}catch(U){throw U instanceof Error?(this._logger.error(`API request ${e} to ${x.toString()} failed: ${Ce(U,!0)}`),vt.transientIssue(U.message)):(this._logger.debug(`API request ${e} to ${x.toString()} failed`),U)}if(f&&(f.rpcStart=K,f.rpcEnd=F),!B.ok)throw B.status===499?vt.fromResponse(B):(B.status===401&&y&&this._auth.removeSession(),B.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${x.toString()} failed: ${await B.text()}`),this._logger.error(`API request ${e} to ${x.toString()} response ${B.status}: ${B.statusText}`),vt.fromResponse(B).status===10&&this._logger.debug(`object size is ${oa(s)} `),vt.fromResponse(B));let P;try{if(B.headers.get("content-length")==="0")return;P=await B.json()}catch(U){throw this._logger.error(`API request ${e} to ${x.toString()} failed to convert response to json: ${U.message}`),U}try{return c?c(P):P}catch(U){throw new jg(Ce(U),JSON.stringify(P))}}async callApiStream(e,n,i,s,c=m=>m,u,d,f){let m=n.apiToken;if(this._auth.useOAuth){let P=await this._auth.getSession();P&&(m=P.accessToken,u||(u=P.tenantURL))}else u||(u=n.completionURL);if(!u)throw new Error("Please configure Augment API URL");let y;try{y=new URL(i,u)}catch(P){throw this._logger.error("Augment API URL is invalid:",P),new Gi}if(!y.protocol.startsWith("http"))throw new Error("Augment API URL must start with 'http://' or 'https://'");let x=JSON.stringify(s,(P,U)=>U===void 0?null:U),D=d??t.defaultRequestTimeoutMs,N=AbortSignal.timeout(D),A="POST",L;try{let P={"Content-Type":"application/json","User-Agent":this._userAgent,"x-request-id":`${e}`,"x-request-session-id":`${f??this.sessionId}`};m&&(P.Authorization=`Bearer ${m}`),L=await Wg(this._fetchFunction(y.toString(),{method:A,headers:P,body:x,signal:N}),D)}catch(P){throw P instanceof Error?(this._logger.error(`API request ${e} to ${y.toString()} failed: ${Ce(P,!0)}`),P.stack&&this._logger.error(P.stack),vt.transientIssue(P.message)):P}if(!L.ok)throw L.status===499?vt.fromResponse(L):(L.status===401&&this._auth.removeSession(),L.status===400&&n.enableDebugFeatures&&this._logger.error(`API request ${e} to ${y.toString()} failed: ${await L.text()}`),this._logger.error(`API request ${e} to ${y.toString()} response ${L.status}: ${L.statusText}`),vt.fromResponse(L).status===10&&this._logger.debug(`object size is ${s?oa(s):0} `),vt.fromResponse(L));let B=L.body.getReader(),K=this._logger;async function*F(P){let U=new TextDecoder,te="";for(;;){let{value:_e,done:Be}=await P.read(new Uint8Array);if(Be)return;for(te+=U.decode(_e,{stream:!0});te.includes(` `);){let Je=te.indexOf(` -`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let xe=JSON.parse(Dt);yield c(xe)}catch(xe){K.error(`JSON parse failed for ${Dt}: ${ke(xe)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Jo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Jo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:$g("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,y,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:tl(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(y??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:tl(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},y=>this.toMemorizeResult(y),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!vt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Jo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Jo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Jo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:$g("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:vi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:vi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:vi("BackChatResultNode","id",d.id),type:vi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,y,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:y,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,y,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:y,suffix:D,message:n,chat_history:i,lang:A,blobs:tl(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?vi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:vi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:vi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);oa("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);oa("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=Bg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version),e.feature_flags.vscode_agent_mode_min_version!==void 0&&(s.vscodeAgentModeMinVersion=e.feature_flags.vscode_agent_mode_min_version)}let c=[];if(e.languages===void 0)c=Ug;else{oa("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Gi=class extends Error{constructor(){super("The completion URL setting is invalid")}},Hg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},st=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var oj={Augment:null},sj="augment-vim-extension",rl=class t extends st{_config;_configChanged=new ue;_configMonitor;_logger=_e("AugmentConfigListener");constructor(){super(),this._configMonitor=new Go("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||oj,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||sj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model},integrations:{...e.advanced.integrations}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:ft(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:ft(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:ft(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:aj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:ft(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:ft(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:ft(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:ft(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:ft(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:ft(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:ft(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:ft(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:ft(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:ft(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:ft(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:ft(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:ft(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:ft(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:ft(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:ft(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:ft(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:ft(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:ft(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:ft(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:ft(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:ft(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model},integrations:{...e.advanced?.integrations}}}}};function ft(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function aj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Yk=nt(Vo());var ca="augment.sessions",Xk=["email"],il=class extends st{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===ca&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(ca,JSON.stringify({accessToken:n,tenantURL:i,scopes:Xk}))}async getSession(){let n=await this._context.secrets.get(ca);if(n){let i=JSON.parse(n);if((0,Yk.isEqual)(i.scopes,Xk))return i}return null}async removeSession(){await this._context.secrets.get(ca)&&await this._context.secrets.delete(ca)}};var ua=require("crypto"),Gg=require("url");var ol="augment.oauth-state",cj=process.env.TEST_HOSTNAME??".augmentcode.com",uj=10,sl=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=ot.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=_e("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Vg((0,ua.randomBytes)(32)),n=Vg(lj(Buffer.from(e))),i=Vg((0,ua.randomBytes)(8)),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(ol,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(ol);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Zk(t,e){return(...n)=>{let i=performance.now(),s=dj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function fj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function eT(t){return t.map(e=>fj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var cl=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} +`),Dt=te.substring(0,Je);te=te.substring(Je+1);try{let we=JSON.parse(Dt);yield c(we)}catch(we){K.error(`JSON parse failed for ${Dt}: ${Ce(we)}`)}}}}return F(B)}_toCompletionItem(e){if(typeof e.text!="string")throw new Error(`Completion item text is not a string: ${JSON.stringify(e)}`);if(e.skipped_suffix!==void 0&&typeof e.skipped_suffix!="string")throw new Error(`Completion item skipped suffix is not a string: ${JSON.stringify(e)}`);if(e.suffix_replacement_text!==void 0&&typeof e.suffix_replacement_text!="string")throw new Error(`Completion item suffix replacement text is not a string: ${JSON.stringify(e)}`);return{text:e.text,suffixReplacementText:e.suffix_replacement_text??"",skippedSuffix:e.skipped_suffix??"",filterScore:e.filter_score??void 0}}_extractCompletions(e){return Array.isArray(e.completion_items)?e.completion_items.map(n=>this._toCompletionItem(n)):Array.isArray(e.completions)?Xo("BackCompletionResult","completions",e.completions).map(i=>({text:i,suffixReplacementText:"",skippedSuffix:""})):[{text:rn("BackCompletionResult","text",e.text),suffixReplacementText:"",skippedSuffix:""}]}toCompleteResult(e){let n=this._extractCompletions(e),i=Xo("BackCompletionResult","unknown_blob_names/unknown_memory_names",e.unknown_blob_names??e.unknown_memory_names),s=e.checkpoint_not_found===void 0?!1:Ug("BackCompletionResult","checkpoint_not_found",e.checkpoint_not_found,!1);return{completionItems:n,unknownBlobNames:i,checkpointNotFound:s,suggestedPrefixCharCount:e.suggested_prefix_char_count,suggestedSuffixCharCount:e.suggested_suffix_char_count,completionTimeoutMs:e.completion_timeout_ms}}toCheckpointBlobsResult(e){return{newCheckpointId:rn("BackCheckpointBlobsResult","new_checkpoint_id",e.new_checkpoint_id)}}async complete(e,n,i,s,c,u,d,f,m,y,x,D,N){let A=this._configListener.config,L={recent_changes:m},B={model:A.modelName,prompt:n,suffix:i,path:s,blob_name:c,prefix_begin:u?.prefixBegin,cursor_position:u?.cursorPosition,suffix_end:u?.suffixEnd,lang:d,blobs:el(f),recency_info:L,probe_only:D,sequence_id:this._sequenceId.next(),filter_threshold:A.completions.filterThreshold,edit_events:this.toFileDiffsPayload(y??[])};return await this.callApi(e,A,"completion",B,K=>this.toCompleteResult(K),void 0,x,N)}async checkpointBlobs(e){let n=this.createRequestId(),i=this._configListener.config,s={blobs:el(e)},c=await this.callApi(n,i,"checkpoint-blobs",s,u=>this.toCheckpointBlobsResult(u));for(let u of this.getUniqueExtraURLs())(await this.callApi(n,i,"checkpoint-blobs",s,f=>this.toCheckpointBlobsResult(f),u)).newCheckpointId!==c.newCheckpointId&&this._logger.error(`Checkpoint blobs API returned different checkpoint IDs for ${u}`);return c}toVCSChangePayload(e){return{working_directory_changes:e.workingDirectory.map(n=>({before_path:n.beforePath,after_path:n.afterPath,change_type:n.changeType,head_blob_name:n.headBlobName,indexed_blob_name:n.indexedBlobName,current_blob_name:n.currentBlobName}))}}toFileDiffsPayload(e){return[]}getUniqueExtraURLs(){return new Set}toMemorizeResult(e){return{blobName:e.blob_name!==void 0?rn("BackMemorizeResult","blob_name",e.blob_name):rn("BackMemorizeResult","mem_object_name",e.mem_object_name)}}async memorize(e,n,i,s,c){let u=this.createRequestId(),d=this._configListener.config,f=await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s,timeout_ms:c},m=>this.toMemorizeResult(m));for(let m of this.getUniqueExtraURLs())await this.callApi(u,d,"memorize",{model:d.modelName,path:e,t:n,blob_name:i,metadata:s},y=>this.toMemorizeResult(y),m);return f}toBatchUploadResult(e){return{blobNames:e.blob_names}}async batchUpload(e){let n=this.createRequestId(),i=this._configListener.config;try{let s=await this.callApi(n,i,"batch-upload",{blobs:e.map(c=>({blob_name:c.blobName,path:c.pathName,content:c.text}))},this.toBatchUploadResult.bind(this));for(let c of this.getUniqueExtraURLs())await this.callApi(n,i,"batch-upload",{blobs:e.map(u=>({blob_name:u.blobName,path:u.pathName,content:u.text}))},this.toBatchUploadResult.bind(this),c);return s}catch(s){if(!vt.isAPIErrorWithStatus(s,4))throw s;let c=[];for(let u of e){let d=await this.memorize(u.pathName,u.text,u.blobName,u.metadata);c.push(d.blobName)}return{blobNames:c}}}toFindMissingResult(e){return{unknownBlobNames:Xo("BackFindMissingResult","unknown_memory_names",e.unknown_memory_names),nonindexedBlobNames:Xo("BackFindMissingResult","nonindexed_blob_names",e.nonindexed_blob_names)}}async findMissing(e){let n=this._configListener.config,i=this.createRequestId(),s=n.modelName,c=[...e].sort(),u=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},d=>this.toFindMissingResult(d));for(let d of this.getUniqueExtraURLs()){let f=await this.callApi(i,n,"find-missing",{model:s,mem_object_names:c},m=>this.toFindMissingResult(m),d);u.unknownBlobNames=u.unknownBlobNames.concat(f.unknownBlobNames),u.nonindexedBlobNames=u.nonindexedBlobNames.concat(f.nonindexedBlobNames)}return u}async resolveCompletions(e){let n=this.createRequestId(),i=this._configListener.config;return await this.callApi(n,i,"resolve-completions",{client_name:"vscode-extension",resolutions:e})}toChatResult(e){let n=rn("BackChatResult","text",e.text),i=e.unknown_blob_names===void 0?[]:Xo("BackChatResult","unknown_blob_names",e.unknown_blob_names),s=e.checkpoint_not_found===void 0?!1:Ug("BackChatResult","checkpoint_not_found",e.checkpoint_not_found,!1),c=e.workspace_file_chunks===void 0?[]:e.workspace_file_chunks.map(d=>({charStart:vi("BackWorkspaceFileChunk","char_start",d.char_start),charEnd:vi("BackWorkspaceFileChunk","char_end",d.char_end),blobName:rn("BackWorkspaceFileChunk","blob_name",d.blob_name)})),u=e.nodes===void 0?[]:e.nodes.map(d=>({id:vi("BackChatResultNode","id",d.id),type:vi("BackChatResultNode","type",d.type),content:rn("BackChatResultNode","content",d.content)}));return{text:n,unknownBlobNames:i,checkpointNotFound:s,workspaceFileChunks:c,nodes:u}}async chat(e,n,i,s,c,u,d,f,m,y,x,D,N,A){let L=this._configListener.config,B={model:d??L.chat.model,path:N,prefix:x,selected_code:y,suffix:D,message:n,chat_history:i,lang:A,blobs:el(s),user_guided_blobs:c,external_source_ids:u,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,feature_detection_flags:{support_raw_output:!0}};return await this.callApi(e,L,"chat",B,K=>this.toChatResult(K),L.chat.url,12e4)}async chatStream(e,n,i,s,c,u,d,f,m,y,x,D,N,A,L,B,K,F){let P=this._configListener.config,U={model:d??P.chat.model,path:N,prefix:x,selected_code:y,suffix:D,message:n,chat_history:i,lang:A,blobs:el(s),user_guided_blobs:c,context_code_exchange_request_id:m,vcs_change:{working_directory_changes:[]},recency_info_recent_changes:f,external_source_ids:u,disable_auto_external_sources:B,user_guidelines:K,workspace_guidelines:F,feature_detection_flags:{support_raw_output:!0}};return await Fn(()=>this.callApiStream(e,P,"chat-stream",U,this.toChatResult.bind(this),P.chat.url,12e4,L),this._logger,{initialMS:250,mult:2,maxMS:5e3,maxTries:5,maxTotalMs:5e3})}toModel(e){let n=e.completion_timeout_ms!==void 0?vi("BackModelInfo","completion_timeout_ms",e.completion_timeout_ms):void 0;return{name:rn("BackModelInfo","name",e.name),suggestedPrefixCharCount:vi("BackModelInfo","suggested_prefix_char_count",e.suggested_prefix_char_count),suggestedSuffixCharCount:vi("BackModelInfo","suggested_suffix_char_count",e.suggested_suffix_char_count),completionTimeoutMs:n,internalName:e.internal_name&&rn("BackModelInfo","internal_name",e.internal_name)}}toLanguage(e){let n=rn("BackLanguageInfo","name",e.name),i=rn("BackLanguageInfo","vscodeName",e.vscode_name);ia("BackLanguageInfo","extensions",e.extensions);let s=[];for(let c of e.extensions)s.push(rn("BackLanguageInfo","extensions",c));return{name:n,vscodeName:i,extensions:s}}toGetModelsResult(e){let n=rn("BackGetModelsResult","default_model",e.default_model);ia("BackGetModelsResult","models",e.models);let i=[];for(let u of e.models)i.push(this.toModel(u));let s=Lg;if(e.feature_flags!==void 0){let u=e.feature_flags.git_diff_polling_freq_msec;u!==void 0&&u>0&&(s.gitDiff=!0,s.gitDiffPollingFrequencyMSec=u),e.feature_flags.small_sync_threshold!==void 0&&(s.smallSyncThreshold=e.feature_flags.small_sync_threshold),e.feature_flags.big_sync_threshold!==void 0&&(s.bigSyncThreshold=e.feature_flags.big_sync_threshold),e.feature_flags.enable_workspace_manager_ui_launch!==void 0&&(s.enableWorkspaceManagerUi=e.feature_flags.enable_workspace_manager_ui_launch),e.feature_flags.enable_instructions!==void 0&&(s.enableInstructions=e.feature_flags.enable_instructions),e.feature_flags.enable_smart_paste!==void 0&&(s.enableSmartPaste=e.feature_flags.enable_smart_paste),e.feature_flags.enable_smart_paste_min_version!==void 0&&(s.enableSmartPasteMinVersion=e.feature_flags.enable_smart_paste_min_version),e.feature_flags.enable_view_text_document!==void 0&&(s.enableViewTextDocument=e.feature_flags.enable_view_text_document),e.feature_flags.bypass_language_filter!==void 0&&(s.bypassLanguageFilter=e.feature_flags.bypass_language_filter),e.feature_flags.additional_chat_models!==void 0&&(s.additionalChatModels=e.feature_flags.additional_chat_models),e.feature_flags.enable_hindsight!==void 0&&(s.enableHindsight=e.feature_flags.enable_hindsight),e.feature_flags.max_upload_size_bytes!==void 0&&(s.maxUploadSizeBytes=e.feature_flags.max_upload_size_bytes),e.feature_flags.vscode_next_edit_min_version!==void 0&&(s.vscodeNextEditMinVersion=e.feature_flags.vscode_next_edit_min_version),e.feature_flags.vscode_flywheel_min_version!==void 0&&(s.vscodeFlywheelMinVersion=e.feature_flags.vscode_flywheel_min_version),e.feature_flags.vscode_external_sources_in_chat_min_version!==void 0&&(s.vscodeExternalSourcesInChatMinVersion=e.feature_flags.vscode_external_sources_in_chat_min_version),e.feature_flags.vscode_share_min_version!==void 0&&(s.vscodeShareMinVersion=e.feature_flags.vscode_share_min_version),e.feature_flags.max_trackable_file_count!==void 0&&(s.maxTrackableFileCount=e.feature_flags.max_trackable_file_count),e.feature_flags.max_trackable_file_count_without_permission!==void 0&&(s.maxTrackableFileCountWithoutPermission=e.feature_flags.max_trackable_file_count_without_permission),e.feature_flags.min_uploaded_percentage_without_permission!==void 0&&(s.minUploadedPercentageWithoutPermission=e.feature_flags.min_uploaded_percentage_without_permission),e.feature_flags.vscode_sources_min_version!==void 0&&(s.vscodeSourcesMinVersion=e.feature_flags.vscode_sources_min_version),e.feature_flags.vscode_chat_hint_decoration_min_version!==void 0&&(s.vscodeChatHintDecorationMinVersion=e.feature_flags.vscode_chat_hint_decoration_min_version),e.feature_flags.next_edit_debounce_ms!==void 0&&(s.nextEditDebounceMs=e.feature_flags.next_edit_debounce_ms),e.feature_flags.enable_completion_file_edit_events!==void 0&&(s.enableCompletionFileEditEvents=e.feature_flags.enable_completion_file_edit_events),e.feature_flags.vscode_enable_cpu_profile!==void 0&&(s.vscodeEnableCpuProfile=e.feature_flags.vscode_enable_cpu_profile),e.feature_flags.verify_folder_is_source_repo!==void 0&&(s.verifyFolderIsSourceRepo=e.feature_flags.verify_folder_is_source_repo),e.feature_flags.refuse_to_sync_home_directories!==void 0&&(s.refuseToSyncHomeDirectories=e.feature_flags.refuse_to_sync_home_directories),e.feature_flags.enable_file_limits_for_syncing_permission!==void 0&&(s.enableFileLimitsForSyncingPermission=e.feature_flags.enable_file_limits_for_syncing_permission),e.feature_flags.enable_chat_mermaid_diagrams!==void 0&&(s.enableChatMermaidDiagrams=e.feature_flags.enable_chat_mermaid_diagrams),e.feature_flags.enable_summary_titles!==void 0&&(s.enableSummaryTitles=e.feature_flags.enable_summary_titles),e.feature_flags.vscode_new_threads_menu_min_version!==void 0&&(s.vscodeNewThreadsMenuMinVersion=e.feature_flags.vscode_new_threads_menu_min_version),e.feature_flags.vscode_editable_history_min_version!==void 0&&(s.vscodeEditableHistoryMinVersion=e.feature_flags.vscode_editable_history_min_version),e.feature_flags.vscode_agent_mode_min_version!==void 0&&(s.vscodeAgentModeMinVersion=e.feature_flags.vscode_agent_mode_min_version)}let c=[];if(e.languages===void 0)c=Bg;else{ia("BackGetModelsResult","languages",e.languages),c=[];for(let u of e.languages)c.push(this.toLanguage(u))}return{defaultModel:n,models:i,languages:c,featureFlags:s}}async getModelConfig(){let e=this._configListener.config,n=this.createRequestId();return await this.callApi(n,e,"get-models",{},s=>this.toGetModelsResult(s))}async getAccessToken(e,n,i,s){let c=this._configListener.config,u=this.createRequestId(),d={grant_type:"authorization_code",client_id:c.oauth.clientID,code_verifier:i,redirect_uri:e,code:s};return await this.callApi(u,c,"token",d,f=>f.access_token,n)}async clientMetrics(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"client-metrics",{metrics:e},void 0,void 0,t.defaultRequestTimeoutMs)}async reportClientCompletionTimelines(e){let n=this._configListener.config,i=this.createRequestId();await this.callApi(i,n,"/client-completion-timelines",{timelines:e},void 0,void 0,t.defaultRequestTimeoutMs)}},Gi=class extends Error{constructor(){super("The completion URL setting is invalid")}},zg=class{_sequenceId=0;next(){return this._sequenceId++}};var ir=class{_disposables=[];add(e){if(e===void 0)throw new Error("Attempt to add undefined disposable to DisposableCollection");return this._disposables.push(e),e}addAll(...e){e.forEach(n=>this.add(n))}adopt(e){this._disposables.push(...e._disposables),e._disposables.length=0}dispose(){for(let e of this._disposables)e.dispose();this._disposables.length=0}},st=class{_disposables=new ir;_priorityDisposables=new ir;constructor(e=new ir,n=new ir){this._disposables.adopt(e),this._priorityDisposables.adopt(n)}addDisposable(e,n=!1){return n?this._priorityDisposables.add(e):this._disposables.add(e)}addDisposables(...e){this._disposables.addAll(...e)}dispose(){this._priorityDisposables.dispose(),this._disposables.dispose()}};var ij={Augment:null},oj="v",nl=class t extends st{_config;_configChanged=new ue;_configMonitor;_logger=Pe("AugmentConfigListener");constructor(){super(),this._configMonitor=new Qo("Config",this._logger),this._refreshConfig(),this.addDisposable(Rt.onDidChangeConfiguration(()=>this._refreshConfig()))}get config(){return this._config}get onDidChange(){return this._configChanged.event}_refreshConfig(){let e=this._config;this._config=t.normalizeConfig(this._getUserConfig()),this._configMonitor.update(this._config)&&this._configChanged.fire({previousConfig:e,newConfig:this._config})}static normalizeConfig(e){return{apiToken:e.advanced.apiToken,completionURL:e.advanced.completionURL,modelName:e.advanced.model,conflictingCodingAssistantCheck:e.conflictingCodingAssistantCheck,codeInstruction:{model:e.advanced.codeInstruction.model||void 0},chat:{url:e.advanced.chat.url||void 0,model:e.advanced.chat.model||void 0,stream:e.advanced.chat.stream??void 0,enableEditableHistory:e.advanced.chat.enableEditableHistory??!1,useRichTextHistory:e.advanced.chat.useRichTextHistory??!0,smartPasteUsePrecomputation:e.advanced.chat.smartPasteUsePrecomputation??!0,experimentalFullFilePaste:e.advanced.chat.experimentalFullFilePaste??!1,modelDisplayNameToId:e.advanced.chat.modelDisplayNameToId||ij,userGuidelines:e.chat.userGuidelines||""},autofix:{enabled:e.advanced.autofix.enabled,locationUrl:e.advanced.autofix.locationUrl||void 0,autofixUrl:e.advanced.autofix.autofixUrl||void 0},oauth:{clientID:e.advanced.oauth.clientID||oj,url:e.advanced.oauth.url||"https://auth.augmentcode.com"},enableUpload:e.advanced.enableWorkspaceUpload,enableShortcutsAboveSelectedText:e.enableShortcutsAboveSelectedText,shortcutsDisplayDelayMS:e.shortcutsDisplayDelayMS,enableEmptyFileHint:e.enableEmptyFileHint,enableBackgroundSuggestions:e.enableBackgroundSuggestions,enableGlobalBackgroundSuggestions:e.enableGlobalBackgroundSuggestions,showAllBackgroundSuggestionLineHighlights:e.showAllBackgroundSuggestionLineHighlights,enableDataCollection:e.advanced.enableDataCollection,enableDebugFeatures:e.advanced.enableDebugFeatures,enableReviewerWorkflows:e.advanced.enableReviewerWorkflows,completions:{enableAutomaticCompletions:e.completions.enableAutomaticCompletions,disableCompletionsByLanguage:new Set(e.completions.disableCompletionsByLanguage),enableQuickSuggestions:e.completions.enableQuickSuggestions,timeoutMs:e.advanced.completions.timeoutMs,maxWaitMs:e.advanced.completions.maxWaitMs,addIntelliSenseSuggestions:e.advanced.completions.addIntelliSenseSuggestions,filterThreshold:e.advanced.completions.filterThreshold},openFileManagerV2:{enabled:e.advanced.openFileManagerV2.enabled},nextEdit:{enabled:e.advanced.nextEdit.enabled,backgroundEnabled:e.advanced.nextEdit.backgroundEnabled,url:e.advanced.nextEdit.url,locationUrl:e.advanced.nextEdit.locationUrl||e.advanced.nextEdit.url,generationUrl:e.advanced.nextEdit.generationUrl||e.advanced.nextEdit.url,showInstructionTextbox:e.advanced.nextEdit.showInstructionTextbox,model:e.advanced.nextEdit.model,useDebounceMs:e.advanced.nextEdit.useDebounceMs,useCursorDecorations:e.advanced.nextEdit.useCursorDecorations,useSmallHover:e.advanced.nextEdit.useSmallHover,noDiffMode:e.advanced.nextEdit.noDiffMode,animateNoDiffMode:e.advanced.nextEdit.animateNoDiffMode,allowDuringDebugging:e.advanced.nextEdit.allowDuringDebugging,useMockResults:e.advanced.nextEdit.useMockResults,noDiffModeUseCodeLens:e.advanced.nextEdit.noDiffModeUseCodeLens,showDiffByDefault:e.advanced.nextEdit.showDiffByDefault},recencySignalManager:e.advanced.recencySignalManager,preferenceCollection:{enable:e.advanced.preferenceCollection.enable,enableRetrievalDataCollection:e.advanced.preferenceCollection.enableRetrievalDataCollection,enableRandomizedMode:e.advanced.preferenceCollection.enableRandomizedMode},vcs:{watcherEnabled:e.advanced.vcs.watcherEnabled},smartPaste:{url:e.advanced.smartPaste?.url,model:e.advanced.smartPaste?.model},instructions:{model:e.advanced.instructions?.model},integrations:{...e.advanced.integrations}}}_getUserConfig(){let e=Rt.getConfiguration("augment");return t.normalizeUserConfig(e)}static normalizeUserConfig(e){return{completions:{enableAutomaticCompletions:ft(e.enableAutomaticCompletions??e.completions?.enableAutomaticCompletions,!0),disableCompletionsByLanguage:e.disableCompletionsByLanguage||e.completions?.disableCompletionsByLanguage||[],enableQuickSuggestions:ft(e.completions?.enableQuickSuggestions,!0)},chat:{userGuidelines:e.chat?.userGuidelines||""},enableShortcutsAboveSelectedText:ft(e.enableShortcutsAboveSelectedText,!1),shortcutsDisplayDelayMS:sj(e.shortcutsDisplayDelayMS,2e3),enableEmptyFileHint:ft(e.enableEmptyFileHint,!0),enableBackgroundSuggestions:ft(e.enableBackgroundSuggestions,!0),enableGlobalBackgroundSuggestions:ft(e.enableGlobalBackgroundSuggestions,!1),showAllBackgroundSuggestionLineHighlights:ft(!e.advanced?.nextEdit?.noDiffMode,!e.advanced?.nextEdit?.noDiffMode),conflictingCodingAssistantCheck:ft(e.conflictingCodingAssistantCheck,!0),advanced:{apiToken:(e.advanced?.apiToken||e.apiToken||"").trim().toUpperCase(),completionURL:(e.advanced?.completionURL||e.completionURL||"").trim(),enableWorkspaceUpload:ft(e.advanced?.enableWorkspaceUpload,!0),model:e.advanced?.model||"",enableDebugFeatures:ft(e.advanced?.enableDebugFeatures,!1),enableReviewerWorkflows:ft(e.advanced?.enableReviewerWorkflows,!1),enableDataCollection:ft(e.advanced?.enableDataCollection,!1),codeInstruction:{model:e.advanced?.codeInstruction?.model||void 0},chat:{url:e.advanced?.chat?.url||void 0,model:e.advanced?.chat?.model||void 0,stream:e.advanced?.chat?.stream??void 0,enableEditableHistory:e.advanced?.chat?.enableEditableHistory,useRichTextHistory:e.advanced?.chat?.useRichTextHistory,smartPasteUsePrecomputation:e.advanced?.chat?.smartPasteUsePrecomputation,modelDisplayNameToId:e.advanced?.chat?.modelDisplayNameToId,experimentalFullFilePaste:e.advanced?.chat?.experimentalFullFilePaste},autofix:{enabled:ft(e.advanced?.autofix?.enabled,!1),locationUrl:e.advanced?.autofix?.locationUrl||void 0,autofixUrl:e.advanced?.autofix?.autofixUrl||void 0},oauth:{clientID:e.advanced?.oauth?.clientID,url:e.advanced?.oauth?.url},completions:{timeoutMs:e.advanced?.completions?.timeoutMs??800,maxWaitMs:e.advanced?.completions?.maxWaitMs??1600,addIntelliSenseSuggestions:e.advanced?.completions?.addIntelliSenseSuggestions??!0,filterThreshold:e.advanced?.completions?.filter_threshold??void 0},openFileManagerV2:{enabled:ft(e.advanced?.openFileManager?.useV2,!1)},nextEdit:{enabled:e.advanced?.nextEdit?.enabled,backgroundEnabled:ft(e.advanced?.nextEdit?.backgroundEnabled,!0),url:e.advanced?.nextEdit?.url,locationUrl:e.advanced?.nextEdit?.locationUrl,generationUrl:e.advanced?.nextEdit?.generationUrl,showInstructionTextbox:ft(e.advanced?.nextEdit?.showInstructionTextbox,!1),model:e.advanced?.nextEdit?.model,useDebounceMs:e.advanced?.nextEdit?.useDebounceMs,useCursorDecorations:ft(e.advanced?.nextEdit?.useCursorDecorations,!1),useSmallHover:ft(e.advanced?.nextEdit?.useSmallHover,!0),noDiffMode:e.advanced?.nextEdit?.noDiffMode,animateNoDiffMode:e.advanced?.nextEdit?.animateNoDiffMode,showDiffByDefault:e.advanced?.nextEdit?.showDiffByDefault,allowDuringDebugging:ft(e.advanced?.nextEdit?.allowDuringDebugging,!1),useMockResults:ft(e.advanced?.nextEdit?.useMockResults,!1),noDiffModeUseCodeLens:ft(e.advanced?.nextEdit?.noDiffModeUseCodeLens,!1)},recencySignalManager:{collectTabSwitchEvents:e.advanced?.recencySignalManager?.collectTabSwitchEvents??!1},preferenceCollection:{enable:ft(e.advanced?.preferenceCollection?.enable,!1),enableRetrievalDataCollection:ft(e.advanced?.preferenceCollection?.enableRetrievalDataCollection,!1),enableRandomizedMode:ft(e.advanced?.preferenceCollection?.enableRandomizedMode,!0)},vcs:{watcherEnabled:ft(e.advanced?.vcs?.watcherEnabled,!1)},smartPaste:{url:e.advanced?.smartPaste?.url,model:e.advanced?.smartPaste?.model},instructions:{model:e.advanced?.instructions?.model},integrations:{...e.advanced?.integrations}}}}};function ft(t,e){return t==null?e:typeof t=="string"?t.toLowerCase()!=="false":!!t}function sj(t,e){return t==null?e:typeof t=="string"?parseInt(t):t}var Yk=nt(Go());var aa="augment.sessions",Xk=["email"],rl=class extends st{constructor(n,i){super();this._context=n;this._config=i;this.addDisposables(this.onDidChangeSession(s=>{this._isLoggedIn=!!s}),this._context.secrets.onDidChange(async s=>{s.key===aa&&this._sessionChangeEmitter.fire(await this.getSession())})),this._ready=this.initState()}_sessionChangeEmitter=new ue;_readyEmitter=new ue;_isLoggedIn;_ready;get onDidChangeSession(){return this._sessionChangeEmitter.event}get onReady(){return this._readyEmitter.event}get useOAuth(){let n=this._config.config;return!!n.oauth&&!!n.oauth.url&&!!n.oauth.clientID&&!n.apiToken&&!n.completionURL}async initState(){this._isLoggedIn=!!await this.getSession(),this._readyEmitter.fire()}get isLoggedIn(){return this._isLoggedIn}async saveSession(n,i){await this._context.secrets.store(aa,JSON.stringify({accessToken:n,tenantURL:i,scopes:Xk}))}async getSession(){let n=await this._context.secrets.get(aa);if(n){let i=JSON.parse(n);if((0,Yk.isEqual)(i.scopes,Xk))return i}return null}async removeSession(){await this._context.secrets.get(aa)&&await this._context.secrets.delete(aa)}};var ca=require("crypto"),Vg=require("url");var il="augment.oauth-state",aj=process.env.TEST_HOSTNAME??".augmentcode.com",cj=10,ol=class{constructor(e,n,i,s){this._context=e;this._config=n;this._apiServer=i;this._authSession=s;this.authRedirectURI=ot.from({scheme:"vscode",authority:"augment.vscode-augment",path:"/auth/result"})}_logger=Pe("OAuthFlow");authRedirectURI;async startFlow(){return this._logger.info("Creating new session..."),(await this.login()).toString(!0)}async createOAuthState(){this._logger.info("Creating OAuth state");let e=Hg((0,ca.randomBytes)(32)),n=Hg(uj(Buffer.from(e))),i=Hg((0,ca.randomBytes)(8)),s={codeVerifier:e,codeChallenge:n,state:i,creationTime:new Date().getTime()};return await this._context.secrets.store(il,JSON.stringify(s)),this._logger.info("Created OAuth state"),s}async getOAuthState(){this._logger.info("Getting OAuth state");let e=await this._context.secrets.get(il);if(e){let n=JSON.parse(e);if(new Date().getTime()-n.creationTime{let i=performance.now()-t;return e(Math.round(i)),n}}function Zk(t,e){return(...n)=>{let i=performance.now(),s=lj(i,e),c=t(...n);return c instanceof Promise?c.then(s):s(c)}}function dj(t,e,n,i,s,c,u){return{blob_name:t,path:e,char_start:n,char_end:i,replacement_text:s,present_in_blob:c,expected_blob_name:u}}function eT(t){return t.map(e=>dj(e.blobName,e.pathName,e.origStart,e.origStart+e.origLength,e.text,e.uploaded,e.expectedBlobName))}var al=class{constructor(e,n,i,s){this.completionText=e;this.suffixReplacementText=n;this.skippedSuffix=i;this.range=s}toString(){return`text: ${this.completionText} suffixReplacementText: ${this.suffixReplacementText} skippedSuffix: ${this.skippedSuffix} start: ${this.range.startOffset} - end: ${this.range.endOffset}`}};var ul=class{constructor(e,n,i){this._extension=e;this._configListener=n;this._metricsReporter=i;this.generateCompletion=Zk(this.generateCompletion.bind(this),s=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:s})})}_logger=_e("CompletionsModel");_completionSerial=0;async generateCompletion(e,n,i){let s=this._extension.workspaceManager;if(s===void 0)return;let c=s.completionServer,u=c.createRequestId(),d=s.safeResolvePathName(e.uri);if(d===void 0)return;let[f,m]=[d.rootPath,d.relPath],y=e.offsetAt(n),[x,D,N,A,L]=this._extractPrefixAndSuffix(e,y);y+=L;let B={prefixBegin:N,cursorPosition:y,suffixEnd:A},F=(await this._requestCompletion(s,c,u,e,x,D,B,d,i)).completionItems;if(F.length===0)return{completions:[],document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,occuredAt:new Date,isReused:!1};F.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],te=F[0];return te.skippedSuffix.includes(` -`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new cl(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let y=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(y))throw new gi(`Language ${y} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,y,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),hj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(vt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new gi("Cancelled in back end");if(vt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new gi("Retriable error on back end");let U=ke(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let y=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new bi(y,x),L=new bi(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ll=class t extends Yo{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function Qg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var dl=class t extends Yo{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=Qg(i),[f,m]=Qg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var fl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Ju(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Qo(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Uk(n.fsPath)||await ia(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var nT=nt(require("crypto")),da=2023102300,la=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},Zo=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=nT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new la(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var NT=nt(Vo());var Kg=class{async read(e){try{return await $k(e)}catch{return}}stat(e){try{return Vi(e)}catch{return}}};function rT(){return new Kg}var iT=nt(require("crypto"));function oT(t){let e=iT.createHash("sha256");return e.update(t),e.digest("hex")}var op=nt(pT());var fa=class{accepted=!0},yi=class{accepted=!1};var at=nt(require("node:path"));var ha=at.posix.sep,Ej=new RegExp("/\\/g");function mT(t){return at.isAbsolute(t)}function Ij(t){return at.sep==="\\"?t.replace(Ej,ha):t}function bT(t){return Ij(t)}function _T(t){return t.with({path:at.dirname(t.fsPath)})}function gl(t){let e=at.dirname(t);return e==="."?"":Mj(e)}function Mj(t){return t.endsWith(ha)?t:t+ha}function es(t){for(;;){if(t===at.sep||t===ha||!t.endsWith(ha)&&!t.endsWith(at.sep))return t;t=t.slice(0,-1)}}function ga(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return at.relative(n,i)}function Ur(t,e){let n=ga(t,e);return n==="."?"":n.length>0&&!n.endsWith(at.sep)?n+at.sep:n}function Ze(t,e,n=!1){let i=at.join(t,e);return n&&!i.endsWith(at.sep)&&(i+=at.sep),i}function pa(t,e){let n=ga(t,e);if(!(n===".."||n.startsWith(".."+at.sep)||n.startsWith(".."+at.posix.sep)))return n}function or(t,e){return pa(t,e)!==void 0}function pl(t,e){let n=ga(t,e);return n===""||n==="."||n==="."+at.sep||n==="."+at.posix.sep}async function ml(t,e,n){let i=typeof t=="string"?ot.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await Bk(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=at.dirname(i.fsPath);if(at.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function Aj(t){return!1}function Jt(t){return es(t.fsPath)}function vT(t){return t.fsPath}function $r(t){if(t.scheme==="file"||t.scheme==="untitled"||Aj(t))return Jt(t)}var wi=class extends fa{explicit=!1;format(){return"Tracked"}},tp=class extends fa{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},np=class extends yi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},bl=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},rp=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if(Ur(i,n)!==""){let u=n;for(;;){u=_T(u);let d=Ur(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new bl(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=Ur(this._rootUri,e),c=new bl(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new np(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new tp(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new wi}},ip=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await rp.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new wi}};async function Nj(t,e){let n=Tt.joinPath(t,e);try{let i=await Qo(n.fsPath),s=(0,op.default)({ignorecase:!1});return s.add(i),s}catch{}}var ts=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await ip.buildNew(this._ignoreSources,e,n)}},ma=class{constructor(e){this.filename=e}getName(e){return vT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Nj(e,this.filename)}},_l=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,op.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var vl=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: + end: ${this.range.endOffset}`}};var cl=class{constructor(e,n,i){this._extension=e;this._configListener=n;this._metricsReporter=i;this.generateCompletion=Zk(this.generateCompletion.bind(this),s=>{this._metricsReporter.report({client_metric:"generate_completion_latency",value:s})})}_logger=Pe("CompletionsModel");_completionSerial=0;async generateCompletion(e,n,i){let s=this._extension.workspaceManager;if(s===void 0)return;let c=s.completionServer,u=c.createRequestId(),d=s.safeResolvePathName(e.uri);if(d===void 0)return;let[f,m]=[d.rootPath,d.relPath],y=e.offsetAt(n),[x,D,N,A,L]=this._extractPrefixAndSuffix(e,y);y+=L;let B={prefixBegin:N,cursorPosition:y,suffixEnd:A},F=(await this._requestCompletion(s,c,u,e,x,D,B,d,i)).completionItems;if(F.length===0)return{completions:[],document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,occuredAt:new Date,isReused:!1};F.length>1&&this._logger.warn("Multiple completions not supported, ignoring all but the first");let P=[],te=F[0];return te.skippedSuffix.includes(` +`)&&(this._logger.debug("Skipped suffix spans multiple lines, dropping it"),te.skippedSuffix="",te.suffixReplacementText=""),P.push(new al(te.text,te.suffixReplacementText,te.skippedSuffix,{startOffset:e.offsetAt(n),endOffset:e.offsetAt(n)})),this._logger.debug(`Returning ${P.length} completion(s)`),{occuredAt:new Date,completions:P,document:e,requestId:u,repoRoot:f,pathName:m,prefix:x,suffix:D,isReused:!1}}async _requestCompletion(e,n,i,s,c,u,d,f,m){let y=s.languageId;if(this._configListener.config.completions.disableCompletionsByLanguage.has(y))throw new gi(`Language ${y} is disabled.`);let D=this._completionSerial++;this._logger.debug(`Requesting new completion - #${D} submitted; requestId: ${i}`);let N=e.translateRange(f,d.prefixBegin,d.suffixEnd),A=N===void 0?d:{prefixBegin:N.beginOffset,cursorPosition:d.cursorPosition,suffixEnd:N.endOffset},L=e.getContext(),B=L.blobs,K=this._getRecentChanges(L),F=void 0;try{let P=await n.complete(i,c,u,f.relPath,N?.blobName,A,y,B,K,F,void 0,void 0,m);return P.unknownBlobNames.length>0&&e.handleUnknownBlobs(L,P.unknownBlobNames),P.checkpointNotFound&&e.handleUnknownCheckpoint(i,B.checkpointId),fj(P.completionItems,u,this._logger),this._extension.updateModelInfo(P),P.completionItems=P.completionItems.filter(U=>(U.text+U.suffixReplacementText).length>0),P}catch(P){if(vt.isAPIErrorWithStatus(P,1))throw this._logger.debug(`Completion #${D} cancelled in back end; requestId ${i}`),new gi("Cancelled in back end");if(vt.isRetriableAPIError(P))throw this._logger.debug(`Completion #${D} retriable error on back end; requestId ${i}`),new gi("Retriable error on back end");let U=Ce(P);throw this._logger.warn(`Completion #${D} failed: ${U}; requestId ${i}`),P}}_extractPrefixAndSuffix(e,n){let i=this._extension.modelInfo,s=i.suggestedPrefixCharCount,c=i.suggestedSuffixCharCount,[u,d]=[void 0,0];u!==void 0&&(n+=d);let f=Math.max(0,n-s),m=n+c;if(u!==void 0)throw new Error("Notebook support not implemented");let y=e.positionAt(f),x=e.positionAt(n),D=e.positionAt(n),N=e.positionAt(m),A=new bi(y,x),L=new bi(D,N),B=e.getText(A),K=e.getText(L);return[B,K,f,n+K.length,0]}_getRecentChanges(e){let n=e.recentChunks,i=e.lastChatResponse;if(i!==void 0){let s={seq:i.seq,uploaded:!1,repoRoot:"",pathName:"",blobName:"",text:i.text,origStart:0,origLength:0,expectedBlobName:""},c=n.findIndex(u=>u.seq=this.length))return this._items[(this._insertCount+this._emptySlots+e)%this._maxItems]}_normalizeSliceIdx(e){return e>=0?Math.min(e,this.length):Math.max(this.length+e,0)}_translateIdx(e){return(this._insertCount+this._emptySlots+e)%this._maxItems}slice(e,n){let i=this._normalizeSliceIdx(e??0),s=this._normalizeSliceIdx(n??this.length);if(i>s)return[];let c=s-i,u=this._translateIdx(i);return u+c<=this._maxItems?this._items.slice(u,u+c):this._items.slice(u).concat(this._items.slice(0,(u+c)%this._maxItems))}*[Symbol.iterator](){for(let e=0;e{this._currentUploadPromise===void 0&&(async()=>{try{this._currentUploadPromise=this._doUpload(),await this._currentUploadPromise}finally{this._currentUploadPromise=void 0}})()},this._uploadMsec))}async _doUpload(){if(this._store.length===0)return;let e=this._store.slice();this._store.clear();for(let n=0;n{if(this.uploadEnabled)try{return this._logger.debug(`Uploading ${i.length} metric(s)`),await this.performUpload(i)}catch(s){throw this._logger.error(`Error uploading metrics: ${s} ${s instanceof Error?s.stack:""}`),s}},this._logger)}}disableUpload(){clearInterval(this._uploadIntervalId),this._uploadIntervalId=void 0}dispose(){this.disableUpload()}};var ul=class t extends Zo{constructor(n){super("ClientMetricsReporter",t.defaultMaxRecords,t.defaultUploadMsec,t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=500;static defaultUploadMsec=1e4;performUpload(n){return this._apiServer.clientMetrics(n)}};function Gg(t){let e=Math.floor(t/1e3),n=t%1e3*1e6;return[e,n]}var ll=class t extends Zo{constructor(n,i,s,c){super("CompletionAcceptanceReporter",i??t.defaultMaxRecords,s??t.defaultUploadMsec,c??t.defaultBatchSize);this._apiServer=n}static defaultMaxRecords=1e4;static defaultBatchSize=1e3;static defaultUploadMsec=1e4;reportResolution(n,i,s,c){let[u,d]=Gg(i),[f,m]=Gg(s);this.report({request_id:n,emit_time_sec:u,emit_time_nsec:d,resolve_time_sec:f,resolve_time_nsec:m,accepted_idx:c??-1})}performUpload(n){return this._apiServer.resolveCompletions(n)}};var dl=class t{constructor(e){this._extensionContext=e}static storageSubDir="augment-global-state";update(e,n){return this._extensionContext.globalState.update(e,n)}get(e){return this._extensionContext.globalState.get(e)}async save(e,n,i){await this._ensureStorageUriExists(i);let s=this._getFileUri(e,i);return await Ku(s.fsPath,JSON.stringify(n))}async load(e,n){await this._ensureStorageUriExists(n);let i=this._getFileUri(e,n);try{let s=await Ko(i.fsPath);return JSON.parse(s)}catch{return}}async _ensureStorageUriExists(e){let n=this._getStorageUri(e);await Uk(n.fsPath)||await ra(n.fsPath)}_getStorageUri(e){return e?.uniquePerWorkspace&&this._extensionContext.storageUri?Tt.joinPath(this._extensionContext.storageUri,t.storageSubDir):Tt.joinPath(this._extensionContext.globalStorageUri,t.storageSubDir)}_getFileUri(e,n){return Tt.joinPath(this._getStorageUri(n),`${e}.json`)}};var nT=nt(require("crypto")),la=2023102300,ua=class extends Error{constructor(e){super(`content exceeds maximum size of ${e}`)}},es=class{constructor(e){this.maxBlobSize=e}_textEncoder=new TextEncoder;_hash(e,n){let i=nT.createHash("sha256");return i.update(e),i.update(n),i.digest("hex")}calculateOrThrow(e,n,i=!0){if(typeof n=="string"&&(n=this._textEncoder.encode(n)),i&&n.length>this.maxBlobSize)throw new ua(this.maxBlobSize);return this._hash(e,n)}calculate(e,n){try{return this.calculateOrThrow(e,n,!0)}catch{return}}calculateNoThrow(e,n){return this.calculateOrThrow(e,n,!1)}};var NT=nt(Go());var Qg=class{async read(e){try{return await $k(e)}catch{return}}stat(e){try{return Vi(e)}catch{return}}};function rT(){return new Qg}var iT=nt(require("crypto"));function oT(t){let e=iT.createHash("sha256");return e.update(t),e.digest("hex")}var ip=nt(pT());var da=class{accepted=!0},yi=class{accepted=!1};var at=nt(require("node:path"));var fa=at.posix.sep,Fj=new RegExp("/\\/g");function mT(t){return at.isAbsolute(t)}function Ej(t){return at.sep==="\\"?t.replace(Fj,fa):t}function bT(t){return Ej(t)}function _T(t){return t.with({path:at.dirname(t.fsPath)})}function hl(t){let e=at.dirname(t);return e==="."?"":Ij(e)}function Ij(t){return t.endsWith(fa)?t:t+fa}function ts(t){for(;;){if(t===at.sep||t===fa||!t.endsWith(fa)&&!t.endsWith(at.sep))return t;t=t.slice(0,-1)}}function ha(t,e){let n=typeof t=="string"?t:t.fsPath,i=typeof e=="string"?e:e.fsPath;return at.relative(n,i)}function Ur(t,e){let n=ha(t,e);return n==="."?"":n.length>0&&!n.endsWith(at.sep)?n+at.sep:n}function Ze(t,e,n=!1){let i=at.join(t,e);return n&&!i.endsWith(at.sep)&&(i+=at.sep),i}function ga(t,e){let n=ha(t,e);if(!(n===".."||n.startsWith(".."+at.sep)||n.startsWith(".."+at.posix.sep)))return n}function or(t,e){return ga(t,e)!==void 0}function gl(t,e){let n=ha(t,e);return n===""||n==="."||n==="."+at.sep||n==="."+at.posix.sep}async function pl(t,e,n){let i=typeof t=="string"?ot.file(t):t;for(;;){try{let c=Tt.joinPath(i,e),u=await Bk(c.fsPath);if(n===void 0||u.type===n)return i}catch{}let s=at.dirname(i.fsPath);if(at.relative(s,i.fsPath).length===0)return;i=i.with({path:s})}}function Mj(t){return!1}function Jt(t){return ts(t.fsPath)}function vT(t){return t.fsPath}function $r(t){if(t.scheme==="file"||t.scheme==="untitled"||Mj(t))return Jt(t)}var wi=class extends da{explicit=!1;format(){return"Tracked"}},ep=class extends da{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Tracked (${this.ignoreSourceName})`}},tp=class extends yi{constructor(n){super();this.ignoreSourceName=n}explicit=!0;format(){return`Not tracked (${this.ignoreSourceName})`}},ml=class{constructor(e,n,i,s){this.dirName=e;this.ignoreSource=n;this.rules=i;this.next=s}},np=class t{constructor(e,n,i){this._rootUri=e;this._ignoreSource=n;this._top=i}static async buildNew(e,n,i){let s=new Array;if(Ur(i,n)!==""){let u=n;for(;;){u=_T(u);let d=Ur(i,u),f=await e.getRules(u);if(f&&s.push([d,e,f]),d==="")break}}let c;for(let u=s.length-1;u>=0;u--){let[d,f,m]=s[u];c=new ml(d,f,m,c)}return new t(i,e,c)}async buildAtop(e,n){let i=await this._ignoreSource.getRules(e,n);if(i===void 0)return this;let s=Ur(this._rootUri,e),c=new ml(s,this._ignoreSource,i,this._top);return new t(this._rootUri,this._ignoreSource,c)}getPathInfo(e){for(let n=this._top;n!==void 0;n=n.next){if(!or(n.dirName,e))throw new Error(`candidatePath "${e}" is not below ignore file's parent "${n.dirName}"`);let i=e.slice(n.dirName.length),s=n.rules.test(i);if(s.ignored)return new tp(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)));if(s.unignored)return new ep(n.ignoreSource.getName(Tt.joinPath(this._rootUri,n.dirName)))}return new wi}},rp=class t{constructor(e,n){this._ignoreSources=e;this._ignoreStacks=n}static async buildNew(e,n,i){let s=new Array;for(let c of e){let u=await np.buildNew(c,n,i);s.push(u)}return new t(e,s)}async buildAtop(e,n){let i=new Array,s=0;for(let c=0;c=0;n--){let s=this._ignoreStacks[n].getPathInfo(e);if(s.explicit)return s}return new wi}};async function Aj(t,e){let n=Tt.joinPath(t,e);try{let i=await Ko(n.fsPath),s=(0,ip.default)({ignorecase:!1});return s.add(i),s}catch{}}var ns=class{constructor(e=[]){this._ignoreSources=e}async build(e,n){return await rp.buildNew(this._ignoreSources,e,n)}},pa=class{constructor(e){this.filename=e}getName(e){return vT(Tt.joinPath(e,this.filename))}async getRules(e,n){if(!(n!==void 0&&!(n.find(([s,c])=>c==="File"&&this.filename===s)!==void 0)))return Aj(e,this.filename)}},bl=class{constructor(e){this._sourceFolderRootPath=e}getName(){return"default Augment rules"}getRules(e){return new Promise(n=>{if(Jt(e)!==this._sourceFolderRootPath)n(void 0);else{let i=(0,ip.default)({ignorecase:!1});i.add([".git","*.pem","*.key","*.pfx","*.p12","*.jks","*.keystore","*.pkcs12","*.crt","*.cer","id_rsa","id_ed25519","id_ecdsa","id_dsa",".augment-guidelines"]),n(i)}})}};var _l=class{constructor(e){this.name=e}start=Date.now();increments=[];charge(e){this.increments.push({name:e,end:Date.now()})}*[Symbol.iterator](){let e=this.start;for(let{name:n,end:i}of this.increments)yield[n,i-e],e=i;yield["total",e-this.start]}format(){return(this.name?`${this.name}: `:"")+Array.from(this).map(([n,i])=>` - ${n}: ${i} ms`).join(` -`)}},yl=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},sp=class extends yl{increment(e=1){this._add(e)}},ap=class extends yl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},ns=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new sp,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new ap,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` +`)}},vl=class{_value=0;_add(e=1){this._value+=e}_invalidate(){this._value=Number.NaN}get value(){return this._value}},op=class extends vl{increment(e=1){this._add(e)}},sp=class extends vl{_start=void 0;start(){this._start=Date.now()}stop(){this._start===void 0?this._invalidate():this._add(Date.now()-this._start)}},rs=class{constructor(e){this.name=e}counters=new Map;timings=new Map;counterMetric(e){let n=this.counters.get(e);return n===void 0&&(n=new op,this.counters.set(e,n)),n}timingMetric(e){let n=this.timings.get(e);return n===void 0&&(n=new sp,this.timings.set(e,n)),n}format(){let e=this.name?`${this.name}:`:"",n=Array.from(this.counters.entries()).map(([c,u])=>` - ${c}: ${u.value}`).join(` `),i=" - timing stats:",s=Array.from(this.timings.entries()).map(([c,u])=>` - ${c}: ${u.value} ms`).join(` `);return e+` `+n+` `+i+` -`+s}};var yT=nt(require("os"));function wT(t){let e=yT.default.homedir();return pl(t,e)}var ba=nt(require("node:path"));async function Sl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=Ur(e,x),A=ra(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(ve=>setTimeout(ve,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=Ze(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new up(c,i)}var rs=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!ba.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!ba.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new ns("Path metrics");_logger=_e("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=Ur(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=ra(s.fsPath);this._readDirMs.stop();for(let[m,y]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=Ze(u,m,y==="Directory"),A=d.getPathInfo(N,y);this._filterMs.stop();let L=N;y==="File"?this._filesEmitted.increment():y==="Directory"?(L=es(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,y,A],this._yieldMs.stop(),y==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},cp=class extends yi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},wl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=ba.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new cp(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(gl(e));return i===void 0?new wi:i.getPathInfo(e)}},up=class extends wl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new lp(i,this._fileExtensions)}_getIgnoreStack(n){if(mT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(gl(i)===i)return;i=gl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},lp=class extends wl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var xl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var dp=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},Pl=class t extends st{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new dp;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var fp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends fp{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},Wr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var qj=Object.freeze({git:{name:".git",type:"Directory"}});async function ST(t){for(let[e,n]of Object.entries(qj)){let i=await ml(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var _a=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},hp=class{throwError(e,n){throw new _a(e,n)}},gp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},pp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},mp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Cl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},bp=class extends Cl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new pp(i,this.process)}},_p=class extends Cl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof _a?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof _a&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function is(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var Tl=class t extends st{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=_e("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new kl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=is(e,n),s=is(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=is(e.addedBlobs,n.addedBlobs),u=is(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=is(e.deletedBlobs,n.deletedBlobs),u=is(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";vt.isAPIErrorWithStatus(d,5)||vt.isAPIErrorWithStatus(d,4)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function Si(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var vp=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},yp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Rl=class t extends st{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=_e(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new ns("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=bT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return aa(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return Ze(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof la){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,ke(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let y={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,y)}_newProbeBatch(){return new yp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),Si(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),Si(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,y]of i.items)this._pathMapVerify(y.folderId,y.relPath,m)&&(u.has(y.blobName)?this._enqueueForUpload(m,y.folderId,y.relPath,!1):d.has(y.blobName)?this._enqueueForProbeRetry(m,y):this._pathMapUpdate(y.folderId,y.relPath,m,y.blobName,y.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new vp(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:y}]=n;if(!this._pathMapVerify(m,y,f))return;let x=this._getMtime(d,m,y,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,y,f);if(D===void 0)return;let N=this._calculateBlobName(y,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,y,f,ke(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:y,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let y of f)this._pathMapInvalidate(y.folderId,y.pathName,y.seq,this._fileUploadFailure);else for(let y of f){let x={folderId:y.folderId,relPath:y.pathName,blobName:m,mtime:y.mtime,startTime:Date.now()};this._enqueueForProbeRetry(y.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${ke(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var jr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},wp=class{constructor(e=da){this.namingVersion=e}entries=new Array};function Lj(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function Bj(t){return Ze(t,jr.cacheFileName)}function Fl(t){let e=Bj(t);return Ku(e)}async function PT(t,e){let n=Ze(t,jr.cacheFileName),i=Ze(e,jr.cacheFileName);await ia(e),await Eg(n,i)}async function CT(t,e){let n=new Map,i=_e(`MtimeCache[${t}]`),s=Ze(e,jr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Qo(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==da)i.info(`blob naming version ${d.namingVersion} !== ${da}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let y=Lj(m);y!==void 0&&(n.set(f,{mtime:y.mtime,name:y.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=ke(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Dl=class extends jr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=Ze(this._cacheDirName,jr.cacheFileName),this._tmpFileName=Ze(this._cacheDirName,jr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=_e("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new wp;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await ia(this._cacheDirName),await Ju(this._tmpFileName,JSON.stringify(i,void 0,4)),await Eg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${da} to ${this._cacheFileName}`)}};var TT=nt(Vo());var kT=require("console");var Sp=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},os=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},ss=class t{static _logger=_e("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new os(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,y=Math.min(m,e-s.length);s.length+=y,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=y;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var RT=6,DT=6,va=RT*DT,$j=1e3,Wj=2e3,jj=60*1e3,zj=200,Hj=30*1e3,Vj=30*1e3,Gj=60*1e3,xp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Xo(DT),this.addChangeset(s),this.changesSinceUpload=new ss}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new ss})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},Pp=class extends xp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},El=class t extends st{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=_e("OpenFileManager"),this._uploadQueue=new Wr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new Wr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,Wj),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new Wr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,jj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new Wr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let y=m.recentChanges(!1);if(y===void 0||y.blobName===void 0)continue;d.set(f,y.blobName);let x=m.getText(),D=y.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:y.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let y=m.changeTracker.getChunks(n,f.getText().length);if(y.length!==0)for(let x of y)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new Pp(n,i,d,f,d),c.set(i,u);let m=u.getText(),y=this._blobNameCalculator.calculate(i,m);if(y===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(y)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=y,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let y of c){let[x,D,N]=y;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let y=d.changesSinceUpload.length>=zj;y||(y=d.changesSinceUpload.countChunks(this._chunkSize)>=va),y&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let y=s.changesSinceUpload.countChunks(this._chunkSize);y>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),y>=va&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=RT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),y=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,TT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:y,changesSinceUpload:new ss},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>Hj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${ke(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${ke(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Gj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size<$j)return}let i=this._grabVerifyBatch();if(i===void 0)return;let s=[...i.keys()];this._logger.verbose(`verify batch: blob count = ${s.length}`);let c;try{let u=Date.now();c=await Fn(async()=>{if(!(Date.now()-u>Vj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let y of m)this.notifyMissingBlob(y.folderId,y.pathName,f);else if(d.has(f))for(let y of m)this._requeueVerifyWaiter(y,f);else for(let y of m)this._commit(y,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),Si(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),Si(this._logger,i,n.nonindexedBlobNames,5))}};var Cp=nt(Vo());var Il=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=_e("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] +`+s}};var yT=nt(require("os"));function wT(t){let e=yT.default.homedir();return gl(t,e)}var ma=nt(require("node:path"));async function wl(t,e,n,i){let s=await n.build(t,e),c=new Map;c.set("",s),c.set(".",s);let u=200,d=Date.now(),f=[];f.push([t,s]);let m;for(;(m=f.pop())!==void 0;){Date.now()-d>=u&&(await new Promise(B=>setTimeout(B,0)),d=Date.now());let[x,D]=m,N=Ur(e,x),A=na(x.fsPath),L=await D.buildAtop(x,A);L!==D&&c.set(N,L);for(let[B,K]of A){if(Date.now()-d>=u&&(await new Promise(_e=>setTimeout(_e,0)),d=Date.now()),B==="."||B===".."||K!=="Directory")continue;let P=Tt.joinPath(x,B),U=Ze(N,B,!0);L.getPathInfo(U).accepted&&f.push([P,L])}}return new cp(c,i)}var is=class{constructor(e,n,i,s){this._name=e;this._startUri=n;this._rootUri=i;this._pathFilter=s;if(!ma.isAbsolute(n.fsPath))throw new Error(`PathIterator[${this._name}]: startUri ${this._name} must contain an absolute pathname`);if(!ma.isAbsolute(i.fsPath))throw new Error(`PathIterator[${this._name}]: rootUri ${i.toString()} must contain an absolute pathname`);if(!or(Jt(i),Jt(n)))throw new Error(`PathIterator[${this._name}]: startUri ${Jt(this._startUri)} must be inside rootUri ${Jt(this._rootUri)}`);this._logger.verbose(`Created PathIterator for startUri ${this._startUri.fsPath}, rootUri ${this._rootUri.fsPath}`)}stats=new rs("Path metrics");_logger=Pe("PathIterator");_dirsEmitted=this.stats.counterMetric("directories emitted");_filesEmitted=this.stats.counterMetric("files emitted");_otherEmitted=this.stats.counterMetric("other paths emitted");_totalEmitted=this.stats.counterMetric("total paths emitted");_readDirMs=this.stats.timingMetric("readDir");_filterMs=this.stats.timingMetric("filter");_yieldMs=this.stats.timingMetric("yield");_totalMs=this.stats.timingMetric("total");async*[Symbol.asyncIterator](){this._totalMs.start();let e=200,n=Date.now(),i=new Array;i.push(this._startUri);let s;for(;(s=i.pop())!==void 0;){Date.now()-n>=e&&(await new Promise(m=>setTimeout(m,0)),n=Date.now());let u=Ur(this._rootUri,s),d=this._pathFilter.makeLocalPathFilter(u);this._readDirMs.start();let f=na(s.fsPath);this._readDirMs.stop();for(let[m,y]of f){if(Date.now()-n>=e&&(await new Promise(B=>setTimeout(B,0)),n=Date.now()),m==="."||m==="..")continue;this._filterMs.start();let D=Tt.joinPath(s,m),N=Ze(u,m,y==="Directory"),A=d.getPathInfo(N,y);this._filterMs.stop();let L=N;y==="File"?this._filesEmitted.increment():y==="Directory"?(L=ts(N),this._dirsEmitted.increment()):this._otherEmitted.increment(),this._totalEmitted.increment(),this._yieldMs.start(),yield[D,L,y,A],this._yieldMs.stop(),y==="Directory"&&A.accepted&&i.push(D)}}this._totalMs.stop()}},ap=class extends yi{constructor(n){super();this.extension=n}format(){return`Unsupported file extension (${this.extension})`}},yl=class{_fileExtensions;constructor(e){if(e){this._fileExtensions=new Set;for(let n of e)this._fileExtensions.add(n.toLowerCase())}else this._fileExtensions=void 0}acceptsPath(e,n="File"){return this.getPathInfo(e,n).accepted}getPathInfo(e,n="File"){if(n==="File"){let s=ma.extname(e);if(this._fileExtensions!==void 0&&!this._fileExtensions.has(s.toLowerCase()))return new ap(s)}else n==="Directory"&&!e.endsWith("/")&&(e+="/");let i=this._getIgnoreStack(hl(e));return i===void 0?new wi:i.getPathInfo(e)}},cp=class extends yl{constructor(n,i){super(i);this._ignorePathMap=n}makeLocalPathFilter(n){let i=this._getIgnoreStack(n);return new up(i,this._fileExtensions)}_getIgnoreStack(n){if(mT(n))throw new Error(`Absolute path ${n} passed to PathFilter`);let i=n;for(let s=0;s<1e4;s++){let c=this._ignorePathMap.get(i);if(c)return c;if(hl(i)===i)return;i=hl(i)}throw new Error(`Too-deep or malformed directory name ${n}`)}},up=class extends yl{constructor(n,i){super(i);this._ignoreStack=n}_getIgnoreStack(n){return this._ignoreStack}};var Sl=class t{static defaultStartSeq=1e4;_next;constructor(e=t.defaultStartSeq){this._next=e}next(){return this._next++}};var lp=class extends Error{constructor(){super("SingletonExecutor has been disposed")}},xl=class t extends st{constructor(n){super();this._execute=n;this.addDisposable({dispose:()=>this._stopping=!0})}static _disposedError=new lp;_nextExecutionScheduled=!1;_kickPromise=Promise.resolve();_stopping=!1;kick(){return this._nextExecutionScheduled?this._kickPromise:(this._nextExecutionScheduled=!0,this._kickPromise=this._kickPromise.then(async()=>(this._nextExecutionScheduled=!1,this._stopping?Promise.reject(t._disposedError):this._execute())),this._kickPromise)}};var dp=class{_items=new Map;_inProgress=!1;_stopping=!1;dispose(){this._stopping=!0}get size(){return this._items.size}cancel(e){this._items.delete(e)}_insert(e,n,i=!1){let s=this._items.has(e);return!i&&s?!1:(this._items.set(e,n),!s)}async kick(){if(!(this._inProgress||this._stopping||this._items.size===0)){for(this._inProgress=!0;this._items.size>0&&!this._stopping;){let e=this._items;this._items=new Map;for(let n of e){try{await this._processEntry(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processEntry(void 0)}}};var Hn=class extends dp{constructor(n){super();this._processItem=n}insert(n,i,s=!1){return this._insert(n,i,s)}get(n){return this._items.get(n)}async _processEntry(n){return this._processItem(n)}},Wr=class{constructor(e){this._processItem=e}_keys=new Set;_items=new Array;_inProgress=!1;_stopping=!1;get size(){return this._items.length}dispose(){this._stopping=!0}insert(e){return this._keys.has(e)?!1:(this._keys.add(e),this._items.push(e),!0)}async kick(){if(!(this._inProgress||this._stopping)){for(this._inProgress=!0;this._items.length>0&&!this._stopping;){let e=this._items;this._keys.clear(),this._items=new Array;for(let n of e){try{await this._processItem(n)}catch{}if(this._stopping)break}}this._inProgress=!1,await this._processItem(void 0)}}},sr=class{constructor(e,n){this._toKick=e;this._intervalId=setInterval(this._kick.bind(this),n)}_intervalId;_kick(){this._toKick.kick()}dispose(){this._intervalId!==void 0&&clearInterval(this._intervalId)}};var Nj=Object.freeze({git:{name:".git",type:"Directory"}});async function ST(t){for(let[e,n]of Object.entries(Nj)){let i=await pl(t,n.name,n.type);if(i!==void 0)return{root:i,toolName:e}}}var ba=class extends Error{constructor(n,i){let s=n instanceof Error?n.message:`${n}`;super(`WorkQueueItemFailed: ${s}, retry = ${i}`);this.toThrow=n;this.retry=i}},fp=class{throwError(e,n){throw new ba(e,n)}},hp=class{progressReporter;completedItems=0;totalItems;constructor(e,n){this.progressReporter=e,this.totalItems=n,this.update(0,this.totalItems)}update(e,n){this.completedItems+=e,this.totalItems=this.completedItems+n,this.progressReporter.update(this.completedItems,this.totalItems)}cancel(){this.progressReporter.cancel()}},gp=class{constructor(e,n){this.item=e;this.process=n}itemCount(){return 1}start(e){return this.process(this.item,e)}},pp=class{constructor(e,n){this.items=e;this.process=n}itemCount(){return this.items.size}start(e){return this.process(this.items,e)}},Pl=class{queue=new Set;get size(){return this.queue.size}add(e){this.queue.add(e)}delete(e){this.queue.delete(e)}},mp=class extends Pl{constructor(n){super();this.process=n}dequeue(){let n=this.queue.values().next();if(n.done)throw new Error("Cannot dequeue from empty queue");let i=n.value;return this.queue.delete(i),new gp(i,this.process)}},bp=class extends Pl{constructor(n,i){super();this.process=n;this._maxBatchSize=i}dequeue(){let n;if(this._maxBatchSize===void 0||this.queue.size<=this._maxBatchSize)n=this.queue,this.queue=new Set;else{n=new Set;let i=this.queue.values();for(let s=0;s{let u=[];function d(){for(let f of u)f.dispose()}u.push(this.eventEmitters[t.queueStatusChanged].event(()=>{d(),this.stopping?c(this.shutdownError):s()})),n&&u.push(this.eventEmitters[t.itemFailed].event(f=>{d(),c(f)}))}))}update(e=0){if(this.stopping){for(let n of this.countReporters)n.cancel();for(let n of this.progressReporters)n.cancel()}else{this.itemsInProgress-=e;let n=this.size();for(let i of this.countReporters)i.update(n);for(let i of this.progressReporters)i.update(e,n)}}notifyStatusChanged(){this.eventEmitters[t.queueStatusChanged].fire(null),this.progressReporters.clear()}notifyItemFailed(e){let n=e instanceof ba?e.toThrow:e;this.eventEmitters[t.itemFailed].fire(n)}delay(e){return new Promise(n=>setTimeout(n,e))}async kick(){if(!this.itemsInProgress){for(;!this.stopping&&this.queue.size!==0;){let e=this.queue.dequeue();this.itemsInProgress=e.itemCount();let n=0,i=0;do{try{await e.start(this.errorHandler),i&&this.logger.debug(`item succeeded; retries = ${i}`);break}catch(s){if(this.notifyItemFailed(s),!(s instanceof ba&&s.retry)){this.logger.debug(`item failed, not retrying; retries = ${i}`);break}}this.logger.debug(`item failed, retrying in ${n} ms; retries = ${i}`),await this.delay(n),this.logger.debug("retrying"),n===0?n=this.backoffParams.initialMS:n=Math.min(n*this.backoffParams.mult,this.backoffParams.maxMS),i++}while(!this.stopping);this.stopping||this.update(this.itemsInProgress)}this.notifyStatusChanged()}}};function os(t,e){let n=new Set(e);return t.filter(i=>!n.has(i))}var kl=class t extends st{static defaultCheckpointThreshold=1e3;_checkpointId;_checkpointBlobNames=new Map;_toAdd=new Map;_toRemove=new Set;_apiServer;_logger;_checkpointQueue;_checkpointThreshold;_maxCheckpointBatchSize=1e4;_featureFlagManager;_onContextChange=new ue;onContextChange=this._onContextChange.event;get _flags(){return this._featureFlagManager.currentFlags}constructor(e,n,i,s){super(),this._logger=Pe("BlobsCheckpointManager"),this._checkpointId=void 0,this._apiServer=e,this._featureFlagManager=n,this._checkpointThreshold=s??t.defaultCheckpointThreshold,this.addDisposable(i(c=>{this.updateBlob(c.absPath,c.prevBlobName,c.newBlobName)})),this._checkpointQueue=new Cl("checkpoint",{processOne:async(c,u)=>await this._checkpoint(c,u)}),this._logger.info(`BlobsCheckpointManager created. checkpointThreshold: ${this._checkpointThreshold}`)}refBlob(e){let n=this._checkpointBlobNames.get(e);n!==void 0?(this._checkpointBlobNames.set(e,n+1),n===0&&this._toRemove.delete(e)):this._toAdd.set(e,(this._toAdd.get(e)??0)+1)}derefBlob(e){!this.derefFromCheckpoint(e)&&!this.derefFromAdded(e)&&this._logger.error(`derefBlob: blob ${e} not found in checkpoint or toAdd`)}derefFromCheckpoint(e){let n=this._checkpointBlobNames.get(e);return n===void 0||n<=0?(n!==void 0&&this._logger.error(`derefFromCheckpoint: blob ${e} has reference count ${n}. In toRemove? ${this._toRemove.has(e)}`),!1):(this._checkpointBlobNames.set(e,n-1),n===1&&this._toRemove.add(e),!0)}derefFromAdded(e){let n=this._toAdd.get(e);return n===void 0?!1:n<=1?(this._toAdd.delete(e),n===1):(this._toAdd.set(e,n-1),!0)}getCheckpointedBlobNames(){return Array.from(this._checkpointBlobNames.keys())}getContext(){return{checkpointId:this._checkpointId,addedBlobs:Array.from(this._toAdd.keys()),deletedBlobs:Array.from(this._toRemove)}}getContextAdjusted(e,n){let i=new Set(this._toAdd.keys()),s=new Set(this._toRemove);for(let c of e)this._checkpointBlobNames.has(c)||i.add(c),s.delete(c);for(let c of n)this._checkpointBlobNames.has(c)&&s.add(c),i.delete(c);return{checkpointId:this._checkpointId,addedBlobs:Array.from(i),deletedBlobs:Array.from(s)}}blobsPayload(e){let n=this.getCheckpointedBlobNames(),i=os(e,n),s=os(n,e);return{checkpointId:this._checkpointId,addedBlobs:i,deletedBlobs:s}}expandBlobs(e){if(e.checkpointId===void 0)return e.addedBlobs;if(e.checkpointId!==this._checkpointId)throw new Error(`expandBlobs: checkpointId mismatch: ${e.checkpointId} != ${this._checkpointId}`);let n=this.getCheckpointedBlobNames();if(n.push(...e.addedBlobs),e.deletedBlobs.length>0){let i=new Set(e.deletedBlobs);return n.filter(s=>!i.has(s))}return n}validateMatching(e,n,i=!1){if(e.checkpointId!==n.checkpointId)return this._logger.error(`checkpointId mismatch: ${e.checkpointId} vs ${n.checkpointId}`),!1;let s=!0,c=os(e.addedBlobs,n.addedBlobs),u=os(n.addedBlobs,e.addedBlobs);return(c.length>0||u.length>0)&&(s=!1,this._logger.error(`addedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-added: ${c.slice(0,5).join(",")}`),this._logger.error(`right-added: ${u.slice(0,5).join(",")}`))),c=os(e.deletedBlobs,n.deletedBlobs),u=os(n.deletedBlobs,e.deletedBlobs),(c.length>0||u.length>0)&&(s=!1,this._logger.error(`deletedBlobs mismatch: -${c.length}/+${u.length}`),i&&(this._logger.error(`left-deleted: ${c.slice(0,5).join(",")}`),this._logger.error(`right-deleted: ${u.slice(0,5).join(",")}`))),s}updateBlob(e,n,i){this._logger.verbose(`notifyBlobChange ${e}: ${n} to ${i}`),i&&i!==n&&this.refBlob(i),n&&i!==n&&this.derefBlob(n),this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&this._checkpointQueue.size()===0&&this._queueCheckpoint()}resetCheckpoint(){for(let[e,n]of this._checkpointBlobNames)n>0?this._toAdd.set(e,n):this._toRemove.delete(e)||this._logger.warn(`blob with 0 references was not found in toRemove: ${e}`);for(let e of this._toRemove)this._logger.warn(`blob in toRemove was not found in checkpoint: ${e}`);this._toRemove.clear(),this._checkpointId=void 0,this._checkpointBlobNames.clear(),this._onContextChange.fire(this.getContext())}async awaitEmptyQueue(){await this._checkpointQueue.awaitEmpty(void 0,!1)}async _checkpoint(e,n){let{checkpointId:i,addedBlobs:s,deletedBlobs:c}=e;this._logger.debug(`Begin checkpoint of working set into ${i}`),this._logger.debug(`add ${s.length} blobs, remove ${c.length} blobs into ${i}`);let u={newCheckpointId:""};try{u=await this._apiServer.checkpointBlobs(e)}catch(d){let f=d instanceof Error?d.message:`${d}`,m=this._checkpointId?this._checkpointId:"{initial}";vt.isAPIErrorWithStatus(d,5)||vt.isAPIErrorWithStatus(d,4)?(this._logger.warn(`checkpoint-blobs from ${m} failed with invalid argument: ${f}. Recreating checkpoint.`),this.resetCheckpoint(),this._queueCheckpoint(),n.throwError(d,!1)):(this._logger.error(`checkpoint-blobs failed with error: ${f}.`),n.throwError(d,!1))}if(i!==this._checkpointId)this._logger.warn(`original checkpointId ${i} does not match current checkpointId ${this._checkpointId}. Abandoning new checkpoint.`);else{this._logger.debug(`checkpointId ${i} advanced to ${u.newCheckpointId}`),this._checkpointId=u.newCheckpointId;for(let d of s){let f=this._toAdd.get(d);f===void 0?(this._checkpointBlobNames.set(d,0),this._toRemove.add(d)):(this._checkpointBlobNames.set(d,f),this._toAdd.delete(d))}for(let d of c){let f=this._checkpointBlobNames.get(d);f===void 0?this._logger.warn(`In _checkpoint: deleted blob ${d} not found in checkpoint`):f>0&&this._toAdd.set(d,f),this._checkpointBlobNames.delete(d),this._toRemove.delete(d)}this._onContextChange.fire(this.getContext())}this._toAdd.size+this._toRemove.size>=this._checkpointThreshold&&(this._logger.debug(`starting a new round of checkpointing due to size ${this._toAdd.size} + ${this._toRemove.size}`),this._queueCheckpoint())}_queueCheckpoint(){this._logger.debug("queue checkpoint");let e=Array.from(this._toAdd.keys()).slice(0,this._maxCheckpointBatchSize),n=Array.from(this._toRemove).slice(0,this._maxCheckpointBatchSize),i={checkpointId:this._checkpointId,addedBlobs:e,deletedBlobs:n};this._logger.debug(`queue checkpoint: version: ${i.checkpointId}, add: ${i.addedBlobs.length} blobs, rm: ${i.deletedBlobs.length} blob`),this._checkpointQueue.add(i)}};function Si(t,e,n,i){let s=0;for(let c of n)if(t.log(e,` ${c}`),s++,i!==void 0&&s>=i){t.log(e," ...");break}}var _p=class{constructor(e,n){this.maxItems=e;this.maxByteSize=n}items=new Map;byteSize=0;addItem(e,n){let i=this.items.get(e);if(i===void 0){if(this.items.size>=this.maxItems||this.byteSize+n.byteSize>=this.maxByteSize)return!1;this.items.set(e,[n]),this.byteSize+=n.byteSize}else i.push(n);return!0}},vp=class{constructor(e){this.maxItemCount=e}items=new Map;get full(){return this.items.size>=this.maxItemCount}addItem(e,n){if(this.items.has(e))return!1;this.items.set(e,n)}},Tl=class t extends st{constructor(n,i,s,c,u){super();this.workspaceName=n;this._apiServer=i;this._pathHandler=s;this._pathMap=c;this._logger=Pe(`DiskFileManager[${n}]`),u===void 0?this._probeBatchSize=t.maxProbeBatchSize:(ut.maxProbeBatchSize&&this._logger.verbose(`Rejecting requested probe batch size of ${u} (max = ${t.maxProbeBatchSize})`),this._probeBatchSize=Math.max(Math.min(u,t.maxProbeBatchSize),t.minProbeBatchSize)),this._toCalculate=new Hn(this._calculate.bind(this)),this.addDisposable(this._toCalculate),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeBatch=this._newProbeBatch(),this._toUpload=new Hn(this._upload.bind(this)),this.addDisposable(this._toUpload),this._uploadBatch=this._newUploadBatch(),this._probeRetryWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeRetryWaiters),this._probeRetryKicker=new sr(this._probeRetryWaiters,t.probeRetryPeriodMs),this.addDisposable(this._probeRetryKicker),this._probeRetryBackoffWaiters=new Hn(this._enqueueForProbe.bind(this)),this._probeRetryBackoffKicker=new sr(this._probeRetryBackoffWaiters,t.probeRetryBackoffPeriodMs),this.addDisposable(this._probeRetryBackoffKicker)}static minProbeBatchSize=1;static maxProbeBatchSize=1e3;static maxUploadBatchBlobCount=128;static maxUploadBatchByteSize=1e6;static probeRetryPeriodMs=3*1e3;static probeBackoffAfterMs=60*1e3;static probeRetryBackoffPeriodMs=60*1e3;_notAPlainFile="Not a file";_fileNotAccessible="File not readable";_fileNotText="Binary file";_fileUploadFailure="Upload failed";_onDidChangeInProgressItemCountEmitter=new ue;onDidChangeInProgressItemCount=this._onDidChangeInProgressItemCountEmitter.event;_onQuiescedEmitter=new ue;_onQuiesced=this._onQuiescedEmitter.event;_textDecoder=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});_toCalculate;_toProbe;_probeBatch;_probeBatchSize;_probeRetryWaiters;_probeRetryKicker;_probeRetryBackoffWaiters;_probeRetryBackoffKicker;_toUpload;_uploadBatch;_itemsInFlight=new Map;_seq=1e3;metrics=new rs("File metrics");_logger;_stopping=!1;_pathsAccepted=this.metrics.counterMetric("paths accepted");_pathsNotAccessible=this.metrics.counterMetric("paths not accessible");_nonFiles=this.metrics.counterMetric("not plain files");_largeFiles=this.metrics.counterMetric("large files");_blobNameCalculationFails=this.metrics.counterMetric("blob name calculation fails");_encodingErrors=this.metrics.counterMetric("encoding errors");_mtimeCacheHits=this.metrics.counterMetric("mtime cache hits");_mtimeCacheMisses=this.metrics.counterMetric("mtime cache misses");_probeBatches=this.metrics.counterMetric("probe batches");_blobNamesProbed=this.metrics.counterMetric("blob names probed");_filesRead=this.metrics.counterMetric("files read");_blobsUploaded=this.metrics.counterMetric("blobs uploaded");_ingestPathMs=this.metrics.timingMetric("ingestPath");_probeMs=this.metrics.timingMetric("probe");_statMs=this.metrics.timingMetric("stat");_readMs=this.metrics.timingMetric("read");_uploadMs=this.metrics.timingMetric("upload");stop(){this.dispose()}dispose(){this._stopping=!0,super.dispose()}get probeBatchSize(){return this._probeBatchSize}get itemsInFlight(){return this._itemsInFlight.size}ingestPath(n,i){this._ingestPathMs.start(),!this._stopping&&(i=bT(i),this._enqueueForCalculate(n,i),this._ingestPathMs.stop())}async awaitQuiesced(){if(!(this._stopping||this._itemsInFlight.size===0))return sa(this._onQuiesced)}_nextSeq(){return this._seq++}_makeAbsPath(n,i){let s=this._pathMap.getRepoRoot(n);if(s!==void 0)return Ze(s,i)}_fileTooLargeString(n){return`File too large (${n} > ${this._pathHandler.maxBlobSize})`}_getMtime(n,i,s,c){this._statMs.start();let u=this._pathHandler.classifyPath(n);switch(this._statMs.stop(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"not a file":this._nonFiles.increment(),this._pathMapInvalidate(i,s,c,this._notAPlainFile);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"accepted":return u.mtime}}async _readAndValidate(n,i,s,c){this._readMs.start();let u=await this._pathHandler.readText(n);switch(this._readMs.stop(),this._filesRead.increment(),u.type){case"inaccessible":this._pathsNotAccessible.increment(),this._pathMapInvalidate(i,s,c,this._fileNotAccessible);return;case"large file":this._largeFiles.increment(),this._pathMapInvalidate(i,s,c,this._fileTooLargeString(u.size));return;case"binary":this._pathMapInvalidate(i,s,c,this._fileNotText);return;case"text":return u.contents}}_calculateBlobName(n,i,s,c){try{return this._pathHandler.calculateBlobName(n,i)}catch(u){if(u instanceof ua){this._largeFiles.increment();let d=this._fileTooLargeString(i.length);this._pathMapInvalidate(s,n,c,d)}else this._blobNameCalculationFails.increment(),this._pathMapInvalidate(s,n,c,Ce(u));return}}async _calculate(n){if(n===void 0)return;let[i,[s,c]]=n;if(!this._pathMapVerify(s,c,i))return;let u=this._makeAbsPath(s,c);if(u===void 0){this._inflightItemRemove(i);return}let d=this._getMtime(u,s,c,i);if(d===void 0)return;let f,m=this._pathMap.getBlobInfo(s,c,d);if(m!==void 0){this._mtimeCacheHits.increment();let[x,D]=m;if(D>0){this._pathMapUpdate(s,c,i,x,d);return}f=x}else{let x=await this._readAndValidate(u,s,c,i);if(x===void 0||(this._mtimeCacheMisses.increment(),f=this._calculateBlobName(c,x,s,i),f===void 0))return}this._pathsAccepted.increment();let y={folderId:s,relPath:c,blobName:f,mtime:d,startTime:Date.now()};this._enqueueForProbeRetry(i,y)}_newProbeBatch(){return new vp(this._probeBatchSize)}_grabProbeBatch(){if(this._probeBatch.items.size===0)return;let n=this._probeBatch;return this._probeBatch=this._newProbeBatch(),n}async _probe(n){if(n!==void 0){let[u,d]=n;if(!this._pathMapVerify(d.folderId,d.relPath,u)||(this._probeBatch.addItem(u,d),!this._probeBatch.full))return}let i=this._grabProbeBatch();if(i===void 0)return;let s=new Set;for(let[u,d]of i.items)s.add(d.blobName);this._probeBatches.increment(),this._blobNamesProbed.increment(i.items.size),this._logger.verbose(`probe ${s.size} blobs`),this._probeMs.start();let c;try{c=await Fn(async()=>this._apiServer.findMissing([...s]),this._logger)}catch{}if(this._probeMs.stop(),c!==void 0){this._logger.verbose(`find-missing reported ${c.unknownBlobNames.length} unknown blob names and ${c.nonindexedBlobNames.length} nonindexed blob names.`),c.unknownBlobNames.length>0&&(this._logger.verbose("unknown blob names:"),Si(this._logger,"verbose",c.unknownBlobNames,5)),c.nonindexedBlobNames.length>0&&(this._logger.verbose("nonindexed blob names:"),Si(this._logger,"verbose",c.nonindexedBlobNames,5));let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames),f=this._beginUploadBatch();for(let[m,y]of i.items)this._pathMapVerify(y.folderId,y.relPath,m)&&(u.has(y.blobName)?this._enqueueForUpload(m,y.folderId,y.relPath,!1):d.has(y.blobName)?this._enqueueForProbeRetry(m,y):this._pathMapUpdate(y.folderId,y.relPath,m,y.blobName,y.mtime));f.dispose()}else for(let[u,d]of i.items)this._enqueueForProbeRetry(u,d)}_newUploadBatch(){return new _p(t.maxUploadBatchBlobCount,t.maxUploadBatchByteSize)}_grabUploadBatch(){if(this._uploadBatch.items.size===0)return;let n=this._uploadBatch;return this._uploadBatch=this._newUploadBatch(),n}async _upload(n){let i;if(n!==void 0){let[d,{seq:f,folderId:m,relPath:y}]=n;if(!this._pathMapVerify(m,y,f))return;let x=this._getMtime(d,m,y,f);if(x===void 0)return;let D=await this._readAndValidate(d,m,y,f);if(D===void 0)return;let N=this._calculateBlobName(y,D,m,f);if(N===void 0)return;let A;try{A=this._textDecoder.decode(D)}catch(B){this._pathMapInvalidate(m,y,f,Ce(B)),this._encodingErrors.increment();return}let L={seq:f,folderId:m,pathName:y,text:A,blobName:N,mtime:x,byteSize:D.length,metadata:[]};if(this._uploadBatch.addItem(N,L))return;i=L}let s=this._grabUploadBatch();if(s===void 0)return;i!==void 0&&this._uploadBatch.addItem(i.blobName,i),this._logger.verbose(`upload ${s.items.size} blobs`);let c=new Array;for(let[d,f]of s.items)c.push(f[0]);this._uploadMs.start();let u=await this._uploadBlobBatch(c);this._uploadMs.stop(),this._blobsUploaded.increment(u.size);for(let[d,f]of s.items){let m=u.get(d);if(m===void 0)for(let y of f)this._pathMapInvalidate(y.folderId,y.pathName,y.seq,this._fileUploadFailure);else for(let y of f){let x={folderId:y.folderId,relPath:y.pathName,blobName:m,mtime:y.mtime,startTime:Date.now()};this._enqueueForProbeRetry(y.seq,x)}}}async _uploadBlobBatch(n){this._logger.verbose(`upload begin: ${n.length} blobs`);for(let c of n)this._logger.verbose(` - ${c.folderId}:${c.pathName}; expected blob name ${c.blobName}`);let i;try{i=await Fn(async()=>await this._apiServer.batchUpload(n),this._logger)}catch(c){this._logger.error(`batch upload failed: ${Ce(c)}`)}let s=new Map;if(i!==void 0)for(let c=0;c ${u.blobName}`);let d=await Fn(async()=>this._apiServer.memorize(u.pathName,u.text,u.blobName,[]),this._logger);s.set(u.blobName,d.blobName)}catch{}}}_inflightItemAdd(n,i,s){this._itemsInFlight.set(n,[i,s])}_inflightItemRemove(n){this._itemsInFlight.delete(n),this._onDidChangeInProgressItemCountEmitter.fire(this._itemsInFlight.size),this._itemsInFlight.size===0&&(this._logger.verbose("inflight items signaling empty"),this._onQuiescedEmitter.fire())}_pathMapVerify(n,i,s){if(!this._pathMap.shouldTrack(n,i))return this._inflightItemRemove(s),!1;let c=this._pathMap.getContentSeq(n,i);return c!==void 0&&c>=s?(this._inflightItemRemove(s),!1):!0}_pathMapUpdate(n,i,s,c,u){this._inflightItemRemove(s),this._pathMap.update(n,i,s,c,u)}_pathMapInvalidate(n,i,s,c){this._logger.verbose(`path map invalidate: ${n}:${i} (${c})`),this._pathMap.markUntrackable(n,i,s,c),this._inflightItemRemove(s),this._pathMap.markUntrackable(n,i,s,c)}_enqueueForCalculate(n,i){let s=this._nextSeq();this._inflightItemAdd(s,n,i),this._toCalculate.insert(s,[n,i])?this._toCalculate.kick():this._inflightItemRemove(s)}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue ${s.blobName} -> ${i}, ${s.folderId}:${s.relPath}`),this._toProbe.insert(i,s)}return Promise.resolve()}_beginUploadBatch(){return new rr(()=>this._toUpload.kick())}_enqueueForUpload(n,i,s,c=!0){this._logger.verbose(`upload enqueue ${i}:${s} -> ${n}`);let u=this._makeAbsPath(i,s);if(u===void 0){this._inflightItemRemove(n);return}let d=this._toUpload.get(u);if(d!==void 0){let f=d.seq;if(f>n)this._inflightItemRemove(f);else if(f ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryWaiters.insert(n,i)):(this._logger.verbose(`probe-retry enqueue backoff ${i.blobName} -> ${n}, ${i.folderId}:${i.relPath}`),this._probeRetryBackoffWaiters.insert(n,i))}};var jr=class{static cacheFileName="mtime-cache.json";static tmpFileName="mtime-cache.json.tmp"},yp=class{constructor(e=la){this.namingVersion=e}entries=new Array};function Oj(t){if(!(t.mtime===void 0||typeof t.mtime!="number"||!t.mtime)&&!(t.name===void 0||typeof t.name!="string"||!t.name))return{mtime:t.mtime,name:t.name}}function Lj(t){return Ze(t,jr.cacheFileName)}function Dl(t){let e=Lj(t);return Qu(e)}async function PT(t,e){let n=Ze(t,jr.cacheFileName),i=Ze(e,jr.cacheFileName);await ra(e),await Fg(n,i)}async function CT(t,e){let n=new Map,i=Pe(`MtimeCache[${t}]`),s=Ze(e,jr.cacheFileName);i.info(`reading blob name cache from ${s}`);try{let c=0,u=await Ko(s),d=JSON.parse(u);if(d.namingVersion===void 0||d.namingVersion!==la)i.info(`blob naming version ${d.namingVersion} !== ${la}`);else if(Array.isArray(d.entries))for(let[f,m]of d.entries){let y=Oj(m);y!==void 0&&(n.set(f,{mtime:y.mtime,name:y.name}),c++)}i.info(`read ${c} entries from ${s}`)}catch(c){let u=Ce(c);c instanceof Error&&"code"in c&&c.code==="ENOENT"?i.info(`no blob name cache found at ${s} (probably new source folder); error = ${u}`):i.error(`failed to read blob name cache ${s}: ${u}`)}return n}var Rl=class extends jr{constructor(n,i){super();this._name=n;this._cacheDirName=i;this._cacheFileName=Ze(this._cacheDirName,jr.cacheFileName),this._tmpFileName=Ze(this._cacheDirName,jr.tmpFileName)}_cacheFileName;_tmpFileName;_logger=Pe("MTimeCacheWriter");get cacheFileName(){return this._cacheFileName}async write(n){this._logger.debug(`persisting to ${this._cacheFileName}`);let i=new yp;for(let[s,c,u]of n)i.entries.push([s,{mtime:c,name:u}]);await ra(this._cacheDirName),await Ku(this._tmpFileName,JSON.stringify(i,void 0,4)),await Fg(this._tmpFileName,this._cacheFileName),this._logger.debug(`persisted ${i.entries.length} entries at naming version ${la} to ${this._cacheFileName}`)}};var TT=nt(Go());var kT=require("console");var wp=class{constructor(e,n,i,s){this.seq=e;this.start=n;this.length=i;this.origLength=s}get end(){return this.start+this.length}get localShift(){return this.origLength-this.length}},ss=class t{constructor(e,n,i,s,c){this.seq=e;this.start=n;this.length=i;this.origStart=s;this.origLength=c}static fromMod(e,n){return new t(e.seq,e.start,e.length,e.start+n,e.origLength)}get end(){return this.start+this.length}get origEnd(){return this.origStart+this.origLength}setStart(e){let n=this.start-e;this.start-=n,this.length+=n,this.origStart-=n,this.origLength+=n}setEnd(e){let n=e-this.end;this.length+=n,this.origLength+=n}},as=class t{static _logger=Pe("ChangeTracker");_modifications=[];_seq=0;get seq(){return this._seq}get empty(){return this._modifications.length===0}get length(){return this._modifications.length}translate(e,n){let i=e+Math.max(n,0),s=0,c=0;for(;s=e||f.end-s.start>e&&f.length<=e)&&(i.push(s),s=void 0),s===void 0)s=new ss(f.seq,f.start,0,f.origStart,0);else{let x=f.start-s.end;s.length+=x,s.origLength+=x}let m=f.length,y=Math.min(m,e-s.length);s.length+=y,s.origLength+=f.origLength,s.seq=Math.max(s.seq,f.seq);for(let x=y;xi.origEnd?t._logger.error("invalid chunk: ",JSON.stringify(i)):n.push(i);return n}};var RT=6,DT=6,_a=RT*DT,Uj=1e3,$j=2e3,Wj=60*1e3,jj=200,zj=30*1e3,Hj=30*1e3,Vj=60*1e3,Sp=class{constructor(e,n,i,s){this.folderId=e;this.pathName=n;this.key=i;this.appliedSeq=s;this.recentChangesets=new Yo(DT),this.addChangeset(s),this.changesSinceUpload=new as}uploadedBlobName;uploadedSeq;recentChangesets;changesSinceUpload;uploadRequested=!1;inProgressUpload;_embargoed=!1;invalidateUploadState(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0}_clear(){this.uploadedBlobName=void 0,this.uploadedSeq=void 0,this.recentChangesets.clear(),this.changesSinceUpload=void 0,this.uploadRequested=!1,this.inProgressUpload=void 0}embargo(){this._clear(),this._embargoed=!0}get embargoed(){return this._embargoed}get uploadInProgress(){return this.inProgressUpload!==void 0}getBlobName(){return this.recentChanges(!1)?.blobName}longestHistory(e){if(this.uploadedSeq===void 0)return;let n=this.recentChangesets.at(0);if(n!==void 0){if(e)return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName};if(this.uploadedBlobName!==void 0&&!(n.initialSeq>this.uploadedSeq))return{changeTracker:n.changeTracker,blobName:this.uploadedBlobName}}}recentChanges(e){return this.inProgressUpload!==void 0?this.inProgressUpload.savedChangeset:this.longestHistory(e)}applyAll(e,n,i,s){for(let c of this.recentChangesets)c.changeTracker.apply(e,n,i,s);this.appliedSeq=e}advanceAll(){for(let e of this.recentChangesets)e.changeTracker.advance()}addChangeset(e){this.recentChangesets.addItem({initialSeq:e,changeTracker:new as})}purgeChangesets(e){let n=0;for(;!this.recentChangesets.empty&&!((this.recentChangesets.at(1)?.initialSeq??this.appliedSeq)>=e);)this.recentChangesets.shiftLeft(1),n++;return n}},xp=class extends Sp{constructor(n,i,s,c,u){super(n,i,s,u);this.document=c}get documentType(){return 0}getText(){return this.document.getText()}},Fl=class t extends st{constructor(n,i,s,c,u,d){super();this._apiServer=n;this._completionServer=i;this._configListener=s;this._blobNameCalculator=c;this._pathMap=u;this._sequenceGenerator=d;this._logger=Pe("OpenFileManager"),this._uploadQueue=new Wr(this._upload.bind(this)),this.addDisposable(this._uploadQueue),this._verifyWaiters=new Wr(this._enqueueForVerify.bind(this)),this.addDisposable(this._verifyWaiters),this._verifyWaitersKicker=new sr(this._verifyWaiters,$j),this.addDisposable(this._verifyWaitersKicker),this._longWaiters=new Wr(this._enqueueForVerify.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,Wj),this.addDisposable(this._longWaitersKicker),this._verifyQueue=new Wr(this._verify.bind(this)),this.addDisposable(this._verifyQueue)}_trackedFolders=new Map;_uploadQueue;_verifyWaiters;_longWaiters;_verifyWaitersKicker;_longWaitersKicker;_verifyQueue;_verifyBatch=new Map;_prevUpdatedDocument;_logger;openSourceFolder(n){if(this._trackedFolders.has(n))throw new Error(`Source folder ${n} is already open`);return this._trackedFolders.set(n,new Map),this._logger.info(`Opened source folder ${n}`),new rr(()=>{this._closeSourceFolder(n)})}_closeSourceFolder(n){this._trackedFolders.delete(n),this._logger.info(`Closed source folder ${n}`)}startTracking(n,i,s){this._trackDocument(n,i,s)}stopTracking(n,i,s){let c=this._getFolder(n);if(c===void 0)return;let u=c.get(i);u!==void 0&&(s!==void 0&&u.documentType!==s||(c.delete(i),this._prevUpdatedDocument===u&&(this._prevUpdatedDocument=void 0),this._logger.verbose(`stop tracking ${n}:${i}`)))}isTracked(n,i){return this._getDocument(n,i)!==void 0}getTrackedPaths(n){let i=this._getFolder(n);return i===void 0?new Array:Array.from(i.keys())}loseFocus(){this._setFocus(void 0)}get _chunkSize(){return this._completionServer.completionParams.chunkSize}_getFolder(n){return this._trackedFolders.get(n)}_getDocument(n,i,s){let c=typeof n=="number"?this._getFolder(n):n;if(c===void 0)return;let u=c.get(i);if(u!==void 0&&!(s!==void 0&&u.key!==s))return u}getBlobName(n,i){return this._getDocument(n,i)?.getBlobName()}translateRange(n){let i=this._getDocument(n.folderId,n.relPath);if(i===void 0||i.uploadedBlobName===void 0)return;let s=i.changesSinceUpload;if(s===void 0)return;let c=s.translate(n.beginOffset,n.endOffset-n.beginOffset);return{blobName:i.uploadedBlobName,beginOffset:c[0],endOffset:c[0]+c[1]}}notifyMissingBlob(n,i,s){let c=this._getDocument(n,i);return c===void 0||c.uploadedBlobName!==s?!1:(c.invalidateUploadState(),this._tryEnqueueUpload(n,i,"blob name reported missing",c),!0)}getRecencySummary(n){let i=new Map,s=new Array;for(let[c,u]of this._trackedFolders){let d=new Map;i.set(c,d);for(let[f,m]of u){if(m.embargoed||m.uploadedSeq===void 0)continue;let y=m.recentChanges(!1);if(y===void 0||y.blobName===void 0)continue;d.set(f,y.blobName);let x=m.getText(),D=y.changeTracker.getChunks(n,x.length);if(D.length===0)continue;let N=this._blobNameCalculator.calculateNoThrow(f,x);for(let A of D)s.push({seq:A.seq,uploaded:A.seq<=m.uploadedSeq,folderId:c,pathName:f,blobName:y.blobName,text:x.slice(A.start,A.end),origStart:A.origStart,origLength:A.origLength,expectedBlobName:N})}}return s.sort(t._compareChunks),{folderMap:i,recentChunks:s}}getRecentChunkInfo(n,i=!1){let s=new Array;for(let[c,u]of this._trackedFolders)for(let[d,f]of u){if(f.embargoed||f.uploadedSeq===void 0)continue;let m=f.recentChanges(i);if(m===void 0)continue;let y=m.changeTracker.getChunks(n,f.getText().length);if(y.length!==0)for(let x of y)s.push({seq:x.seq,uploaded:x.seq<=f.uploadedSeq,folderId:c,pathName:d,blobName:m.blobName})}return s.sort(t._compareChunks),s}static _compareChunks(n,i){return n.uploaded===i.uploaded?i.seq-n.seq:n.uploaded?1:-1}applyTextDocumentChange(n,i,s){let c=this._getDocument(n,i);if(c===void 0){this._trackDocument(n,i,s.document);return}if(!this._prepareForUpdate(c)||s.contentChanges.length===0)return;let u=s.contentChanges.map(d=>[d.rangeOffset,d.rangeLength,d.text.length]);this._applyChangedRanges(n,i,c,u)}_setFocus(n){this._prevUpdatedDocument!==void 0&&n!==this._prevUpdatedDocument&&(this._tryEnqueueUpload(this._prevUpdatedDocument.folderId,this._prevUpdatedDocument.pathName,"document lost focus"),this._purgeUnneededChangesets()),this._prevUpdatedDocument=n}_trackDocument(n,i,s){let c=this._getFolder(n);if(c===void 0)throw new Error(`Source folder ${n} is not open`);let u=this._getDocument(c,i);if(this._setFocus(u),u!==void 0)return;let d=this._sequenceGenerator.next(),f=s;u=new xp(n,i,d,f,d),c.set(i,u);let m=u.getText(),y=this._blobNameCalculator.calculate(i,m);if(y===void 0){this._embargo(n,i,u,"blob name calculation failed");return}this._pathMap.getAnyPathName(y)===void 0?this._tryEnqueueUpload(n,i,"new document has no blob name",u):(u.uploadedBlobName=y,u.uploadedSeq=u.appliedSeq),this._logger.verbose(`start tracking ${n}:${i}`)}_prepareForUpdate(n){return this._setFocus(n),!n.embargoed}_applyChangedRanges(n,i,s,c){let u=this._sequenceGenerator.next();s.recentChangesets.empty&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; total = ${s.recentChangesets.length}`));let d=s.inProgressUpload;for(let y of c){let[x,D,N]=y;d!==void 0&&(d.savedChangeset!==void 0&&d.savedChangeset.changeTracker.apply(u,x,D,N),d.changesSinceUpload.apply(u,x,D,N)),s.applyAll(u,x,D,N),s.changesSinceUpload?.apply(u,x,D,N)}if(s.appliedSeq=u,d!==void 0){let y=d.changesSinceUpload.length>=jj;y||(y=d.changesSinceUpload.countChunks(this._chunkSize)>=_a),y&&this._cancelInProgressUpload(n,i,s)}if(s.changesSinceUpload!==void 0){let y=s.changesSinceUpload.countChunks(this._chunkSize);y>1&&this._tryEnqueueUpload(n,i,"multiple non-uploaded chunks",s),y>=_a&&(this._logger.verbose(`apply: no longer tracking non-uploaded changes for ${n}:${i}`),s.changesSinceUpload=void 0)}let m=s.recentChangesets.at(-1).changeTracker.countChunks(this._chunkSize);m>=RT&&(s.addChangeset(u),this._logger.verbose(`apply: new changeset for ${n}:${i}; chunks = ${m}; total = ${s.recentChangesets.length}`))}_cancelInProgressUpload(n,i,s){this._logger.verbose(`cancel in-progress upload: ${n}:${i}`),s.inProgressUpload=void 0,s.key=this._sequenceGenerator.next()}_validateInProgressUpload(n,i,s){let c=this._getDocument(n,i,s);if(!(c===void 0||c.inProgressUpload===void 0))return[c,c.inProgressUpload]}_tryEnqueueUpload(n,i,s,c){let u=c??this._getDocument(n,i);u!==void 0&&(u.uploadRequested||u.appliedSeq!==u.uploadedSeq&&u.appliedSeq!==u.inProgressUpload?.uploadSeq&&(this._logger.verbose(`upload request: ${n}:${i}; reason = ${s}`),u.uploadRequested=!0,u.uploadInProgress?this._logger.verbose(`upload request delayed: upload for ${n}:${i} already in progress`):this._enqueueUpload(n,i,u.key)))}_retryUpload(n,i){this._logger.verbose(`retry upload; ${n}:${i}`);let s=this._getDocument(n,i);if(s===void 0){this._logger.verbose(`retry upload: document is no longer tracked; ${n}:${i}`);return}if(s.inProgressUpload!==void 0){this._logger.verbose(`retry upload: upload already in progress; ${n}:${i}`);return}s.uploadRequested=!0,this._enqueueUpload(n,i,s.key)}_enqueueUpload(n,i,s){this._uploadQueue.insert([n,i,s])&&(this._logger.verbose(`enqueue upload: ${n}:${i}`),this._uploadQueue.kick())}async _upload(n){if(n===void 0)return;let[i,s,c]=n,u=this._getDocument(i,s,c);if(u===void 0){this._logger.verbose(`upload: upload cancelled or no longer tracking document ${i}:${s}`);return}u.uploadRequested=!1;let d=u.getText(),f=this._blobNameCalculator.calculate(s,d);if(f===void 0){this._embargo(i,s,u,"failed to compute blob name");return}let m=u.longestHistory(!1),y=m===void 0||m.blobName===void 0?void 0:{changeTracker:(0,TT.cloneDeep)(m.changeTracker),blobName:m.blobName};u.inProgressUpload={uploadSeq:u.appliedSeq,blobName:f,savedChangeset:y,changesSinceUpload:new as},u.advanceAll(),u.uploadedBlobName=void 0;let x;try{this._logger.verbose(`upload: begin; ${i}:${s}, ${f}`);let N=Date.now();x=await Fn(async()=>{if(!(Date.now()-N>zj)&&this._validateInProgressUpload(i,s,c))return this._apiServer.memorize(s,d,f,[])},this._logger)}catch(N){return this._logger.verbose(`upload: failed; ${i}:${s}, ${f}; ${Ce(N)};`),this._embargo(i,s,u,`upload encountered permanent error: ${Ce(N)}`)}if(!this._validateInProgressUpload(i,s,c))return this._logger.verbose(`upload: upload cancelled; pathName = ${i}:${s}`),this._retryUpload(i,s);if(x===void 0)return this._logger.verbose(`upload: upload timed out, cancelling; pathName = ${i}:${s}`),this._cancelInProgressUpload(i,s,u),this._retryUpload(i,s);let D=x.blobName;D===f?this._logger.verbose(`upload: completed; ${i}:${s}, ${D}`):this._logger.error(`upload: completed with mismatched blobName; pathName, received, expected = ${i}:${s}, ${D}, ${f}`),u.inProgressUpload.blobName=D,this._enqueueVerifyWaiter({folderId:i,pathName:s,key:c,startTime:Date.now()},D)}_requeueVerifyWaiter(n,i){let s=n.folderId,c=n.pathName;if(!this._validateInProgressUpload(s,c,n.key))return this._logger.verbose(`requeue verify-wait: upload cancelled; ${s}:${c}, ${i}`),this._retryUpload(s,c);Date.now()-n.startTime>Vj?(this._logger.verbose(`verify-wait: enqueue long; pathName = ${s}:${c}`),this._longWaiters.insert(n)):this._enqueueVerifyWaiter(n,i)}_enqueueVerifyWaiter(n,i){this._logger.verbose(`verify-wait: enqueue; ${n.folderId}:${n.pathName}, ${i}`),this._verifyWaiters.insert(n)}_enqueueForVerify(n){return n===void 0?(this._verifyQueue.kick(),Promise.resolve()):(this._verifyQueue.insert(n),Promise.resolve())}_grabVerifyBatch(){if(this._verifyBatch.size===0)return;let n=this._verifyBatch;return this._verifyBatch=new Map,n}async _verify(n){if(n!==void 0){let u=this._getDocument(n.folderId,n.pathName,n.key);if(u===void 0||u.inProgressUpload===void 0)return;let d=this._verifyBatch.get(u.inProgressUpload.blobName);if(d===void 0&&(d=new Array,this._verifyBatch.set(u.inProgressUpload.blobName,d)),d.push(n),this._verifyBatch.size{if(!(Date.now()-u>Hj))return this._apiServer.findMissing(s)},this._logger)}catch{}if(c===void 0){this._logger.verbose("verify: timeout exceeded");for(let u of s){let d=i.get(u);for(let f of d)this._requeueVerifyWaiter(f,u)}}else{this._logVerifyResult(c);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)if(u.has(f))for(let y of m)this.notifyMissingBlob(y.folderId,y.pathName,f);else if(d.has(f))for(let y of m)this._requeueVerifyWaiter(y,f);else for(let y of m)this._commit(y,f)}}_commit(n,i){let s=n.folderId,c=n.pathName,u=this._validateInProgressUpload(s,c,n.key);if(u===void 0){this._logger.verbose(`commit: upload cancelled for ${s}:${c}`);return}let[d,f]=u;d.inProgressUpload=void 0,this._logger.verbose(`commit: ${s}:${c}, ${i}; uploadSeq = ${f.uploadSeq}`),d.uploadedBlobName=i,d.uploadedSeq=f.uploadSeq,d.changesSinceUpload=f.changesSinceUpload,d.uploadRequested&&this._retryUpload(n.folderId,n.pathName)}_purgeUnneededChangesets(){let n=this.getRecentChunkInfo(this._chunkSize,!0);if(n.length<_a)return;let i=n[_a-1].seq,s=new Set;for(let c=_a;c0&&this._logger.verbose(`purge: removed ${u} changesets from ${c.folderId}:${c.pathName}`)}}_embargo(n,i,s,c){this._logger.info(`embargoing: ${n}:${i} reason = ${c}`),s.embargo()}_logVerifyResult(n){let i=n.unknownBlobNames.length>0?"error":"verbose";this._logger.log(i,`find-missing reported ${n.unknownBlobNames.length} unknown blob names and ${n.nonindexedBlobNames.length} nonindexed blob names.`),n.unknownBlobNames.length>0&&(this._logger.log(i,"unknown blob names:"),Si(this._logger,i,n.unknownBlobNames,5)),n.nonindexedBlobNames.length>0&&(this._logger.log(i,"nonindexed blob names:"),Si(this._logger,i,n.nonindexedBlobNames,5))}};var Pp=nt(Go());var El=class{constructor(e,n,i){this._configListener=e;this._openFileManagerV1=n;this._openFileManagerV2=i}_logger=Pe("OpenFileManagerProxy");get isV2Enabled(){return!1}startTrackingFolder(e,n){return this.isV2Enabled?[this._openFileManagerV2.startTrackingFolder(e,n),this._openFileManagerV1.openSourceFolder(n)]:[this._openFileManagerV1.openSourceFolder(n)]}addOpenedDocument(e){this._openFileManagerV1.startTracking(e.folderId,e.relPath,e.document),this.isV2Enabled&&this._openFileManagerV2.addOpenedDocument(e)}getBlobName(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.getBlobName(e,n),s=this._openFileManagerV1.getBlobName(e,n);return(i===void 0&&s!==void 0||i!==void 0&&s===void 0)&&this._logger.debug(`[WARN] getBlobName returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] [${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.getBlobName(e,n)}handleMissingBlob(e,n,i){if(this.isV2Enabled){let s=this._openFileManagerV2.handleMissingBlob(e,n,i);return this._openFileManagerV1.notifyMissingBlob(e,n,i)||s}else return this._openFileManagerV1.notifyMissingBlob(e,n,i)}loseFocus(){this._openFileManagerV1.loseFocus()}stopTracking(e,n){this._openFileManagerV1.stopTracking(e,n),this.isV2Enabled&&this._openFileManagerV2.stopTracking(e,n)}handleClosedDocument(e){this._openFileManagerV1.stopTracking(e.folderId,e.relPath,0),this.isV2Enabled&&this._openFileManagerV2.handleClosedDocument(e)}handleChangedDocument(e){this._openFileManagerV1.applyTextDocumentChange(e.folderId,e.relPath,e.event),this.isV2Enabled&&this._openFileManagerV2.handleChangedDocument(e)}isTracked(e,n){if(this.isV2Enabled){let i=this._openFileManagerV2.isTracked(e,n),s=this._openFileManagerV1.isTracked(e,n);return i!==s&&this._logger.debug(`[WARN] isTracked returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(i)}] -[${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.isTracked(e,n)}getTrackedPaths(e){if(this.isV2Enabled){let n=this._openFileManagerV2.getTrackedPaths(e),i=this._openFileManagerV1.getTrackedPaths(e),s=(0,Cp.difference)(n,i);s.length>0&&this._logger.debug(`[WARN] getTrackedPaths in new but not in old [${e}] -[${JSON.stringify(s)}]`);let c=(0,Cp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] +[${JSON.stringify(s)}]`),s}else return this._openFileManagerV1.isTracked(e,n)}getTrackedPaths(e){if(this.isV2Enabled){let n=this._openFileManagerV2.getTrackedPaths(e),i=this._openFileManagerV1.getTrackedPaths(e),s=(0,Pp.difference)(n,i);s.length>0&&this._logger.debug(`[WARN] getTrackedPaths in new but not in old [${e}] +[${JSON.stringify(s)}]`);let c=(0,Pp.difference)(i,n);return c.length>0&&this._logger.debug(`[WARN] getTrackedPaths in old but not in new [${e}] [${JSON.stringify(c)}]`),i}else return this._openFileManagerV1.getTrackedPaths(e)}dispose(){this._openFileManagerV2?.dispose(),this._openFileManagerV1.dispose()}getRecencySummary(e){return this._openFileManagerV1.getRecencySummary(e)}translateRange(e,n,i,s){if(this.isV2Enabled){let c=this._openFileManagerV2.translateRange(e,n,i,s),u=this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s});return(c?.blobName!==u?.blobName||c?.beginOffset!==u?.beginOffset||c?.endOffset!==u?.endOffset)&&this._logger.debug(`[WARN] translateRange returned different results between v1 and v2 [${e}:${n}] [${JSON.stringify(c)}] -[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var FT=require("node:buffer");var Ml=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new Zo(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,FT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return Ze(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=ET(e)?Ze(e.rootPath,e.relPath):e.fsPath,s=ET(n)?Ze(n.rootPath,n.relPath):n.fsPath;return i===s}};function ET(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Al=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=_e("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(pl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new kp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},kp=class extends st{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return Ze(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Nl=require("fs");var Tp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=_e("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Nl.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=Ze(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Nl.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.debug(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(ot.file(e)):n==="change"?this._onDidChange.fire(ot.file(e)):n==="delete"&&this._onDidDelete.fire(ot.file(e))}dispose(){this.watcher.close()}},Rp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function IT(t){try{return new Tp(t)}catch(e){let n=_e("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Rp}}var Dp=class extends yi{constructor(n){super();this.reason=n}format(){return this.reason}},ql=class extends st{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=_e(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new rs(this.folderName,ot.file(this.folderRoot),ot.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Vi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Dp(ke(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=$r(n);if(i!==void 0)return pa(this.repoRoot,i)}_createFilesystemWatcher(n){let i=IT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function MT(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),y;for(;(y=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=Ur(c,y),N=n.makeLocalPathFilter(D),A=ra(y);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=Ze(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(Ze(y,L)))}}return Promise.resolve(d)}var Ol=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await Sl(ot.file(e),ot.file(n),new ts(i),this._fileExtensions);return await MT(ot.file(e),ot.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=Ze(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ll=class t extends st{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=_e("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&Si(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return ga(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Ep=class extends st{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Qj=new Set(["home directory","too large"]),Kj=new Set(["nested"]);function ya(t){return Qj.has(t)}function AT(t){return Kj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Ul=class t extends st{constructor(n,i,s,c,u,d,f,m,y=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of y)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Ml(this._maxUploadSizeBytes,rT()),this._pathMap=this.addDisposable(new Al),this._openFileManager=this.addDisposable(new Il(this._configListener,new El(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new Tl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ll(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new Pl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new Ol(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new ma(".gitignore"),new _l(n),new ma(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new wi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new xl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=_e("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return ya(s)||AT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await aa(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return ya(s)||AT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await aa(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(ya(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?wT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Bl(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Bl(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Fl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Bl(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Bl(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);ya(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);ya(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Lr;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Dl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{y.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,y]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Rl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new Fp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Fl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Fl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await PT(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${ke(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=oT(t._textEncoder.encode(n));return Ze(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${ke(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${ke(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await Sl(ot.file(n.folderRoot),ot.file(n.repoRoot),new ts(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Ep(c,u,s)}_createPathNotifier(n,i){let s=new ql(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await ml(n,t.augmentRootName),i===void 0&&(i=(await ST(n))?.root),i!==void 0?[qT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=$r(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return as.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,y=m&&this._validateCheckpointManagerContext,x;if(!m||y){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new as(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new as(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=ot.file(n.repoRoot),u=new rs(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,y]of u)this._handlePathFound(n,f,m,y)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))pa(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Vi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=$r(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,y=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(y=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:y,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var $l=class t extends st{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new dl(s),this._clientMetricsReporter=new ll(s),this._completionsModel=new ul(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new el({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=_e("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Lr;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${ke(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,OT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession()){this._logger.info("Auth session not found. Please log in.");return}}else{if(this._logger.info("Using API token"),!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new Mu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,LT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Iu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(vt.isAPIErrorWithStatus(c,7))return;if(c instanceof Gi)return;if(c instanceof Ko)return;let u=ke(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new al(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new Zo(s),this.workspaceManager=new Ul(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}this.enabled=!0}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Ko;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),vt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Gi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Ko;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await Wg(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function BT(t){let e=t.get("sessionId");return(e===void 0||!ig(e))&&(e=Us(),t.update("sessionId",e)),e}var on=(0,Se.createConnection)(),Jj=process.env.TEST_TMPDIR?zl.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||zl.join(UT.default.homedir(),".local","share"),Xj=zl.join(Jj,"vim-augment"),me=_e("server"),jl,Ip,cs,Xt,Wl=new rl;async function Yj(t,e){cs=new il(t,Wl);let n=new fl(t),i=BT(n);me.info(`Session ID: ${i}`),jl=new nl(Wl,cs,i,e,global.fetch),Ip=new sl(t,Wl,jl,cs),Xt=new $l(t,Wl,jl,cs),await Xt.enable()}on.onInitialize(async t=>{me.info("Initializing Language Server");let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;me.info(`User agent: ${s}`);let c=t.workspaceFolders??[];me.info(`Roots: ${JSON.stringify(c)}`);for(let f of c)me.info(`Root name, URI: ${f.name}, ${f.uri}`);Gk(c);let u;try{u=new Zu(ot.file(Xj))}catch(f){throw me.error(`Error initializing server context storage: ${ke(f)}`),f}return await Yj(u,s),{capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:Se.TextDocumentSyncKind.Incremental}}});on.onInitialized(()=>{me.info("Language server initialized")});on.onCompletion(async t=>{if(!Xt?.ready)return me.debug("Not logged in. Please login first."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Not logged in. Please login first.");let e=Rt.documents.get(t.textDocument.uri);if(!e)return me.warn(`Not tracking the document ${t.textDocument.uri}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return me.debug("Completion server is not initialized."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Completion server is not initialized");try{let n=new _i(e),i=new Or(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return me.info(`Completion: ${s?.requestId}`),me.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof gi?(me.debug(`Completion was cancelled or skipped: ${ke(n)}`),[]):(me.error(`Error getting completion: ${ke(n)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Error getting completion: ${ke(n)}`))}});on.onRequest("augment/login",async()=>{try{return cs.isLoggedIn?(me.info("Already logged in"),{loggedIn:!0,url:""}):(me.info("Logging in..."),{loggedIn:!1,url:await Ip.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=ke(t);return me.error(`Error handling augment/login: ${n}`),me.error(`Stack trace: ${e}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await cs.removeSession(),Xt?.disable(),me.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=ke(t);return me.error(`Error handling augment/logout: ${n}`),me.error(`Stack trace: ${e}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{await Ip.handleAuthJson(t.code)}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=ke(e);return me.error(`Error handling user code: ${i}`),me.error(`Stack trace: ${n}`),e instanceof SyntaxError?new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to parse user code. Did you paste the code provided by the sign in page?"):i==="Unknown state"?new Se.ResponseError(Se.ErrorCodes.InternalError,"Could not find sign in state. Did you navigate to the full sign in URL (it may wrap onto multiple lines)?"):new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process user code. Please try again.")}try{return await Xt?.enable(),me.info("Logged in."),{}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=ke(e);return me.error(`Error enabling extension: ${i}`),me.error(`Stack trace: ${n}`),new Se.ResponseError(Se.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{if(!Xt?.ready)return{loggedIn:!1};let t=Xt?.workspaceManager?.getSyncingProgress();if(!t)return{loggedIn:!0};let e=0,n=0;for(let s of t){if(!s.progress)return{loggedIn:!0};s.progress.newlyTracked&&(me.info(`New folder ${s.folderRoot} sync progress: tracked=${s.progress.trackedFiles}, backlog=${s.progress.backlogSize}`),e+=s.progress.trackedFiles,n+=s.progress.trackedFiles-s.progress.backlogSize)}return{loggedIn:!0,syncPercentage:e>0?Math.floor(n/e*100):100}});on.onRequest("augment/chat",async t=>{if(!Xt?.ready)return me.debug("Not logged in. Please login first."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Not logged in. Please login first.");let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||me.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return me.debug("Completion server is not initialized."),new Se.ResponseError(Se.ErrorCodes.InternalError,"Completion server is not initialized");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),y=Xt.completionServer.createRequestId();me.info(`Chat (${y}) requested`),n&&(me.debug(`Document URI: ${n.uri}`),me.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&me.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await jl.chatStream(y,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){me.debug(`Chat chunk for ${y}: ${L.text}`);let B={requestId:y,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return me.error(`Error streaming chat: ${ke(A)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Error streaming chat: ${ke(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:y,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new Se.ResponseError(Se.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return me.error(`Failed to fetch version: ${f.statusText}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let y=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!y)return new Se.ResponseError(Se.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(y[1]),D=parseInt(y[2]),N=parseInt(y[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new Se.ResponseError(Se.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new Se.ResponseError(Se.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return me.error(`Error fetching version: ${ke(d)}`),new Se.ResponseError(Se.ErrorCodes.InternalError,`Failed to fetch plugin version: ${ke(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(me.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){me.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{me.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=Ni.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ng.fire(new _i(n))});on.onDidCloseTextDocument(t=>{me.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),Og.fire(new _i(e)))});on.onDidChangeTextDocument(t=>{me.debug(`Document changed: ${t.textDocument.uri}`),me.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){me.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new bi(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new bi(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=Ni.update(e,[s],t.textDocument.version),me.debug(`Updated document (${e.version}): -${e.getText()}`)}Rt.documents.add(e);let i={document:new _i(e),contentChanges:n};qg.fire(i)});on.listen(); +[${JSON.stringify(u)}]`),u}else return this._openFileManagerV1.translateRange({folderId:e,relPath:n,beginOffset:i,endOffset:s})}};var FT=require("node:buffer");var Il=class{constructor(e,n){this._fileReader=n;this._blobNameCalculator=new es(e)}_blobNameCalculator;get maxBlobSize(){return this._blobNameCalculator.maxBlobSize}classifyPath(e){let n=this._fileReader.stat(e);return n?n.type!=="File"?{type:"not a file",mtime:n.mtime}:n.size>this._blobNameCalculator.maxBlobSize?{type:"large file",mtime:n.mtime,size:n.size}:{type:"accepted",size:n.size,mtime:n.mtime}:{type:"inaccessible"}}async readText(e){let n;try{if(n=await this._fileReader.read(e),n===void 0)return{type:"inaccessible"}}catch{return{type:"inaccessible"}}return(0,FT.isUtf8)(n)?n.length>this._blobNameCalculator.maxBlobSize?{type:"large file",size:n.length}:{type:"text",contents:n}:{type:"binary"}}calculateBlobName(e,n){return this._blobNameCalculator.calculateOrThrow(e,n)}};var ar=class t{constructor(e,n){this.rootPath=e;this.relPath=n}static from(e){return new t(e.rootPath,e.relPath)}get absPath(){return Ze(this.rootPath,this.relPath)}equals(e){return t.equals(this,e)}static equals(e,n){if(e===n)return!0;if(e==null||n==null)return!1;let i=ET(e)?Ze(e.rootPath,e.relPath):e.fsPath,s=ET(n)?Ze(n.rootPath,n.relPath):n.fsPath;return i===s}};function ET(t){return t!=null&&typeof t=="object"&&("rootPath"in t||"relPath"in t)}var Ml=class{_nextFolderId=100;_sourceFolders=new Map;_blobNameChangedEmitter=new ue;_nextEntryTS=1e3;_logger=Pe("PathMap");constructor(){}dispose(){for(let[e,n]of this._sourceFolders)n.dispose()}get nextEntryTS(){return this._nextEntryTS}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}onDidChangePathStatus(e){return this._sourceFolders.get(e)?.onDidChangePathStatus}openSourceFolder(e,n){for(let[u,d]of this._sourceFolders){if(gl(d.folderRoot,e))throw new Error(`Source folder ${e} is already open`);if(or(e,d.folderRoot))throw new Error(`Source folder ${e} contains ${d.folderRoot}`);if(or(d.folderRoot,e))throw new Error(`Source folder ${d.folderRoot} contains ${e}`)}let i=this._nextFolderId++,s=new Cp(e,n);this._sourceFolders.set(i,s);let c=s.onDidChangeBlobName(this._handleBlobNameChangeEvent.bind(this));return s.addDisposable(c),this._logger.info(`Opened source folder ${e} with id ${i}`),i}closeSourceFolder(e){let n=this._sourceFolders.get(e);if(n===void 0)return;n.clear();let i=n.folderRoot;this._sourceFolders.delete(e),n.dispose(),this._logger.info(`Closed source folder ${i} with id ${e}`)}_handleBlobNameChangeEvent(e){this._blobNameChangedEmitter.fire(e)}getRepoRoot(e){return this._sourceFolders.get(e)?.repoRoot}hasFile(e,n){return this._sourceFolders.get(e)?.hasFile(n)??!1}getBlobName(e,n){return this._sourceFolders.get(e)?.getBlobName(n)}getBlobInfo(e,n,i){return this._sourceFolders.get(e)?.getBlobInfo(n,i)}getAnyPathName(e){for(let n of this._sourceFolders.values()){let i=n.getPathName(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}getAllPathNames(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push(new ar(i.repoRoot,s))}return n}getUniquePathCount(e){let n=0;for(let i of this._sourceFolders.values())i.getPathName(e)!==void 0&&n++;return n}getAllQualifiedPathNames(e){return this.getAllQualifiedPathInfos(e).map(n=>n.qualifiedPathName)}getAllQualifiedPathInfos(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathInfo(e);if(s!==void 0){let[c,u]=s;n.push({qualifiedPathName:new ar(i.repoRoot,e),fileType:c,isAccepted:u.accepted})}}return n}getAllPathInfo(e){let n=new Array;for(let i of this._sourceFolders.values()){let s=i.getPathName(e);s!==void 0&&n.push([i.folderRoot,i.repoRoot,s])}return n}getPathInfo(e,n){return this._sourceFolders.get(e)?.getPathInfo(n)}reportMissing(e){for(let n of this._sourceFolders.values()){let i=n.reportMissing(e);if(i!==void 0)return this._makeQualifiedPathName(n,i)}}insert(e,n,i,s){let c=this._nextEntryTS++;this._sourceFolders.get(e)?.insert(n,c,i,s)}remove(e,n){this._sourceFolders.get(e)?.remove(n)}shouldTrack(e,n){return this._sourceFolders.get(e)?.shouldTrack(n)??!1}getContentSeq(e,n){return this._sourceFolders.get(e)?.getContentSeq(n)}update(e,n,i,s,c){this._sourceFolders.get(e)?.update(n,i,s,c)}markUntrackable(e,n,i,s){this._sourceFolders.get(e)?.markUntrackable(n,i,s)}purge(e,n){this._sourceFolders.get(e)?.purge(n)}*pathsWithBlobNames(){for(let[e,n]of this._sourceFolders)for(let[i,s,c]of n.pathsWithBlobNames())yield[e,n.repoRoot,i,s,c]}*pathsInFolder(e){let n=this._sourceFolders.get(e);n!==void 0&&(yield*n.allPaths())}enablePersist(e,n,i){this._sourceFolders.get(e)?.enablePersist(n,i)}_makeQualifiedPathName(e,n){return new ar(e.repoRoot,n)}trackedFileCount(e){return this._sourceFolders.get(e)?.trackedFileCount??0}getFolderIds(){return Array.from(this._sourceFolders.keys())}},Cp=class extends st{constructor(n,i){super();this.folderRoot=n;this.repoRoot=i}static defaultPersistThreshold=100;_allPathNames=new Map;_trackableFilePaths=new Set;_blobNameToPathName=new Map;_persistState=void 0;_pathStatusChangedEmitter=new ue;_blobNameChangedEmitter=new ue;get onDidChangePathStatus(){return this._pathStatusChangedEmitter.event}get onDidChangeBlobName(){return this._blobNameChangedEmitter.event}get trackedFileCount(){return this._trackableFilePaths.size}shouldTrack(n){let i=this._allPathNames.get(n);return i===void 0?!1:i.fileType==="File"&&i.pathAcceptance.accepted}getContentSeq(n){return this._allPathNames.get(n)?.fileInfo?.contentSeq}insert(n,i,s,c){let u=this._allPathNames.get(n),d=u===void 0||u.fileType!==s||u.pathAcceptance.format()!==c.format();if(u===void 0)u={entryTS:i,fileType:s,pathAcceptance:c},this._allPathNames.set(n,u);else{let f=u.fileInfo;u.entryTS=i,u.fileType=s,u.pathAcceptance=c,c.accepted||(u.fileInfo=void 0,f?.trackable&&(this._blobNameToPathName.delete(f.blobName),this._publishBlobNameChange(n,f.blobName,void 0),this._markDirty()))}u.fileType==="File"&&u.pathAcceptance.accepted&&u.fileInfo?.trackable!==!1?this._trackableFilePaths.add(n):this._trackableFilePaths.delete(n),d&&this._pathStatusChangedEmitter.fire({relPath:n})}remove(n){let i=this._allPathNames.get(n);if(i!==void 0){if(this._allPathNames.delete(n),this._trackableFilePaths.delete(n),i.fileInfo!==void 0&&i.fileInfo.trackable){let s=i.fileInfo.blobName;this._blobNameToPathName.delete(s),this._publishBlobNameChange(n,s,void 0),this._markDirty()}this._pathStatusChangedEmitter.fire({relPath:n})}}clear(){for(let[n,i]of this._allPathNames)i.fileInfo!==void 0&&i.fileInfo.trackable&&this._publishBlobNameChange(n,i.fileInfo.blobName,void 0);this._allPathNames.clear(),this._trackableFilePaths.clear(),this._blobNameToPathName.clear(),this._markDirty()}update(n,i,s,c){let u=this._allPathNames.get(n);if(u===void 0||u.fileType!=="File"||!u.pathAcceptance.accepted||u.fileInfo!==void 0&&u.fileInfo.contentSeq>i)return;let d=u.fileInfo===void 0?!0:u.fileInfo.trackable,f;u.fileInfo?.trackable&&(f=u.fileInfo.blobName),u.fileInfo={trackable:!0,contentSeq:i,blobName:s,mtime:c},this._trackableFilePaths.add(n),s!==f&&(f!==void 0&&this._blobNameToPathName.delete(f),this._blobNameToPathName.set(s,n),this._publishBlobNameChange(n,f,s),this._markDirty()),(!d||f===void 0)&&this._pathStatusChangedEmitter.fire({relPath:n})}markUntrackable(n,i,s){let c=this._allPathNames.get(n);if(c===void 0||c.fileType!=="File"||!c.pathAcceptance.accepted||c.fileInfo!==void 0&&c.fileInfo.contentSeq>i)return;let u=c.fileInfo;c.fileInfo={trackable:!1,contentSeq:i,reason:s},this._trackableFilePaths.delete(n);let d=!1;if(u===void 0)d=!0;else if(u.trackable===!0){d=!0;let f=u.blobName;this._blobNameToPathName.delete(f),this._publishBlobNameChange(n,f,void 0),this._markDirty()}else d=s!==u.reason;d&&this._pathStatusChangedEmitter.fire({relPath:n})}_makeAbsPath(n){return Ze(this.repoRoot,n)}_publishBlobNameChange(n,i,s){i!==s&&this._blobNameChangedEmitter.fire({absPath:this._makeAbsPath(n),prevBlobName:i,newBlobName:s})}purge(n){let i=new Array;for(let[s,c]of this._allPathNames)c.entryTSvoid this._maybePersist(),i);this.addDisposable({dispose:()=>clearInterval(s)})}async _maybePersist(){if(!(this._persistState===void 0||this._persistState.persisting)){this._persistState.persisting=!0;try{this._persistState.dirtyCount>this._persistState.lastPersistDirtyCount&&await this._persist(this._persistState)}finally{this._persistState.persisting=!1}}}async _persist(n){let i=function*(u){for(let[d,f]of u){let m=f.fileInfo;m?.trackable&&(yield[d,m.mtime,m.blobName])}},s=n.dirtyCount;await n.mtimeCacheWriter.write(i(this._allPathNames.entries())),n.lastPersistDirtyCount=s}};var Al=require("fs");var kp=class{_onDidCreate=new ue;_onDidChange=new ue;_onDidDelete=new ue;logger=Pe("FileSystemWatcher");workspaceFolder;watcher;onDidCreate=this._onDidCreate.event;onDidChange=this._onDidChange.event;onDidDelete=this._onDidDelete.event;constructor(e){this.workspaceFolder=e;let n={recursive:!0,persistent:!0};this.watcher=(0,Al.watch)(e,n,(i,s)=>this.listener(i,s)),this.logger.info(`Filesystem watcher initialized with directory ${e}`)}listener(e,n){if(n===null)return;this.logger.debug(`Received raw filesystem event: ${e} ${n}`);let i=Ze(this.workspaceFolder,n);e==="rename"?this.statThenFire(i):e==="change"&&this.fireEvent(i,"change")}statThenFire(e){(0,Al.existsSync)(e)?this.fireEvent(e,"create"):this.fireEvent(e,"delete")}fireEvent(e,n){this.logger.debug(`Firing filesystem event: ${n} ${e}`),n==="create"?this._onDidCreate.fire(ot.file(e)):n==="change"?this._onDidChange.fire(ot.file(e)):n==="delete"&&this._onDidDelete.fire(ot.file(e))}dispose(){this.watcher.close()}},Tp=class{onDidCreate=new ue().event;onDidChange=new ue().event;onDidDelete=new ue().event;dispose(){}};function IT(t){try{return new kp(t)}catch(e){let n=Pe("FileSystemWatcher");return e instanceof Error?(n.error(`Failed to create filesystem watcher: ${e.message}`),n.error(`Stack trace: ${e.stack}`)):n.error(`Failed to create filesystem watcher: ${String(e)}`),n.error("Falling back to dummy filesystem watcher"),new Tp}}var Rp=class extends yi{constructor(n){super();this.reason=n}format(){return this.reason}},Nl=class extends st{constructor(n,i,s,c,u){super();this.folderName=n;this.folderRoot=i;this.repoRoot=s;this._pathFilter=c;this._workspaceFolder=u;this._logger=Pe(`PathNotifier[${i}]`)}_pathFoundEmitter=new ue;_pathCreatedEmitter=new ue;_pathChangedEmitter=new ue;_pathDeletedEmitter=new ue;_logger;_filesystemWatcherCreated=!1;_stopping=!1;_deletedPaths=void 0;get onDidFindPath(){return this._pathFoundEmitter.event}get onDidCreatePath(){return this._pathCreatedEmitter.event}get onDidChangePath(){return this._pathChangedEmitter.event}get onDidDeletePath(){return this._pathDeletedEmitter.event}dispose(){this._stopping=!0,super.dispose()}async enumeratePaths(){if(this._stopping)return;this._deletedPaths=new Set,this._workspaceFolder!==void 0&&!this._filesystemWatcherCreated&&(this._createFilesystemWatcher(this._workspaceFolder),this._filesystemWatcherCreated=!0);let n=new is(this.folderName,ot.file(this.folderRoot),ot.file(this.repoRoot),this._pathFilter);for await(let[s,c,u,d]of n){if(this._stopping)return;this._pathFoundEmitter.fire({relPath:c,fileType:u,acceptance:d})}if(this._stopping)return;let i=this._deletedPaths;this._deletedPaths=void 0;for(let s of i)this._pathDeletedEmitter.fire(s);return n.stats}_handlePathChanged(n,i){let s=this._getRelPath(n);if(s===void 0)return;let c,u;try{c=Vi(Jt(n)).type,u=this._pathFilter.getPathInfo(s,c)}catch(f){c="Other",u=new Rp(Ce(f))}let d=i?"created":"changed";this._logger.verbose(`${c} ${d}: ${s}, acceptance = ${u.format()}`),this._deletedPaths?.delete(s),i?this._pathCreatedEmitter.fire({relPath:s,fileType:c,acceptance:u}):this._pathChangedEmitter.fire({relPath:s,fileType:c,acceptance:u})}_handlePathDeleted(n){let i=this._getRelPath(n);i!==void 0&&(this._logger.verbose(`Path deleted: ${i}`),this._deletedPaths!==void 0?this._deletedPaths?.add(i):this._pathDeletedEmitter.fire(i))}_getRelPath(n){if(this._stopping)return;let i=$r(n);if(i!==void 0)return ga(this.repoRoot,i)}_createFilesystemWatcher(n){let i=IT(n.uri.fsPath);this.addDisposables(i,i.onDidCreate(s=>this._handlePathChanged(s,!0)),i.onDidChange(s=>this._handlePathChanged(s,!1)),i.onDidDelete(s=>this._handlePathDeleted(s)))}};async function MT(t,e,n,i){let s=Jt(t),c=Jt(e),u=new Array;u.push(s);let d=new Array,f=200,m=Date.now(),y;for(;(y=u.pop())!==void 0&&(i===void 0||d.length=f&&(await new Promise(L=>setTimeout(L,0)),m=Date.now());let D=Ur(c,y),N=n.makeLocalPathFilter(D),A=na(y);for(let[L,B]of A){if(Date.now()-m>=f&&(await new Promise(P=>setTimeout(P,0)),m=Date.now()),L==="."||L==="..")continue;let F=Ze(D,L,B==="Directory");N.acceptsPath(F,B)&&(B==="File"?d.push(F):B==="Directory"&&u.push(Ze(y,L)))}}return Promise.resolve(d)}var ql=class t{constructor(e,n,i,s){this._apiServer=e;this._pathHandler=n;this._fileExtensions=i;this._maxTrackedFiles=s}static verifyBatchSize=1e3;async describe(e,n,i){let s=await this._getAllPathNames(e,n,i);if(s.length>this._maxTrackedFiles)return{trackable:!1};let c=s.length,u=await this._chooseBlobNameSample(n,s);if(u.length===0)return{trackable:!0,trackableFiles:0,uploadedFraction:1};let d=await this._apiServer.findMissing(u),f=u.length,m=Math.min(d.unknownBlobNames.length,f);return{trackable:!0,trackableFiles:c,uploadedFraction:(f-m)/f}}async _getAllPathNames(e,n,i){let s=await wl(ot.file(e),ot.file(n),new ns(i),this._fileExtensions);return await MT(ot.file(e),ot.file(n),s,this._maxTrackedFiles+1)}async _chooseBlobNameSample(e,n){let i=new Array;for(;i.length0;){let s=Math.floor(Math.random()*n.length),c=n[s];n[s]=n[n.length-1],n.pop();let u=Ze(e,c),d=await this._pathHandler.readText(u);if(d.type!=="text")continue;let f=this._pathHandler.calculateBlobName(c,d.contents);i.push(f)}return i}};var Ol=class t extends st{constructor(n,i){super();this._apiServer=n;this._workspaceManager=i;this._logger=Pe("UnknownBlobHandler"),this._toProbe=new Hn(this._probe.bind(this)),this.addDisposable(this._toProbe),this._probeWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._probeWaiters),this._probeWaitersKicker=new sr(this._probeWaiters,t.probeRetryWaitMs),this.addDisposable(this._probeWaitersKicker),this._longWaiters=new Hn(this._enqueueForProbe.bind(this)),this.addDisposable(this._longWaiters),this._longWaitersKicker=new sr(this._longWaiters,t.longRetryWaitMs),this.addDisposable(this._longWaitersKicker)}static probeBatchSize=1e3;static probeRetryWaitMs=5*1e3;static probePatienceMs=2*60*1e3;static longRetryWaitMs=60*1e3;_toProbe;_currentBatch=new Map;_probeWaiters;_probeWaitersKicker;_longWaiters;_longWaitersKicker;_logger;enqueue(n){for(let[i,s]of n)this._logger.verbose(`enqueue: ${s.rootPath}:${s.relPath}`),this._toProbe.insert(i,{qualifiedPath:s,startTime:Date.now()});this._toProbe.kick()}_grabCurrentBatch(){if(this._currentBatch.size===0)return;let n=this._currentBatch;return this._currentBatch=new Map,n}async _probe(n){if(n!==void 0){let[u,d]=n;if(this._workspaceManager.getBlobName(d.qualifiedPath)!==u||(this._currentBatch.set(u,d),this._currentBatch.sizethis._apiServer.findMissing(s),this._logger)}catch{}if(c===void 0)for(let[u,d]of i)this._addRetryWaiter(u,d);else{this._logger.verbose(`find-missing reported ${c.nonindexedBlobNames.length} nonindexed blob names`),c.nonindexedBlobNames.length>0&&Si(this._logger,"verbose",c.nonindexedBlobNames,5);let u=new Set(c.unknownBlobNames),d=new Set(c.nonindexedBlobNames);for(let[f,m]of i)u.has(f)?this._workspaceManager.notifyBlobMissing(m.qualifiedPath,f):d.has(f)&&this._addRetryWaiter(f,m)}}_enqueueForProbe(n){if(n===void 0)this._toProbe.kick();else{let[i,s]=n;this._logger.verbose(`probe enqueue: ${s.qualifiedPath.rootPath}:${s.qualifiedPath.relPath}: ${i}`),this._toProbe.insert(i,s)}return Promise.resolve()}_addRetryWaiter(n,i){Date.now()-i.startTimeawait this._runSerializedOperation(N)),this.addDisposables(this._operationQueue,{dispose:()=>this._disposeTracker()})}_operationQueue;_tracker;_newlyTracked=!1;_initialEnumerationComplete=!1;_initialSyncComplete=!1;_stopped=!1;dispose(){this._stopped=!0,super.dispose()}get stopped(){return this._stopped}get type(){return this.workspaceFolder===void 0?1:0}_disposeTracker(){this._tracker?.dispose(),this._tracker=void 0}setTracker(n){if(this.stopped)throw new Error("Source folder has been disposed");this._disposeTracker(),this._tracker=n}get tracker(){return this._tracker}get initialEnumerationComplete(){return this._initialEnumerationComplete}setInitialEnumerationComplete(){this._initialEnumerationComplete=!0}get initialSyncComplete(){return this._initialSyncComplete}setInitialSyncComplete(){this._initialSyncComplete=!0}relativePathName(n){if(or(this.folderRoot,n))return ha(this.repoRoot,n)}acceptsPath(n){return this._tracker===void 0?!1:this._tracker.pathFilter.acceptsPath(n)}async enqueueSerializedOperation(n){this._operationQueue.insert(n),await this._operationQueue.kick()}async _runSerializedOperation(n){n!==void 0&&(!this._initialEnumerationComplete||this._stopped||await n())}},Fp=class extends st{constructor(n,i,s){super(s);this.pathFilter=n;this.pathNotifier=i}};var Gj=new Set(["home directory","too large"]),Qj=new Set(["nested"]);function va(t){return Gj.has(t)}function AT(t){return Qj.has(t)}function cr(t){return t.containingFolderRoot!==void 0?"nested":t.isHomeDir?"home directory":t.folderQualification!==void 0&&!t.folderQualification.trackable?"too large":t.syncingPermission==="denied"?"permission denied":t.syncingPermission==="granted"?"trackable":t.folderQualification===void 0?"qualifying":"permission needed"}var Bl=class t extends st{constructor(n,i,s,c,u,d,f,m,y=new Array,x){super();this._storageUriProvider=n;this._apiServer=i;this._configListener=s;this._featureFlagManager=c;this._clientMetricsReporter=u;this._completionServer=d;this._blobNameCalculator=f;this._maxUploadSizeBytes=m;this._enableFileLimitsForSyncingPermission=this._featureFlagManager.currentFlags.enableFileLimitsForSyncingPermission,this._maxTrackableFiles=this._featureFlagManager.currentFlags.maxTrackableFileCount,this._maxTrackableFilesWithoutPermission=Math.min(this._featureFlagManager.currentFlags.maxTrackableFileCountWithoutPermission,this._maxTrackableFiles);let D=Math.min(this._featureFlagManager.currentFlags.minUploadedPercentageWithoutPermission,100);if(this._verifyFolderIsSourceRepo=this._featureFlagManager.currentFlags.verifyFolderIsSourceRepo,this._minUploadedFractionWithoutPermission=D*.01,this._refuseToSyncHomeDirectories=this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories,this._useCheckpointManagerContext=!0,this._validateCheckpointManagerContext=!1,this._folderEnumeratedEmitter=this.addDisposable(new ue),this._folderSyncedEmitter=this.addDisposable(new ue),this._syncingProgressEmitter=this.addDisposable(new ue),this._syncingStateEmitter=this.addDisposable(new ue),this._sourceFoldersChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._sourceFolderContentsChangedEmitter=this.addDisposable(new ue),this._fileChangedEmitter=this.addDisposable(new ue),this._textDocumentOpenedEmitter=this.addDisposable(new ue),this._textDocumentClosedEmitter=this.addDisposable(new ue),this._textDocumentChangedEmitter=this.addDisposable(new ue),this._fileDeletedEmitter=this.addDisposable(new ue),this._fileWillRenameEmitter=this.addDisposable(new ue),this._featureFlagManager.currentFlags.bypassLanguageFilter)this._fileExtensions=void 0;else{let A=new Set;for(let L of y)for(let B of L.extensions)A.add(B);this._fileExtensions=A}this._pathHandler=new Il(this._maxUploadSizeBytes,rT()),this._pathMap=this.addDisposable(new Ml),this._openFileManager=this.addDisposable(new El(this._configListener,new Fl(this._apiServer,this._completionServer,this._configListener,this._blobNameCalculator,this._pathMap,this._sequenceGenerator)));let N=x?.blobsCheckpointThreshold;this._blobsCheckpointManager=this.addDisposable(new kl(this._apiServer,this._featureFlagManager,this._pathMap.onDidChangeBlobName,N)),this._unknownBlobHandler=this.addDisposable(new Ol(this._apiServer,this)),this._sourceFolderReconciler=this.addDisposable(new xl(()=>this._reconcileSourceFolders())),this._sourceFolderDescriber=new ql(this._apiServer,this._pathHandler,this._fileExtensions,this._maxTrackableFiles),this.addDisposable(Rt.onDidChangeWorkspaceFolders(this._handleWorkspaceFolderChangeEvent.bind(this))),this.addDisposable(Rt.onDidChangeTextDocument(this._notifyTextDocumentChanged.bind(this))),this.addDisposable(Rt.onDidOpenTextDocument(this._notifyTextDocumentOpened.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(this._notifyTextDocumentClosed.bind(this))),this.addDisposable(Rt.onDidCloseTextDocument(A=>{this._notifyDocumentClosed(A)})),this.addDisposable(Rt.onWillRenameFiles(A=>{this._notifyWillRenameFile(A)})),this.addDisposable(new rr(()=>this._disposeSourceFolders())),this._registerInitialSourceFolders(),this._awaitInitialSourceFolders()}static augmentRootName=".augmentroot";static ignoreSources(n){return[new pa(".gitignore"),new bl(n),new pa(".augmentignore")]}static pathMapPersistFrequencyMs=6e4;static defaultPathAccept=new wi;static _textEncoder=new TextEncoder;_initialSourceFolders=new Set;_registeredSourceFolders=new Map;_trackedSourceFolders=new Map;_fileExtensions;_pathMap;_sequenceGenerator=new Sl;_pathHandler;_openFileManager;_blobsCheckpointManager;_unknownBlobHandler;_sourceFolderDescriber;_logger=Pe("WorkspaceManager");_folderEnumeratedEmitter;_folderSyncedEmitter;_syncingProgressEmitter;_syncingPermissionInitialized=!1;_sourceFolderReconciler;_syncingStateEmitter;_sourceFoldersChangedEmitter;_sourceFolderContentsChangedEmitter;_fileChangedEmitter;_textDocumentOpenedEmitter;_textDocumentClosedEmitter;_textDocumentChangedEmitter;_fileDeletedEmitter;_fileWillRenameEmitter;_lastChatResponse=void 0;_enableFileLimitsForSyncingPermission;_maxTrackableFiles;_maxTrackableFilesWithoutPermission;_verifyFolderIsSourceRepo;_minUploadedFractionWithoutPermission;_refuseToSyncHomeDirectories;_useCheckpointManagerContext;_validateCheckpointManagerContext;_stopping=!1;dispose(){this._stopping=!0,super.dispose()}get verifyFolderIsSourceRepo(){return this._verifyFolderIsSourceRepo}get minUploadedFractionWithoutPermission(){return this._minUploadedFractionWithoutPermission}get refuseToSyncHomeDirectories(){return this._refuseToSyncHomeDirectories}get initialFoldersEnumerated(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return va(s)||AT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialEnumerationComplete})}async awaitInitialFoldersEnumerated(){for(;!this.initialFoldersEnumerated;)await sa(this._folderEnumeratedEmitter.event)}get initialFoldersSynced(){return Array.from(this._initialSourceFolders).every(n=>{let i=this._registeredSourceFolders.get(n);if(i===void 0)return!0;let s=cr(i);return va(s)||AT(s)||s==="permission denied"?!0:this._trackedSourceFolders.get(n)?.sourceFolder?.initialSyncComplete})}async awaitInitialFoldersSynced(){for(;!this.initialFoldersSynced;)await sa(this._folderSyncedEmitter.event)}get syncingEnabledState(){if(!this._syncingPermissionInitialized)return"initializing";let n=0;for(let[i,s]of this._registeredSourceFolders){let c=cr(s);if(va(c)||c==="permission denied")return"disabled";c==="permission needed"&&n++}return n>0?"partial":"enabled"}get onDidChangeSyncingState(){return this._syncingStateEmitter.event}get onDidChangeSourceFolders(){return this._sourceFoldersChangedEmitter.event}get onDidChangeSourceFolderContents(){return this._sourceFolderContentsChangedEmitter.event}get onDidChangeFile(){return this._fileChangedEmitter.event}get completionServer(){return this._completionServer}_disposeSourceFolders(){this._registeredSourceFolders.forEach(n=>{n.cancel?.cancel(),n.cancel?.dispose(),n.cancel=void 0}),this._trackedSourceFolders.forEach(n=>n.sourceFolder?.dispose()),this._trackedSourceFolders.clear()}getSyncingProgress(){let n=new Array;return this._trackedSourceFolders.forEach((i,s)=>{n.push(this._getSyncingProgress(s,i.sourceFolder))}),n}_getSyncingProgress(n,i){let s=i?.initialEnumerationComplete?{newlyTracked:i._newlyTracked,trackedFiles:this._pathMap.trackedFileCount(i.folderId),backlogSize:i.diskFileManager.itemsInFlight}:void 0;return{folderRoot:n,progress:s}}_isHomeDir(n){return this._featureFlagManager.currentFlags.refuseToSyncHomeDirectories?wT(n):!1}_registerInitialSourceFolders(){let n=new Array;Rt.workspaceFolders?.forEach(s=>{let c=Ll(s.uri);c!==void 0&&this._mtimeCacheExists(c)&&n.push(c)});let i=new Array;Rt.workspaceFolders?.forEach(s=>{let c=s.name,u=Ll(s.uri);if(u===void 0)return;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._initialSourceFolders.add(u),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s}),d==="granted"&&i.push(u)})}_mtimeCacheExists(n){let i=this._computeCacheDirPath(n);return Dl(i)}async _awaitInitialSourceFolders(){let n=Date.now();this._kickSourceFolderReconciler(),await this.awaitInitialFoldersSynced(),this._reportWorkspaceStartup(Date.now()-n),this._folderSyncedEmitter.fire()}_handleWorkspaceFolderChangeEvent(n){for(let s of n.added){let c=s.name,u=Ll(s.uri);if(u===void 0)continue;let d="granted";this._logger.info(`Adding workspace folder ${c}; folderRoot = ${u}; syncingPermission = ${d}`),this._registeredSourceFolders.set(u,{folderName:c,isHomeDir:this._isHomeDir(u),folderType:0,syncingPermission:d,workspaceFolder:s})}let i=new Array;for(let s of n.removed){let c=Ll(s.uri);if(c===void 0)continue;this._logger.info(`Removing workspace folder ${c}`);let u=this._registeredSourceFolders.get(c);u!==void 0&&(u.cancel?.cancel(),u.cancel?.dispose(),u.cancel=void 0,this._registeredSourceFolders.delete(c),i.push(c))}this._kickSourceFolderReconciler()}enableSyncing(){this._logger.info("Enabling syncing for all trackable source folders");let n=new Array;this._registeredSourceFolders.forEach((i,s)=>{let c=cr(i);va(c)||c==="qualifying"||(i.syncingPermission="granted",n.push(s))}),this._kickSourceFolderReconciler()}disableSyncing(){this._logger.info("Disabling syncing for all trackable source folders"),this._registeredSourceFolders.forEach(n=>{let i=cr(n);va(i)||(n.syncingPermission="denied")}),this._kickSourceFolderReconciler()}requalifyLargeFolders(){this._registeredSourceFolders.forEach(n=>{n.folderQualification=void 0}),this._kickSourceFolderReconciler()}_kickSourceFolderReconciler(){let n=new Set;for(let[i,s]of this._registeredSourceFolders)if(cr(s)==="trackable"){for(let[u,d]of this._registeredSourceFolders)if(cr(d)==="trackable"&&i!==u&&or(u,i)){n.add(i);break}}for(let[i,s]of this._registeredSourceFolders){if(!n.has(i)){s.containingFolderRoot=void 0;continue}for(let c of this._registeredSourceFolders.keys())if(!(i===c||n.has(c))&&or(c,i)){s.containingFolderRoot!==c&&this._logger.info(`Source folder ${i} will not be tracked. Containing folder: ${c}`),s.containingFolderRoot=c;break}}for(let[i,s]of this._registeredSourceFolders)cr(s)==="qualifying"&&s.cancel===void 0&&this._qualifySourceFolder(i,s);this._syncingStateEmitter.fire(this.syncingEnabledState),this._sourceFoldersChangedEmitter.fire(),this._sourceFolderReconciler.kick()}async _qualifySourceFolder(n,i){let[s,c]=await this._findRepoRoot(n),u,d;if(this._enableFileLimitsForSyncingPermission){d="full",this._logger.info(`Beginning ${d} qualification of source folder ${n}`);let m=new Lr;if(i.cancel=m,u=await this._sourceFolderDescriber.describe(n,s,t.ignoreSources(n)),m.token.isCancellationRequested){this._logger.info(`Cancelled qualification of source folder ${n}`);return}i.cancel=void 0,m.dispose()}else d="phony",this._logger.info(`Beginning ${d} qualification of source folder ${n} per feature flag`),u={trackable:!0,trackableFiles:0,uploadedFraction:1};let f={...u,repoRoot:s,isRepo:c};i.folderQualification=f,f.trackable?(this._logger.info(`Finished ${d} qualification of source folder ${n}: trackable files: ${f.trackableFiles}, uploaded fraction: ${f.uploadedFraction}, is repo: ${f.isRepo}`),f.trackableFiles>this._maxTrackableFilesWithoutPermission?this._logger.info(`Requesting syncing permission because source folder has more than ${this._maxTrackableFilesWithoutPermission} files`):this._verifyFolderIsSourceRepo&&!f.isRepo?this._logger.info("Requesting syncing permission because source folder does not appear to be a source repo"):f.uploadedFractionu._newlyTracked=!1});let x=await this._refreshSourceFolder(u,s);if(x===void 0||u.stopped)return;s.charge("enumerate"),u.setInitialEnumerationComplete(),this._folderEnumeratedEmitter.fire();let D=this._pathMap.onDidChangePathStatus(f);if(D===void 0)return;u.addDisposable(D(A=>{this._sourceFolderContentsChangedEmitter.fire(n)}),!0),this._sourceFoldersChangedEmitter.fire(),await u.diskFileManager.awaitQuiesced(),u.setInitialSyncComplete(),this._folderSyncedEmitter.fire(),s?.charge("await DiskFileManager quiesced");let N=new Rl(d,u.cacheDirPath);this._pathMap.enablePersist(f,N,t.pathMapPersistFrequencyMs),s.charge("enable persist"),this._reportSourceFolderStartup(i.logger,u,s,x)}finally{y.dispose()}}async _createSourceFolder(n,i,s){let c=i.folderName,u=new ir,d=new ir,f=i.folderSpec.folderType===1?void 0:i.folderSpec.workspaceFolder,[m,y]=await this._findRepoRoot(n);if(s.isCancellationRequested)return;let x=this._pathMap.openSourceFolder(n,m);u.add(new rr(()=>this._pathMap.closeSourceFolder(x))),u.addAll(...this._openFileManager.startTrackingFolder(c,x));let D=new Tl(c,this._apiServer,this._pathHandler,this._pathMap);u.add(D);let N=void 0,A=await this._migrateMtimeCache(n,i);return new Dp(c,n,m,f,N,x,D,A,u,d,i.logger)}async _migrateMtimeCache(n,i){let s=this._computeCacheDirPath(n);if(Dl(s))return s;let c=this._computeCacheDirPath(i.folderName);if(!Dl(c))return s;try{i.logger.info(`Migrating mtime cache for ${i.folderName} from "${c}" to "${s}"`),await PT(c,s)}catch(u){i.logger.error(`Failed to migrate mtime cache for ${i.folderName} from "${c}" to "${s}": ${Ce(u)}`)}return s}_computeCacheDirPath(n){return t.computeCacheDirPath(n,this._storageUriProvider.storageUri)}static computeCacheDirPath(n,i){let s=Jt(i),c=oT(t._textEncoder.encode(n));return Ze(s,c)}async refreshSourceFolders(){this.requalifyLargeFolders();let n=Array.from(this._trackedSourceFolders.values()).map(i=>i.sourceFolder).filter(i=>i!==void 0).map(i=>i.enqueueSerializedOperation(async()=>{await this._refreshSourceFolder(i)}));try{await Promise.allSettled(n)}catch(i){this._logger.info(`One or more source folders failed to refresh: ${Ce(i)}`)}}async _refreshSourceFolder(n,i){n.logger.debug(`Refreshing source folder ${n.folderName}`);let s=await this._createSourceFolderTracker(n,i);try{n.setTracker(s)}catch(u){n.logger.info(`Failed to install SourceFolderTracker for ${n.folderName}: ${Ce(u)}`),s.dispose();return}return await this._enumerateSourceFolder(n,i)}async _enumerateSourceFolder(n,i){let s=n.tracker;if(s===void 0)return;let c=this._pathMap.nextEntryTS,u=await s.pathNotifier.enumeratePaths();if(!n.stopped)return i?.charge("enumerate paths"),this._pathMap.purge(n.folderId,c),i?.charge("purge stale PathMap entries"),u}async _createSourceFolderTracker(n,i){let s=new ir,c=await wl(ot.file(n.folderRoot),ot.file(n.repoRoot),new ns(t.ignoreSources(n.folderRoot)),this._fileExtensions);i?.charge("create PathFilter");let u=this._createPathNotifier(n,c);return s.add(u),i?.charge("create PathNotifier"),new Fp(c,u,s)}_createPathNotifier(n,i){let s=new Nl(n.folderName,n.folderRoot,n.repoRoot,i,n.workspaceFolder);return s.addDisposables(s.onDidFindPath(c=>{this._handlePathFound(n,c.relPath,c.fileType,c.acceptance)}),s.onDidCreatePath(c=>{this._handlePathCreated(n,c.relPath,c.fileType,c.acceptance)}),s.onDidChangePath(c=>{c.fileType==="File"&&this._handleFileChanged(n,c.relPath,c.acceptance)}),s.onDidDeletePath(c=>{this._handlePathDeleted(n,c)})),s}async _findRepoRoot(n){let i;return i=await pl(n,t.augmentRootName),i===void 0&&(i=(await ST(n))?.root),i!==void 0?[qT(i),!0]:[n,!1]}_trackOpenDocuments(n){let i=this._openFileManager.getTrackedPaths(n.folderId);for(let s of i)n.acceptsPath(s)||this._openFileManager.stopTracking(n.folderId,s);Rt.textDocuments.forEach(s=>{let c=this._trackDocument(n,s)})}_trackDocument(n,i){let s=$r(i.uri);if(s===void 0)return;let c=n.relativePathName(s);if(c!==void 0&&n.acceptsPath(c))return this._openFileManager.addOpenedDocument({folderId:n.folderId,relPath:c,document:i}),c}_stopTracking(n){if(n.sourceFolder===void 0){let i=n.cancel;i.cancel(),i.dispose(),n.logger.info("Cancelled in-progress tracking of source folder")}else{let i=n.sourceFolder;n.sourceFolder=void 0,i.dispose(),n.logger.info("Stopped tracking source folder")}this._folderSyncedEmitter.fire(),this._folderEnumeratedEmitter.fire()}translateRange(n,i,s){let c=this._resolveAbsPath(n.absPath);if(c===void 0)return;let[u,d]=c;return this._openFileManager.translateRange(u.folderId,d,i,s)}getContext(){if(this._openFileManager===void 0||this._pathMap===void 0)return cs.empty();let n=this._openFileManager.getRecencySummary(this._completionServer.completionParams.chunkSize),i=new Set,s=new Map,c=new Map;for(let[N,A]of n.folderMap){let L=this._pathMap.getRepoRoot(N);L!==void 0&&c.set(L,A);for(let[B,K]of A){i.add(K);let F=this._pathMap.getBlobName(N,B);F!==void 0&&F!==K&&s.set(F,(s.get(F)??0)+1)}}let u=new Set;for(let[N,A]of s)i.has(N)||A===this._pathMap.getUniquePathCount(N)&&u.add(N);let d=new Array;for(let N of n.recentChunks){let A=this._pathMap.getRepoRoot(N.folderId);A!==void 0&&d.push({seq:N.seq,uploaded:N.uploaded,repoRoot:A,pathName:N.pathName,blobName:N.blobName,text:N.text,origStart:N.origStart,origLength:N.origLength,expectedBlobName:N.expectedBlobName})}let f=this._blobsCheckpointManager,m=f!==void 0&&this._useCheckpointManagerContext,y=m&&this._validateCheckpointManagerContext,x;if(!m||y){let N=new Set(i);for(let[B,K,F,P,U]of this._pathMap.pathsWithBlobNames())n.folderMap.get(B)?.has(F)||N.add(U);let A=Array.from(N),L=this._blobNamesToBlobs(A);if(x=new cs(L,d,c,this._lastChatResponse,A),!m)return x}let D=f.getContextAdjusted(i,u);return x!==void 0&&(f.validateMatching(x.blobs,D)||this._clientMetricsReporter.report({client_metric:"blob_context_mismatch",value:1})),new cs(D,d,c,this._lastChatResponse)}getContextWithBlobNames(){let n=this.getContext();return n.blobNames!==void 0?n:{...n,blobNames:this._blobsCheckpointManager.expandBlobs(n.blobs)}}recordChatReponse(n){this._lastChatResponse={seq:this._sequenceGenerator.next(),text:n}}_blobNamesToBlobs(n){return this._blobsCheckpointManager===void 0?{checkpointId:void 0,addedBlobs:n,deletedBlobs:[]}:this._blobsCheckpointManager.blobsPayload(n)}handleUnknownBlobs(n,i){if(i.length===0)return;let s=new Set(i),c=new Array;for(let[u,d]of n.trackedPaths)if(u!==void 0)for(let[f,m]of d)s.has(m)&&(c.push([m,new ar(u,f)]),s.delete(m));for(let u of s){let d=this._pathMap.getAnyPathName(u);d!==void 0&&c.push([u,d])}this._unknownBlobHandler.enqueue(c)}handleUnknownCheckpoint(n,i){this._logger.info(`received checkpoint not found for request id ${n}`),this._blobsCheckpointManager.resetCheckpoint(),this._blobsCheckpointManager.updateBlob("")}notifyBlobMissing(n,i){let s=this._pathMap.reportMissing(i);if(s!==void 0){let u=this._getSourceFolder(s.rootPath);if(u!==void 0){u.diskFileManager.ingestPath(u.folderId,n.relPath);return}}let c=this._getSourceFolder(n.rootPath);c!==void 0&&this._openFileManager.handleMissingBlob(c.folderId,n.relPath,i)}_getSourceFolder(n){return this._trackedSourceFolders.get(n)?.sourceFolder}resolvePathName(n){let i=typeof n=="string"?n:$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return new ar(c.repoRoot,u)}getFolderRoot(n){let i=typeof n=="string"?n:$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;return c.folderRoot}safeResolvePathName(n){let i=typeof n=="string"?n:$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return new ar("",i);let[c,u]=s;return new ar(c.repoRoot,u)}_resolveAbsPath(n){for(let[i,s]of this._trackedSourceFolders){if(s.sourceFolder===void 0)continue;let c=s.sourceFolder.relativePathName(n);if(c!==void 0)return[s.sourceFolder,c]}}hasFile(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];return i===void 0||s===void 0?!1:this._pathMap.hasFile(i.folderId,n.relPath)}getBlobName(n){let[i,s]=this._resolveAbsPath(n.absPath)??[void 0,void 0];if(!(i===void 0||s===void 0))return this._openFileManager.getBlobName(i.folderId,n.relPath)??this._pathMap.getBlobName(i.folderId,n.relPath)}getAllPathNames(n){return this._pathMap.getAllPathNames(n)}getAllQualifiedPathInfos(n){return this._pathMap.getAllQualifiedPathInfos(n)}getAllQualifiedPathNames(n){return this._pathMap.getAllQualifiedPathNames(n)}getAllPathInfo(n){return this._pathMap.getAllPathInfo(n)}_handlePathFound(n,i,s,c){let u=n.folderId;this._pathMap.insert(u,i,s,c),s==="File"&&c.accepted&&n.diskFileManager.ingestPath(u,i)}_handlePathCreated(n,i,s,c){let u=n.folderId;if(this._pathMap.insert(u,i,s,c),!!c.accepted){if(s==="File")n.diskFileManager.ingestPath(n.folderId,i),this._emitFileNotification(u,i,"disk");else if(s==="Directory"){let d=n.tracker?.pathFilter;if(d===void 0)return;n.enqueueSerializedOperation(()=>this._handleDirectoryCreated(n,i,d))}}}_handleFileChanged(n,i,s){let c=n.folderId;this._pathMap.insert(c,i,"File",s),s.accepted&&(n.diskFileManager.ingestPath(c,i),this._emitFileNotification(c,i,"disk"))}_handlePathDeleted(n,i){let s=n.folderId,c=this._pathMap.getPathInfo(s,i);if(c===void 0)return;this._deletePath(n.folderId,i);let[u,d]=c;d.accepted&&(u==="Directory"?this._handleDirectoryRemoved(n,i):u==="File"&&this._emitFileNotification(s,i,"disk"))}_deletePath(n,i){this._pathMap.remove(n,i)}async _handleDirectoryCreated(n,i,s){n.logger.info(`Directory created: ${i}`);let c=ot.file(n.repoRoot),u=new is(n.folderName,Tt.joinPath(c,i),c,s);for await(let[d,f,m,y]of u)this._handlePathFound(n,f,m,y)}_handleDirectoryRemoved(n,i){n.logger.info(`Directory removed: ${i}`);let s=n.folderId,c=new Array;for(let[u]of this._pathMap.pathsInFolder(s))ga(i,u)!==void 0&&c.push(u);for(let u of c)this._deletePath(s,u)}_notifyTextDocumentChanged(n){let i=this._uriToPathInfo(n.document.uri);if(i===void 0)return;let[s,c]=i;this._openFileManager.handleChangedDocument({folderId:s,relPath:c,event:n}),this._emitFileNotification(s,c,"buffer"),this._textDocumentChangedEmitter.fire({folderId:s,relPath:c,event:n})}_notifyTextDocumentOpened(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentOpenedEmitter.fire({folderId:s,relPath:c,document:n})}_notifyTextDocumentClosed(n){let i=this._uriToPathInfo(n.uri);if(i===void 0)return;let[s,c]=i;this._textDocumentClosedEmitter.fire({folderId:s,relPath:c,document:n})}_uriToPathInfo(n){if(n===void 0)return;let i=$r(n);if(i===void 0)return;let s=this._resolveAbsPath(i);if(s===void 0)return;let[c,u]=s;if(c.acceptsPath(u))return[c.folderId,u]}_notifyWillRenameFile(n){n.files.forEach(i=>{let s=this._resolveAbsPath(i.oldUri.fsPath),c=this._resolveAbsPath(i.newUri.fsPath);if(s===void 0||c===void 0)return;let[u,d]=s,[f,m]=c;if(u.folderId!==f.folderId){this._logger.debug(`[WARN] Rename should not cause a file to move between source folders. old file: ${s[1]} new file: ${c[1]} old source folder: ${u.folderName} new source folder: ${f.folderName}`);return}this._fileWillRenameEmitter.fire({folderId:u.folderId,oldRelPath:d,newRelPath:m,type:Vi(i.oldUri.fsPath).type})})}_notifyDocumentClosed(n){let i=n.uri,s=$r(i);if(s===void 0)return;let c=this._resolveAbsPath(s);if(c===void 0)return;let[u,d]=c;this._openFileManager.handleClosedDocument({folderId:u.folderId,relPath:d,document:n})}_emitFileNotification(n,i,s){this._fileChangedEmitter.fire({folderId:n,relPath:i,origin:s})}_reportSourceFolderStartup(n,i,s,c){let u=i.diskFileManager.metrics;n.info("Tracking enabled"),n.info(c.format()),n.info(u.format()),n.info(s.format())}_reportWorkspaceStartup(n){this._logger.info(`Workspace startup complete in ${n} ms`)}trackedSourceFolderNames(){return Array.from(this._registeredSourceFolders).filter(([n,i])=>cr(i)==="trackable").map(([n,i])=>({folderRoot:n}))}listSourceFolders(){let n=this.syncingEnabledState==="disabled",i=new Array;for(let[s,c]of this._registeredSourceFolders){if(c.containingFolderRoot!==void 0){let x=c.folderType===0?2:3;i.push({type:x,name:c.folderName,syncingEnabled:!1,folderRoot:s,containingFolderRoot:c.containingFolderRoot});continue}if(c.isHomeDir){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"home directory"});continue}if(c.folderQualification!==void 0&&!c.folderQualification.trackable){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"too large"});continue}if(c.syncingPermission==="denied"){i.push({type:4,name:c.folderName,syncingEnabled:!1,folderRoot:s,reason:"permission not granted"});continue}let u=c.folderType===0?0:1,d=this._trackedSourceFolders.get(s)?.sourceFolder;if(!d?.initialEnumerationComplete){let x=!n&&c.syncingPermission==="granted";i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:x,trackedFileCount:0,containsExcludedItems:!1,containsUnindexedItems:!1,enumerationState:0});continue}let f=!n&&c.syncingPermission==="granted",m=!1,y=!1;for(let[x,D,N,A]of this._pathMap.pathsInFolder(d.folderId))N||(m=!0),D==="File"&&N&&!A&&(y=!0);i.push({name:c.folderName,type:u,folderRoot:s,syncingEnabled:f,trackedFileCount:this._pathMap.trackedFileCount(d.folderId),containsExcludedItems:m,containsUnindexedItems:y,enumerationState:1})}return i}unitTestOnlyGetRepoRoot(n){let i=this._trackedSourceFolders.get(n);if(i!==void 0)return i.sourceFolder?.repoRoot}unitTestOnlySourceFolderBacklog(n){let i=this._trackedSourceFolders.get(n);if(i===void 0)return;let s=i.sourceFolder;if(s!==void 0&&s.initialEnumerationComplete)return s.diskFileManager.itemsInFlight}};var Ul=class t extends st{constructor(n,i,s,c){super();this._extensionContext=n;this._augmentConfigListener=i;this._apiServer=s;this._auth=c;this._completionAcceptanceReporter=new ll(s),this._clientMetricsReporter=new ul(s),this._completionsModel=new cl(this,this._augmentConfigListener,this._clientMetricsReporter)}static modelConfigBackoffMsecMax=3e4;_completionServer=void 0;workspaceManager=void 0;_enableCancel;_defaultModel;_modelInfo;_blobNameCalculator;get modelInfo(){return this._modelInfo}_availableModels=[];_languages=[];get languages(){return this._languages}featureFlagManager=new Zu({fetcher:this._fetchFeatureFlags.bind(this),refreshIntervalMSec:30*60*1e3});_completionAcceptanceReporter;_clientMetricsReporter;enabled=!1;disposeOnDisable=[];_completionsModel;_logger=Pe("AugmentExtension");get completionServer(){return this._completionServer}get completionsModel(){return this._completionsModel}get completionReporter(){return this._completionAcceptanceReporter}get enableInProgress(){return this._enableCancel!==void 0}get ready(){return this.enabled&&!this.enableInProgress}async enable(){if(this.enabled||this.enableInProgress)return;let n=new Lr;this._enableCancel=n;try{await this._enable(n.token)}catch(i){if(this._logger.info(`Unable to enable extension: ${Ce(i)}`),process.env.JEST_WORKER_ID)throw i}finally{n.dispose(),this._enableCancel=void 0}}async _enable(n){if((0,OT.assert)(!this.enabled),this._auth.useOAuth){if(!await this._auth.getSession()){this._logger.info("Auth session not found. Please log in.");return}}else{if(this._logger.info("Using API token"),!this._augmentConfigListener.config.apiToken){this._logger.warn("No API token is configured");return}if(!this._augmentConfigListener.config.completionURL){this._logger.warn("No completion URL is configured");return}}let i;try{if(i=await this._getModelConfig(n),i.models.length===0)throw new Iu;this._defaultModel=i.defaultModel,this._languages=i.languages,this._availableModels=i.models.map(d=>`${d.name} - ${d.internalName}`);let u=this._augmentConfigListener.config.modelName||i.defaultModel;if(this._modelInfo=i.models.find(d=>[d.name,d.internalName].includes(u)||d.name===(0,LT.createHash)("sha256").update(u).digest("hex")),this._modelInfo===void 0)throw new Eu(u);this.featureFlagManager.update(i.featureFlags)}catch(c){if(vt.isAPIErrorWithStatus(c,7))return;if(c instanceof Gi)return;if(c instanceof Jo)return;let u=Ce(c);throw this._logger.error(`Failed to get model config: ${u}`),c}this._completionServer=new sl(this._apiServer,this._modelInfo.completionTimeoutMs,this._modelInfo.suggestedPrefixCharCount,this._modelInfo.suggestedSuffixCharCount);let s=this.featureFlagManager.currentFlags.maxUploadSizeBytes;this._blobNameCalculator=new es(s),this.workspaceManager=new Bl(this._extensionContext,this._apiServer,this._augmentConfigListener,this.featureFlagManager,this._clientMetricsReporter,this._completionServer,this._blobNameCalculator,s,i.languages),this.disposeOnDisable.push(this.workspaceManager);{let c=[this._completionAcceptanceReporter];for(let u of c)u.enableUpload(),this.disposeOnDisable.push(u)}this.enabled=!0}async _fetchFeatureFlags(n){try{return(await this._getModelConfig(n)).featureFlags}catch(i){this._logger.error("Failed to fetch feature flags: ",i);return}}updateModelInfo(n){if(!this._modelInfo)throw new Error("Model info not set");n.suggestedPrefixCharCount!==void 0&&(this._modelInfo.suggestedPrefixCharCount=n.suggestedPrefixCharCount),n.suggestedSuffixCharCount!==void 0&&(this._modelInfo.suggestedSuffixCharCount=n.suggestedSuffixCharCount),this._modelInfo.completionTimeoutMs=n.completionTimeoutMs}async _getModelConfig(n){let i=1e3,s,c=0,u=6;try{for(;;){if(n.isCancellationRequested)throw new Jo;try{this._logger.info("Retrieving model config"),s=await this._apiServer.getModelConfig(),this._logger.info("Retrieved model config")}catch(d){if(this._logger.error("Failed to retrieve model config: ",d),vt.isAPIErrorWithStatus(d,7))throw d;if(d instanceof Gi)throw d;c++}if(n.isCancellationRequested)throw this._logger.info("Model config retrieval cancelled"),new Jo;if(s!==void 0)return this._logger.info("Returning model config"),s;c>=u&&this._logger.warn("Model config retrieval failed"),this._logger.info(`Retrying model config retrieval in ${i} msec`),await $g(i),i=Math.min(i*2,t.modelConfigBackoffMsecMax)}}finally{}}disable(){for(this.enabled=!1;this.disposeOnDisable.length;)this.disposeOnDisable.pop().dispose();this.reset()}reset(){this._enableCancel?.cancel(),this._enableCancel?.dispose(),this._enableCancel=void 0,this.workspaceManager?.dispose(),this.workspaceManager=void 0}};function BT(t){let e=t.get("sessionId");return(e===void 0||!rg(e))&&(e=$s(),t.update("sessionId",e)),e}var me=qk(),on=(0,ke.createConnection)(),Kj=process.env.TEST_TMPDIR?jl.join(process.env.TEST_TMPDIR,"data"):process.env.XDG_DATA_HOME||jl.join(UT.default.homedir(),".local","share"),Jj=jl.join(Kj,"vim-augment"),Wl,Ep,us,Xt,$l=new nl;async function Xj(t,e){us=new rl(t,$l);let n=new dl(t),i=BT(n);me.info(`Session ID: ${i}`),Wl=new tl($l,us,i,e,global.fetch),Ep=new ol(t,$l,Wl,us),Xt=new Ul(t,$l,Wl,us),await Xt.enable()}on.onInitialize(async t=>{me.info("Initializing Language Server");let e=t.initializationOptions?.editor??"unknown",n=t.initializationOptions?.pluginVersion??"unknown",i=t.initializationOptions?.vimVersion??"unknown",s=`Augment.vim/${n} ${e}/${i}`;me.info(`User agent: ${s}`);let c=t.workspaceFolders??[];me.info(`Roots: ${JSON.stringify(c)}`);for(let f of c)me.info(`Root name, URI: ${f.name}, ${f.uri}`);Gk(c);let u;try{u=new Yu(ot.file(Jj))}catch(f){throw me.error(`Error initializing server context storage: ${Ce(f)}`),f}return await Xj(u,s),{capabilities:{completionProvider:{resolveProvider:!1},textDocumentSync:ke.TextDocumentSyncKind.Incremental}}});on.onInitialized(()=>{me.info("Language server initialized")});on.onCompletion(async t=>{if(!Xt?.ready)return me.debug("Not logged in. Please login first."),new ke.ResponseError(401,"Not logged in. Please login first.");let e=Rt.documents.get(t.textDocument.uri);if(!e)return me.warn(`Not tracking the document ${t.textDocument.uri}`),new ke.ResponseError(ke.ErrorCodes.InternalError,`Not tracking the document ${t.textDocument.uri}`);if(Xt?.completionServer===void 0)return me.debug("Completion server is not initialized."),new ke.ResponseError(ke.ErrorCodes.InternalError,"Completion server is not initialized");try{let n=new _i(e),i=new Or(t.position.line,t.position.character),s=await Xt.completionsModel.generateCompletion(n,i);return me.info(`Completion: ${s?.requestId}`),me.debug(`Completion result: ${JSON.stringify(s)}`),[{label:s?.requestId??"",insertText:s?.completions[0]?.completionText??""}]}catch(n){return n instanceof gi?(me.debug(`Completion was cancelled or skipped: ${Ce(n)}`),[]):(me.error(`Error getting completion: ${Ce(n)}`),new ke.ResponseError(ke.ErrorCodes.InternalError,`Error getting completion: ${Ce(n)}`))}});on.onRequest("augment/login",async()=>{try{return us.isLoggedIn?(me.info("Already logged in"),{loggedIn:!0,url:""}):(me.info("Logging in..."),{loggedIn:!1,url:await Ep.startFlow()})}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Ce(t);return me.error(`Error handling augment/login: ${n}`),me.error(`Stack trace: ${e}`),new ke.ResponseError(ke.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/logout",async()=>{try{return await us.removeSession(),Xt?.disable(),me.info("Logged out."),{success:!0}}catch(t){let e=t instanceof Error?t.stack:"No stack trace available",n=Ce(t);return me.error(`Error handling augment/logout: ${n}`),me.error(`Stack trace: ${e}`),new ke.ResponseError(ke.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/token",async t=>{try{await Ep.handleAuthJson(t.code)}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Ce(e);return me.error(`Error handling user code: ${i}`),me.error(`Stack trace: ${n}`),e instanceof SyntaxError?new ke.ResponseError(ke.ErrorCodes.InternalError,"Failed to parse user code. Did you paste the code provided by the sign in page?"):i==="Unknown state"?new ke.ResponseError(ke.ErrorCodes.InternalError,"Could not find sign in state. Did you paste the code into the same prompt where you copied the link and did you navigate to the full sign in URL (it may wrap onto multiple lines)?"):new ke.ResponseError(ke.ErrorCodes.InternalError,"Failed to process user code. Please try again.")}try{return await Xt?.enable(),me.info("Logged in."),{}}catch(e){let n=e instanceof Error?e.stack:"No stack trace available",i=Ce(e);return me.error(`Error enabling extension: ${i}`),me.error(`Stack trace: ${n}`),new ke.ResponseError(ke.ErrorCodes.InternalError,"Failed to process request. See server log for details.")}});on.onRequest("augment/status",()=>{if(!Xt?.ready)return{loggedIn:!1};let t=Xt?.workspaceManager?.getSyncingProgress();if(!t)return{loggedIn:!0};let e=0,n=0;for(let s of t){if(!s.progress)return{loggedIn:!0};s.progress.newlyTracked&&(me.info(`New folder ${s.folderRoot} sync progress: tracked=${s.progress.trackedFiles}, backlog=${s.progress.backlogSize}`),e+=s.progress.trackedFiles,n+=s.progress.trackedFiles-s.progress.backlogSize)}return{loggedIn:!0,syncPercentage:e>0?Math.floor(n/e*100):100}});on.onRequest("augment/chat",async t=>{if(!Xt?.ready)return me.debug("Not logged in. Please login first."),new ke.ResponseError(401,"Not logged in. Please login first.");let e=t.textDocumentPosition.textDocument.uri,n=Rt.documents.get(e);if(n||me.warn(`Not tracking the document ${e}`),Xt?.completionServer===void 0)return me.debug("Completion server is not initialized."),new ke.ResponseError(ke.ErrorCodes.InternalError,"Completion server is not initialized");let i=t.textDocumentPosition.position,s=n?.offsetAt(i)||0,c=n?.getText()||"",u=s,d=c.length-s,f=c.slice(Math.max(0,s-u),s),m=c.slice(s,s+d),y=Xt.completionServer.createRequestId();me.info(`Chat (${y}) requested`),n&&(me.debug(`Document URI: ${n.uri}`),me.debug(`Language ID: ${n.languageId}`)),t.selectedText!==void 0&&me.debug(`Selected text: ${t.selectedText}`);let D=Xt?.workspaceManager?.getContext()?.blobs??{checkpointId:void 0,addedBlobs:[],deletedBlobs:[]},N="";try{let A=await Wl.chatStream(y,t.message,t.history??[],D,[],[],void 0,[],void 0,t.selectedText,f,m,n?.uri,n?.languageId,void 0,!1,void 0,void 0);for await(let L of A){me.debug(`Chat chunk for ${y}: ${L.text}`);let B={requestId:y,text:L.text};await on.sendNotification("augment/chatChunk",B),N+=L.text}}catch(A){return me.error(`Error streaming chat: ${Ce(A)}`),new ke.ResponseError(ke.ErrorCodes.InternalError,`Error streaming chat: ${Ce(A)}`)}return Xt.workspaceManager?.recordChatReponse(N),{requestId:y,text:N}});on.onRequest("augment/pluginVersion",async t=>{if(t.version==="0.0.0")return{version:"0.0.0",isPrerelease:!1};let e=t.version.match(/^(\d+)\.(\d+)\.(\d+)$/);if(!e)return new ke.ResponseError(ke.ErrorCodes.InternalError,`Invalid version format: ${t.version}`);let n=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),c=s===0,u=c?"prerelease":"main";try{let d=`https://api.github.com/repos/augmentcode/augment.vim/commits/${u}`,f=await fetch(d);if(!f.ok)return me.error(`Failed to fetch version: ${f.statusText}`),new ke.ResponseError(ke.ErrorCodes.InternalError,`Failed to fetch plugin version: ${f.statusText}`);let m=await f.json();if(m?.commit?.message&&typeof m.commit.message=="string"){let y=m.commit.message.match(/^Augment Vim v(\d+)\.(\d+)\.(\d+)$/);if(!y)return new ke.ResponseError(ke.ErrorCodes.InternalError,"Unable to parse version from commit message");let x=parseInt(y[1]),D=parseInt(y[2]),N=parseInt(y[3]);return n>x||n===x&&i>D||n===x&&i===D&&s>N?new ke.ResponseError(ke.ErrorCodes.InternalError,`Plugin version ${t.version} is ahead of upstream version ${x}.${D}.${N}`):{version:`${x}.${D}.${N}`,isPrerelease:c}}return new ke.ResponseError(ke.ErrorCodes.InternalError,"Unable to parse message from commit reponse")}catch(d){return me.error(`Error fetching version: ${Ce(d)}`),new ke.ResponseError(ke.ErrorCodes.InternalError,`Failed to fetch plugin version: ${Ce(d)}`)}});on.onNotification("augment/resolveCompletion",t=>{if(me.info(`Completion (${t.requestId}) resolved with accept=${t.accept}`),Xt?.completionReporter===void 0){me.warn("Completion reporter is not yet initialized.");return}Xt.completionReporter.reportResolution(t.requestId,Date.now(),Date.now(),t.accept?0:void 0)});on.onDidOpenTextDocument(t=>{me.debug(`Document opened: ${t.textDocument.uri} ${t.textDocument.version}`);let e=t.textDocument,n=Ni.create(e.uri,e.languageId,e.version,e.text);Rt.documents.add(n),Ag.fire(new _i(n))});on.onDidCloseTextDocument(t=>{me.debug(`Document closed: ${t.textDocument.uri}`);let e=Rt.documents.get(t.textDocument.uri);e&&(Rt.documents.remove(t.textDocument.uri),qg.fire(new _i(e)))});on.onDidChangeTextDocument(t=>{me.debug(`Document changed: ${t.textDocument.uri}`),me.debug(`Document changed params: ${JSON.stringify(t)}`);let e=Rt.documents.get(t.textDocument.uri);if(!e)return;let n=[];for(let s of t.contentChanges){me.debug(`Content change: ${JSON.stringify(s)}`);let c;if("range"in s)c=new bi(s.range.start.line,s.range.start.character,s.range.end.line,s.range.end.character);else{let d=e.positionAt(e.getText().length);c=new bi(0,0,d.line,d.character)}let u={range:c,rangeOffset:e.offsetAt(c.start),rangeLength:e.offsetAt(c.end)-e.offsetAt(c.start),text:s.text};n.push(u),e=Ni.update(e,[s],t.textDocument.version),me.debug(`Updated document (${e.version}): +${e.getText()}`)}Rt.documents.add(e);let i={document:new _i(e),contentChanges:n};Ng.fire(i)});on.listen(); /*! Bundled license information: lodash/lodash.js: From 1994ac8c7e58489f9721f9698e741b3fd3aad232 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 10 Mar 2025 16:59:20 +0000 Subject: [PATCH 17/41] Augment Vim v0.22.0 --- autoload/augment.vim | 31 +++++++++ autoload/augment/chat.vim | 5 +- autoload/augment/client.vim | 47 ++++++++------ autoload/augment/version.vim | 2 +- dist/server.js | 60 ++++++++--------- plugin/augment.vim | 121 +++++++++++++++++++++++++++++------ 6 files changed, 195 insertions(+), 71 deletions(-) diff --git a/autoload/augment.vim b/autoload/augment.vim index 5d64ac6..a6936ee 100644 --- a/autoload/augment.vim +++ b/autoload/augment.vim @@ -147,6 +147,11 @@ function! s:CommandDisable(...) abort endfunction function! s:CommandStatus(...) abort + if !exists('g:augment_initialized') || !g:augment_initialized + call augment#DisplayError('The Augment plugin failed to initialize. See ":Augment log" for more details.') + return + endif + if !s:IsRunning() echohl WarningMsg echo s:NOT_RUNNING_MSG @@ -253,7 +258,14 @@ function! augment#Command(range, args) abort range return endif + " If the plugin failed to initialize, only allow status and log commands let command = split(a:args)[0] + if (!exists('g:augment_initialized') || !g:augment_initialized) + \ && command !=# 'status' && command !=# 'log' + call augment#DisplayError('The Augment plugin failed to initialize. Only `:Augment status` and `:Augment log` commands are available.') + return + endif + for [name, Handler] in items(s:command_handlers) " Note that ==? is case-insensitive comparison if command ==? name @@ -318,3 +330,22 @@ function! augment#Accept(...) abort call feedkeys(fallback, 'nt') endif endfunction + +" Display an error message to the user in addition to logging it +function! augment#DisplayError(message) abort + " If we have already entered the editor, display the error message + " immediately. Otherwise, wait for VimEnter. + if v:vim_did_enter + echohl ErrorMsg | echom 'Augment: ' . a:message | echohl None + else + " Shadow the message argument with a script-local variable. This means + " that subsequent calls will override the previous message, which + " should be fine for our use case. + let s:error_message = a:message + augroup augment_error + autocmd! + autocmd VimEnter * echohl ErrorMsg | echom 'Augment: ' . s:error_message | echohl None + augroup END + endif + call augment#log#Error(a:message) +endfunction diff --git a/autoload/augment/chat.vim b/autoload/augment/chat.vim index 46db1dd..a3a9acd 100644 --- a/autoload/augment/chat.vim +++ b/autoload/augment/chat.vim @@ -51,7 +51,10 @@ function! augment#chat#OpenChatPanel() abort setlocal buftype=nofile " Buffer will never be written to a file setlocal nomodifiable " Prevent any modifications setlocal noswapfile " Don't create a swapfile - setlocal winfixbuf " Keep buffer in window when splitting + " NOTE(mpauly): winfixbuf is not available in some subversions of vim 9.1 + if exists('&winfixbuf') + setlocal winfixbuf " Keep buffer in window when splitting + endif setlocal bufhidden=hide " When buffer is abandoned, hide it setlocal nobuflisted " Hide from :ls setlocal wrap " Wrap long lines diff --git a/autoload/augment/client.vim b/autoload/augment/client.vim index 1c4240e..d17d1ce 100644 --- a/autoload/augment/client.vim +++ b/autoload/augment/client.vim @@ -8,11 +8,13 @@ let s:AUGMENT_ERROR_UNAUTHORIZED = 401 let s:client = {} -" If provided, launch the server from a user-provided command -if exists('g:augment_job_command') - let s:job_command = g:augment_job_command -else - let server_file = expand(':h:h:h') . '/dist/server.js' +function! augment#client#GetJobCommand() abort + " If provided, launch the server from a user-provided command + if exists('g:augment_job_command') + return g:augment_job_command + endif + + let server_file = expand('