@github/copilot-language-server 1.537.4 → 1.537.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +2 -2
- package/package.json +8 -8
package/dist/main.js
CHANGED
|
@@ -1705,7 +1705,7 @@ ${y.join(`
|
|
|
1705
1705
|
`),ae+=ve}),ae}a(re,"_batch");function le(J){var ae=Mcn;try{Ie(J),ae=v[A$e](J)}catch{}return ae}a(le,"_serialize");function Le(J){var ae=J||Df().event;ae.type!=="beforeunload"&&(D=!0,v[W1e](D)),Be(2,2)}a(Le,"_handleUnloadEvents");function Se(J){D=!1,v[W1e](D)}a(Se,"_handleShowEvents");function Ie(J){J.ext&&J.ext[t3t]&&delete J.ext[t3t],J.ext&&J.ext[l$e]&&J.ext[l$e].id&&delete J.ext[l$e].id,P&&(J.ext=QO(J.ext),J.baseData&&(J.baseData=QO(J.baseData)),J.data&&(J.data=QO(J.data)))}a(Ie,"_cleanEvent");function Te(J,ae){if(J[K1e]||(J[K1e]=0),J[rq]||(J[rq]=1),Ie(J),J[QK]){if(E||l)J[rq]=3,J[QK]=!1;else if(v){P&&(J=QO(J)),v[_$e](nq.create(J[pI],[J]),J[QK]===!0?1:J[QK],3);return}}var ve=J[rq],Pe=f,Ve=h;ve===4&&(Pe=u,Ve=d);var Ye=!1;if(Pe<Ve)Ye=!Re(J,ae);else{var ut=1,yt=cMo;ve===4&&(ut=4,yt=1),Ye=!0,Fe(J[pI],J[rq],ut,yt)&&(Ye=!Re(J,ae))}Ye&&Ue(jK,[J],NO.QueueFull)}a(Te,"_addEventToQueues"),$.setEventQueueLimits=function(J,ae){n.eventsLimitInMem=h=BK(J)?J:m3t,n[d3t]=T=BK(ae)?ae:0,He();var ve=f>J;if(!ve&&w>0)for(var Pe=1;!ve&&Pe<=3;Pe++){var Ve=S[Pe];Ve&&Ve[xE]&&Ct(Ve[xE],function(Ye){Ye&&Ye[gp]()>=w&&(ve=!0)})}Me(!0,ve)},$.pause=function(){fe(),l=!0,v&&v.pause()},$.resume=function(){l=!1,v&&v.resume(),K()},$._loadTransmitProfiles=function(J){jt(),en(J,function(ae,ve){var Pe=ve[is];if(Pe>=2){var Ve=Pe>2?ve[2]:0;if(ve.splice(0,Pe-2),ve[1]<0&&(ve[0]=-1),ve[1]>0&&ve[0]>0){var Ye=ve[0]/ve[1];ve[0]=Sin(Ye)*ve[1]}Ve>=0&&ve[1]>=0&&Ve>ve[1]&&(Ve=ve[1]),ve[Tg](Ve),m[ae]=ve}})},$.flush=function(J,ae,ve){J===void 0&&(J=!0);var Pe;if(!l)if(ve=ve||1,J)ae||(Pe=Zd(function(Ye){ae=Ye})),c==null?(fe(),st(1,0,ve),c=ee(function(){c=null,vt(ae,ve)},0)):s[Tg](ae);else{var Ve=fe();te(1,1,ve),ae&&ae(),Ve&&K()}return Pe},$.setMsaAuthTicket=function(J){v.addHeader(H1e,J)},$.setAuthPluginHeader=function(J){v.addHeader(XFt,J)},$.removeAuthPluginHeader=function(){v.removeHeader(XFt)},$.hasEvents=X,$._setTransmitProfile=function(J){g!==J&&m[J]!==void 0&&(fe(),g=J,K())},zQ($,function(){return v},["addResponseHandler"]);function te(J,ae,ve){var Pe=st(J,ae,ve);return v[Qle](ae,ve),Pe}a(te,"_sendEventsForLatencyAndAbove");function X(){return f>0}a(X,"_hasEvents");function K(){if(R>=0&&st(R,0,x)&&v[Qle](0,x),u>0&&!y&&!l){var J=m[g][2];J>=0&&(y=ee(function(){y=null,te(4,0,1),K()},J))}var ae=m[g][1];!A&&!c&&ae>=0&&!l&&(X()?A=ee(function(){A=null,te(_===0?3:1,0,1),_++,_%=2,K()},ae):_=0)}a(K,"_scheduleTimer"),$[T$e]=function(){E<lMo&&(E++,fe(),K())},$._clearBackOff=function(){E&&(E=0,fe(),K())};function he(){n=null,o=!1,s=[],c=null,l=!1,u=0,d=500,f=0,h=m3t,m={},g=Q1e,A=null,y=null,E=0,_=0,S={},T=0,q=!1,w=0,R=-1,x=null,P=!0,D=!1,N=Lcn,M=Bcn,B=null,H=null,W=null,Y=!1,Q=Hle(),v=new Dcn(Ocn,Ncn,uMo,{requeue:se,send:me,sent:Z,drop:_e,rspFail:Ge,oth:qe}),F(),ne(),He()}a(he,"_initDefaults");function ee(J,ae){ae===0&&E&&(ae=1);var ve=1e3;return E&&(ve=I$e(E-1)),Q.set(J,ae*ve)}a(ee,"_createTimer");function fe(){return A!==null?(A.cancel(),A=null,_=0,!0):!1}a(fe,"_clearScheduledTimer");function Be(J,ae){fe(),c&&(c.cancel(),c=null),l||te(1,J,ae)}a(Be,"_releaseAllQueues");function ne(){S[4]={batches:[],iKeyMap:{}},S[3]={batches:[],iKeyMap:{}},S[2]={batches:[],iKeyMap:{}},S[1]={batches:[],iKeyMap:{}}}a(ne,"_clearQueues");function de(J,ae,ve){var Pe=S[ae];Pe||(ae=1,Pe=S[ae]);var Ve=Pe.iKeyMap[J];return!Ve&&ve&&(Ve=nq.create(J),Pe.batches[Tg](Ve),Pe.iKeyMap[J]=Ve),Ve}a(de,"_getEventBatch");function Me(J,ae){v[V1e]()&&!E&&(T>0&&f>T&&(ae=!0),ae&&c==null&&$.flush(J,function(){},20))}a(Me,"_performAutoFlush");function Re(J,ae){P&&(J=QO(J));var ve=J[rq],Pe=de(J[pI],ve,!0);return Pe.addEvent(J)?(ve!==4?(f++,ae&&J[K1e]===0&&Me(!J.sync,w>0&&Pe[gp]()>=w)):u++,!0):!1}a(Re,"_addEventToProperQueue");function Fe(J,ae,ve,Pe){for(;ve<=ae;){var Ve=de(J,ae,!0);if(Ve&&Ve[gp]()>0){var Ye=Ve[zO](0,Pe),ut=Ye[gp]();if(ut>0)return ve===4?u-=ut:f-=ut,Qe(jK,[Ye],NO.QueueFull),!0}ve++}return tt(),!1}a(Fe,"_dropEventWithLatencyOrLess");function tt(){for(var J=0,ae=0,ve=a(function(Ve){var Ye=S[Ve];Ye&&Ye[xE]&&Ct(Ye[xE],function(ut){Ve===4?J+=ut[gp]():ae+=ut[gp]()})},"_loop_1"),Pe=1;Pe<=4;Pe++)ve(Pe);f=ae,u=J}a(tt,"_resetQueueCounts");function st(J,ae,ve){var Pe=!1,Ve=ae===0;return!Ve||v[V1e]()?hh($.core,function(){return"PostChannel._queueBatches"},function(){for(var Ye=[],ut=4;ut>=J;){var yt=S[ut];yt&&yt.batches&&yt.batches[is]>0&&(Ct(yt[xE],function($t){v.addBatch($t)?Pe=Pe||$t&&$t[gp]()>0:Ye=Ye[VO]($t[WO]()),ut===4?u-=$t[gp]():f-=$t[gp]()}),yt[xE]=[],yt.iKeyMap={}),ut--}Ye[is]>0&&Ue(jK,Ye,NO.KillSwitch),Pe&&R>=J&&(R=-1,x=0)},function(){return{latency:J,sendType:ae,sendReason:ve}},!Ve):(R=R>=0?aQ(R,J):J,x=Kk(x,ve)),Pe}a(st,"_queueBatches");function vt(J,ae){te(1,0,ae),tt(),Nt(function(){J&&J(),s[is]>0?c=ee(function(){c=null,vt(s.shift(),ae)},0):(c=null,K())})}a(vt,"_flushImpl");function Nt(J){v.isCompletelyIdle()?J():c=ee(function(){c=null,Nt(J)},aMo)}a(Nt,"_waitForIdleManager");function jt(){fe(),F(),g=Q1e,K()}a(jt,"_resetTransmitProfiles");function F(){m={},m[Q1e]=[2,1,0],m[scn]=[6,3,0],m[acn]=[18,9,0]}a(F,"_initializeProfiles");function se(J,ae){var ve=[],Pe=N;D&&(Pe=M),Ct(J,function(Ve){Ve&&Ve[gp]()>0&&Ct(Ve[WO](),function(Ye){Ye&&(Ye[QK]&&(Ye[rq]=4,Ye[QK]=!1),Ye[K1e]<Pe?(r$e(Ye,$[Y1e]),Te(Ye,!1)):ve[Tg](Ye))})}),ve[is]>0&&Ue(jK,ve,NO.NonRetryableStatus),D&&Be(2,2)}a(se,"_requeueEvents");function Ce(J,ae){var ve=U||{},Pe=ve[J];if(Pe)try{Pe.apply(ve,ae)}catch(Ve){qa($.diagLog(),1,74,J+" notification failed: "+Ve)}}a(Ce,"_callNotification");function Ue(J,ae){for(var ve=[],Pe=2;Pe<arguments.length;Pe++)ve[Pe-2]=arguments[Pe];ae&&ae[is]>0&&Ce(J,[ae][VO](ve))}a(Ue,"_notifyEvents");function Qe(J,ae){for(var ve=[],Pe=2;Pe<arguments.length;Pe++)ve[Pe-2]=arguments[Pe];ae&&ae[is]>0&&Ct(ae,function(Ve){Ve&&Ve[gp]()>0&&Ce(J,[Ve.events()][VO](ve))})}a(Qe,"_notifyBatchEvents");function me(J,ae,ve){J&&J[is]>0&&Ce("eventsSendRequest",[ae>=1e3&&ae<=1999?ae-1e3:0,ve!==!0])}a(me,"_sendingEvent");function Z(J,ae){Qe("eventsSent",J,ae),K()}a(Z,"_eventsSentEvent");function _e(J,ae){Qe(jK,J,ae>=8e3&&ae<=8999?ae-8e3:NO.Unknown)}a(_e,"_eventsDropped");function Ge(J){Qe(jK,J,NO.NonRetryableStatus),K()}a(Ge,"_eventsResponseFail");function qe(J,ae){Qe(jK,J,NO.Unknown),K()}a(qe,"_otherEvent");function He(){L?w=0:w=Kk(W*(Ncn+1),h/6)}a(He,"_setAutoLimits")}),r}return a(e,"PostChannel"),e.__ieDyn=1,e})(Nle);var hI=ue(require("os"));var P$e=class{constructor(e,r,n,o=!0,s){this.ctx=e;this.namespace=r;this.internalOnly=o;this.onCopilotToken=a(async e=>{this.token=e,this.commonProperties["common.isinternal"]=e?.isInternalUser()?"true":"false",await this.refreshGitHubHandleInCommonProperties();let r=e.getTokenValue("tid");r!==void 0&&(this.tags["ai.user.id"]=r)},"onCopilotToken");this.client=this.initializeClient(n),this.tags=pMo(e),this.commonProperties=hMo(e),this.#e=ls(e,this.onCopilotToken),s&&this.onCopilotToken(s)}static{a(this,"Msft1dsReporter")}#e;initializeClient(e){try{let r=new YFt,n=new g3t,o={instrumentationKey:e,loggingLevelTelemetry:0,loggingLevelConsole:0,disableCookiesUsage:!0,disableDbgExt:!0,disableInstrumentationKeyValidation:!0,channels:[[n]]},s={alwaysUseXhrOverride:!0,httpXHROverride:this.createXhrOverride()};return o.extensionConfig={},o.extensionConfig[n.identifier]=s,r.initialize(o,[]),r.addTelemetryInitializer(c=>{let l=c.ext??{},u=l.web??{};u.consentDetails='{"GPC_DataSharingOptIn":false}',l.web=u,c.ext=l,c.tags={...c.tags??{},...this.tags}}),r}catch(r){Ur.error(this.ctx,"Failed to initialize MSFT 1DS reporter",r)}}sendTelemetryEvent(e,r,n){if(!this.client||this.internalOnly&&!this.token?.isInternalUser())return;r={...r,...this.commonProperties};let o=this.qualifyEventName(e);try{this.client.track({name:o,baseData:{name:o,properties:r,measurements:n}})}catch(s){Ur.debug(this.ctx,"Error tracking telemetry event",s)}}sendTelemetryErrorEvent(e,r,n){this.sendTelemetryEvent(this.qualifyEventName(e),r,n)}async dispose(){this.#e.dispose(),await this.client?.unload(!0,void 0,200)}qualifyEventName(e){return e.startsWith(this.namespace)?e:`${this.namespace}/${e}`}async refreshGitHubHandleInCommonProperties(){try{let e=await this.ctx.get(Lr).resolveSession();e?.login?this.commonProperties["common.github_handle"]=e.login:delete this.commonProperties["common.github_handle"]}catch(e){Ur.debug(this.ctx,"Error resolving GitHub handle for telemetry",e)}}createXhrOverride(){return{sendPOST:a((e,r)=>{if(typeof e.data!="string")throw new Error(`Telemetry reporter only supports string payloads, received ${typeof e.data}`);let n=e.headers??{};n["Content-Type"]="application/json";let o={method:"POST",headers:n,body:e.data};this.ctx.get(zt).fetch(e.urlString,o).then(s=>s.text().then(c=>{r(s.status,Object.fromEntries(s.headers),c)})).catch(s=>{Ur.debug(this.ctx,"Error sending telemetry",s),r(0,{})})},"sendPOST")}}};function pMo(t){let e={},r=t.get(Za);e["ai.session.id"]=r.sessionId;let n=t.get(sh);return n.trackingId&&(e["ai.user.id"]=n.trackingId),e["ai.cloud.roleInstance"]="REDACTED",e["ai.device.osVersion"]=`${hI.type()} ${hI.release()}`,e["ai.device.osArchitecture"]=hI.arch(),e["ai.device.osPlatform"]=hI.platform(),e["ai.cloud.role"]="Web",e["ai.application.ver"]=t.get(Ts).getVersion(),e}a(pMo,"getTags");function hMo(t){let e={};e.common_os=hI.platform(),e.common_platformversion=hI.release(),e.common_arch=hI.arch(),e.common_cpu=Array.from(new Set(hI.cpus().map(n=>n.model))).join();let r=t.get(Za);return e.common_vscodemachineid=r.machineId,e.common_vscodesessionid=r.sessionId,e.client_deviceid=r.devDeviceId,e.common_uikind=r.uiKind,e.common_remotename=r.remoteName,e.common_isnewappinstall="",e}a(hMo,"getCommonProperties");var mMo="7d7048df-6dd0-4048-bb23-b716c1461f8f",gMo="3fdd7f28-937a-48c8-9a21-ba337db23bd1",AMo="b73649cf-ca8f-4768-9e0e-b789d8529db5",yMo="5fb6107a-6a29-423f-a824-22e3724fa2a6",EMo="ec712b3202c5462fb6877acae7f1f9d7-c19ad55e-3e3c-4f99-984b-827f6d95bd9e-6917";function _Mo(t){return nQ(t)==="prod"?AMo:yMo}a(_Mo,"getMsftInstrumentationKey");function Fcn(t){return new URL(t).hostname==="github.com"?BY.telemetry:t.replace("://","://copilot-telemetry-service.")}a(Fcn,"getEndpointForServerUrl");var Ap=class{constructor(e,r){this.ctx=e;this.namespace=r;this.serverUrl="https://github.com/";this.rootUrl=Fcn(this.serverUrl);this.shuttingDown=new Set;this.initListeners=[];ls(e,n=>{this.cachedToken=n,this.updateServiceEndpoints(n.endpoints)})}static{a(this,"TelemetryInitialization")}get endpointUrl(){return this.overrideEndpointUrlForTesting||new URL("telemetry",this.rootUrl).href}get isInitialized(){return this.initializedWith!==void 0}get isEnabled(){return this._enabled??!1}initialize(e){let r=this.ctx;this._enabled=e;let n=this.endpointUrl;if(!(this.initializedWith?.enabled===this._enabled&&this.initializedWith?.endpointUrl===this.endpointUrl)&&(this.shutdownWithoutWaiting(),this.initializedWith={endpointUrl:n,enabled:this._enabled},e)){let o=r.get(T0);if(o.setReporter(new cle(r,this.namespace,{instrumentationKey:mMo,endpointUrl:n})),o.setRestrictedReporter(new cle(r,this.namespace,{instrumentationKey:gMo,endpointUrl:n})),o.setMsftReporter(new cle(r,`copilot/${this.namespace}`,{instrumentationKey:_Mo(r),excludeCommonTags:!0,excludeCommonProperties:!0})),o.setMsft1pReporter(new P$e(r,"ThirdParty.copilot-chat",EMo,!0,this.cachedToken)),this.initListeners){let s=this.initListeners;this.initListeners=void 0;for(let c of s)try{c()}catch{}}}}onInitialized(e){if(this.initListeners)this.initListeners.push(e);else try{e()}catch{}}setCustomReporters(e,r){this.shutdownWithoutWaiting();let n=this.ctx.get(T0);n.setReporter(e),n.setRestrictedReporter(r)}async shutdown(){this.shutdownWithoutWaiting(),await Promise.all(this.shuttingDown)}shutdownWithoutWaiting(){this.initializedWith=void 0;let e=this.ctx.get(T0).deactivate().finally(()=>{this.shuttingDown.delete(e)});this.shuttingDown.add(e)}updateSessionConfig(e){e?.serverUrl&&e.serverUrl!==this.serverUrl&&(this.serverUrl=e.serverUrl,this.rootUrl=Fcn(e.serverUrl)),this.isInitialized&&this.initialize(this._enabled)}updateServiceEndpoints(e){this.rootUrl=e.telemetry,this.isInitialized&&this.initialize(this._enabled)}};async function vMo(t,e){let r="copilot_internal/subscribe_limited_user";try{return(await(await dp(t,e,r,{method:"POST",headers:{"X-GitHub-Api-Version":"2025-05-01"},body:JSON.stringify({restricted_telemetry:t.get(Ap).isEnabled?"enabled":"disabled",public_code_suggestions:"enabled"})})).json()).subscribed}catch(n){return nv.exception(t,n,"signUpLimited failed"),!1}}a(vMo,"apiFetchSignUpLimited");async function y3t(t,e,r){let n=await t.get(Ft).getTokenResult();switch(n.failureKind){case void 0:return"OK";case"HTTP401":case"NotSignedIn":return"NotSignedIn";case"NotAuthorized":return r&&n.canSignUpForLimited&&await vMo(t,e)?y3t(t,e,!1):"NotAuthorized";case"Exception":throw n.exception}}a(y3t,"getTokenWithSignUpLimited");p();p();var Ucn=ue(ai());var io=class extends Ucn.Emitter{static{a(this,"Emitter")}get event(){return super.event}};var CMo={didChangeFeatureFlags:!1,didChangeManagedSettings:!1,fetch:!1,ipCodeCitation:!1,redirectedTelemetry:!1,related:!1,token:!1,watchedFiles:!1,showPanelMessage:!1,mcpElicitation:!1,mcpSampling:!1,mcpAllowlist:!1,stateDatabase:!1,subAgent:!1,mcpServerManagement:!1,cveRemediatorAgent:!1,debuggerAgent:!1,contentProvider:[],manageTodoListTool:!1,agentDebugLog:!1,accountPickerEnabled:!1},Mn=class{constructor(){this.capabilities={...CMo};this.emitter=new io;this.onDidSetCapabilities=this.emitter.event}static{a(this,"CopilotCapabilitiesProvider")}setCapabilities(e){let r;for(r in e){let n=e[r];n!==void 0&&(this.capabilities[r]=n)}this.emitter.fire(this.capabilities)}getCapabilities(){return this.capabilities}};p();var A3=require("fs"),Gle=require("os"),$le=ue(require("path")),iq=require("process");var Hn=class{static{a(this,"PersistenceManager")}},E3t=class extends Hn{constructor(r){super();this.directory=r}static{a(this,"FilePersistenceManager")}async read(r,n){try{return(await this.readJsonObject(r))[n]}catch{return}}async update(r,n,o){await A3.promises.mkdir(this.directory,{recursive:!0,mode:448});let s=`${this.directory}/${r}.json`,c=$le.dirname(s);c!==this.directory&&await A3.promises.mkdir(c,{recursive:!0,mode:448});let l;try{l=await J1e.acquire(s);let u=await this.readJsonObject(r);u[n]=o,await A3.promises.writeFile(s,JSON.stringify(u)+`
|
|
1706
1706
|
`,{encoding:"utf8",mode:384})}finally{l&&await l()}}async delete(r,n){let o=`${this.directory}/${r}.json`,s;try{s=await J1e.acquire(o);let c=await this.readJsonObject(r);delete c[n];let l=JSON.stringify(c)+`
|
|
1707
1707
|
`;l===`{}
|
|
1708
|
-
`?await A3.promises.rm(o):await A3.promises.writeFile(o,l,{encoding:"utf8",mode:384})}catch{}finally{s&&await s()}}async deleteSetting(r){let n=`${this.directory}/${r}.json`,o;try{o=await J1e.acquire(n),await A3.promises.rm(n)}catch{}finally{o&&await o()}}async listSettings(){try{return(await A3.promises.readdir(this.directory)).filter(n=>n.endsWith(".json")).map(n=>n.slice(0,-5))}catch{return[]}}async listKeys(r){return Object.keys(await this.readJsonObject(r))}async readAll(r){return await this.readJsonObject(r)}async readJsonObject(r){let n=`${this.directory}/${r}.json`;try{let o=await A3.promises.readFile(n,{encoding:"utf8"});return JSON.parse(o)}catch{return{}}}},J1e=class{static{a(this,"LockManager")}static{this.locks=new Map}static{this.DEFAULT_TIMEOUT_MS=1e4}static async acquire(e){await this.getLock(e);let r,n=new Promise(o=>{r=o});return this.locks.set(e,n),()=>Promise.resolve().then(()=>{r&&(r(),r=void 0,this.locks.get(e)===n&&this.locks.delete(e))})}static async getLock(e){let r=Date.now();for(;Date.now()-r<this.DEFAULT_TIMEOUT_MS;){let n=this.locks.get(e);if(!n)return;let o=this.DEFAULT_TIMEOUT_MS-(Date.now()-r);if(o<=0)return;let s=new Promise((c,l)=>{setTimeout(()=>{l(new Error("timeout"))},o)});try{await Promise.race([n,s])}catch{return}}}};function bMo(){if(iq.env.XDG_CONFIG_HOME&&$le.isAbsolute(iq.env.XDG_CONFIG_HOME))return iq.env.XDG_CONFIG_HOME+"/github-copilot";if((0,Gle.platform)()==="win32"){let e=iq.env.USERPROFILE||_3t.homedir();return e?e+"\\AppData\\Local\\github-copilot":Qcn()}let t=iq.env.HOME&&iq.env.HOME.length>0?iq.env.HOME:_3t.homedir();return t?t+"/.config/github-copilot":Qcn()}a(bMo,"getXdgConfigPath");var _3t={homedir:Gle.homedir,tmpdir:Gle.tmpdir};function Qcn(){return $le.join(_3t.tmpdir(),"github-copilot")}a(Qcn,"tmpdirConfigPath");function qcn(){return new E3t(bMo())}a(qcn,"makeXdgPersistenceManager");p();var Us=class{static{a(this,"StatusReporter")}#e=0;#t="Normal";#r;#n;#o=!0;#i={category:"auth",kind:"Warning",message:"Not initialized",askToReSignin:!1,result:{status:"NotSignedIn"}};#s={category:"cls",kind:"Normal",inactive:!1};get busy(){return this.#e>0}trackCompletionJob(e){return this.#t==="Warning"&&this.forceNormalV1(),this.#s.kind==="Warning"&&this.forceNormalV2("cls",{inactive:!1}),this.#e++===0&&(this.#a(),this.#c("completion")),e().finally(()=>{--this.#e===0&&(this.#a(),this.#c("completion"))})}forceStatusV1(e,r,n){this.#t===e&&this.#r===r&&!n&&!this.#n&&!this.#o||(this.#t=e,this.#r=r,this.#n=n,this.#o=!1,this.#a())}forceStatusV2(e,r){e==="auth"?this.#i=r:this.#s=r,this.#c(e)}forceStatus(e,r,n){this.forceStatusV1(r.kind,r.message,n),this.forceStatusV2(e,r)}forceNormalV1(){this.#t!=="Inactive"&&this.forceStatusV1("Normal")}forceNormalV2(e,r){this.forceStatusV2(e,{...r,kind:"Normal",category:e})}forceNormal(e,r){this.forceNormalV1(),this.forceNormalV2(e,r)}setErrorV1(e,r){this.forceStatusV1("Error",e,r)}setErrorV2(e,r){let n=e==="auth"?this.#i:this.#s;this.forceStatusV2(e,{...n,...r,kind:"Error",category:e})}setError(e,r,n){this.setErrorV1(r.message,n),this.setErrorV2(e,r)}setWarningV1(e){this.#t!=="Error"&&this.forceStatusV1("Warning",e)}setWarningV2(e,r){let n=e==="auth"?this.#i:this.#s;n.kind!=="Error"&&this.forceStatusV2(e,{...n,...r,kind:"Warning",category:e})}setWarning(e,r){r?.message&&this.setWarningV1(r.message),this.setWarningV2(e,r)}setInactiveV1(e){this.#t==="Error"||this.#t==="Warning"||this.forceStatusV1("Inactive",e)}setClsInactiveV2(e){this.setInactiveV1(e),!(this.#s.kind==="Error"||this.#s.kind==="Warning")&&(this.#s.inactive&&this.#s.message===e||(this.#s={category:"cls",kind:"Normal",inactive:!0,message:e},this.#c("cls")))}setClsInactive(e){this.setInactiveV1(e),this.setClsInactiveV2(e)}clearInactiveV1(){this.#t==="Inactive"&&this.forceStatusV1("Normal")}clearClsInactiveV2(){this.#s.inactive&&(this.#s={category:"cls",kind:"Normal",inactive:!1},this.#c("cls"))}clearClsInactive(){this.clearInactiveV1(),this.clearClsInactiveV2()}sendInitNonAuthStatus(){this.didChangeV2({statuses:[this.#s,{category:"completion",busy:this.busy}]})}#a(){let e={kind:this.#t,message:this.#r,busy:this.busy,command:this.#n};this.didChangeV1(e)}#c(e){let r=this.#u(e);this.didChangeV2({statuses:[r]})}#u(e){switch(e){case"completion":return{category:"completion",busy:this.#e>0};case"auth":return this.#i;case"cls":return this.#s}}},k$e=class extends Us{static{a(this,"NoOpStatusReporter")}didChangeV1(){}didChangeV2(){}};p();var Hcn={PickerListed:"auth.account_picker.listed",PickerUsed:"auth.account_picker.used"};function jcn(t,e){Vt(t,Hcn.PickerListed,{editorId:e.editorId,hasCurrentSession:String(e.hasCurrentSession),hasOptOutTombstone:String(e.hasOptOutTombstone)},{candidateCount:e.candidateCount,migrationMs:e.migrationMs,listTokensMs:e.listTokensMs,activeSessionMs:e.activeSessionMs,optOutTombstoneMs:e.optOutTombstoneMs,durationMs:e.durationMs})}a(jcn,"telemetryAuthPickerListed");function v3t(t,e){Vt(t,Hcn.PickerUsed,{editorId:e.editorId,status:e.status,clearedTombstone:String(e.clearedTombstone),crossEditorReuse:String(e.crossEditorReuse)},{validationMs:e.validationMs})}a(v3t,"telemetryAuthPickerUsed");p();var oq={StoreInitialize:"auth.store.initialize",StoreError:"auth.store.error",StoreMigration:"auth.store.migration",SessionActivated:"auth.session.activated",SessionDeactivated:"auth.session.deactivated",TokenRevoked:"auth.token.revoked",EncryptionInitialize:"auth.encryption.initialize"};function Gcn(t,e){Bs(t,oq.StoreInitialize,e.error,{repoKind:e.repoKind,errorPhase:e.errorPhase||""},{durationMs:e.durationMs}),ft(t,oq.StoreInitialize)}a(Gcn,"telemetryAuthStoreInitialize");function $cn(t,e){Bs(t,oq.StoreError,e.error,{editorId:e.editorId,op:e.op})}a($cn,"telemetryAuthStoreError");function Vcn(t,e){Bs(t,oq.StoreMigration,e.error,{editorId:e.editorId,outcome:e.outcome},{appsRecords:e.appsRecords,hostsRecords:e.hostsRecords,skippedRecords:e.skippedRecords,durationMs:e.durationMs})}a(Vcn,"telemetryAuthStoreMigration");function C3t(t,e){let r={editorId:e.editorId,trigger:e.trigger};e.crossEditorReuse!==void 0&&(r.crossEditorReuse=String(e.crossEditorReuse)),e.tokenRewrite!==void 0&&(r.tokenRewrite=String(e.tokenRewrite)),Vt(t,oq.SessionActivated,r,{durationMs:e.durationMs})}a(C3t,"telemetryAuthSessionActivated");function Wcn(t,e){Vt(t,oq.SessionDeactivated,{editorId:e.editorId})}a(Wcn,"telemetryAuthSessionDeactivated");function D$e(t,e){Vt(t,oq.TokenRevoked,{editorId:e.editorId,trigger:e.trigger},{affectedEditors:e.affectedEditors})}a(D$e,"telemetryAuthTokenRevoked");function N$e(t,e){Bs(t,oq.EncryptionInitialize,e.diagnostics.error,{writerKind:e.writerKind,available:String(e.diagnostics.available),errorPhase:e.diagnostics.errorPhase??"",masterKeySource:e.diagnostics.masterKeySource??""})}a(N$e,"telemetryAuthEncryptionInitialize");var SMo="apps",zcn="hosts",ef=new pe("AuthManager"),Ycn="legacy_files_migration_done",TMo=5,IMo=6e4,Lr=class{constructor(e,r){this.ctx=e;this.env=r}static{a(this,"AuthManager")}hasTransientSession(){return this.transientSession!==void 0}get _copilotTokenManager(){return this.ctx.get(Ft)}getConfiguredUrls(){return this.ctx.get(Ru).getConfiguredUrls()}async checkAndUpdateStatus(e){let r=e?.localChecksOnly??!1,n=e?.githubAppId!==void 0?await this.resolvePersistedSession(e):await this.resolveSession(e?.authAuthority);return n===void 0?(this._copilotTokenManager.resetToken("session_not_found"),ef.info(this.ctx,"checkAndUpdateStatus: no session found, priming token"),await this._copilotTokenManager.primeToken(),{status:"NotSignedIn"}):r?(this.ctx.get(Us).forceNormalV2("auth",{result:{status:"MaybeOK",user:n.login}}),{status:"MaybeOK",user:n.login}):(e?.forceRefresh&&this._copilotTokenManager.resetToken("force_refresh"),{status:await y3t(this.ctx,n,e?.freshSignIn??!1),user:n.login})}getAuthSourceEnvVar(){return O$e(this.env).sourceEnvVar}async resolveSession(e){await this.ctx.get(ro).requireReady();let{session:r,sourceEnvVar:n}=O$e(this.env);if(r)return this._copilotTokenManager.setActiveTokenId(void 0),ef.info(this.ctx,`resolveSession: resolved from env var ${n}`),{...r,...CE(r)};let o=await this.transientSession;if(o){if(o.accessToken===void 0){ef.info(this.ctx,"resolveSession: transient session is a shadow, no session");return}return ef.info(this.ctx,"resolveSession: resolved from transient session"),{...o,...CE(o)}}let s=await this.resolvePersistedSession({authAuthority:e});return ef.info(this.ctx,`resolveSession: persisted store ${s?"resolved a session":"returned no session"}`),s}setTransientSession(e){this.transientSession=e&&Promise.resolve(e),this._copilotTokenManager.setActiveTokenId(void 0),this._copilotTokenManager.resetToken("set_transient_session")}},M$e=class extends Lr{constructor(){super(...arguments);this.lastTouchAt=0}static{a(this,"PersistentAuthManager")}get authRepository(){return this.ctx.get(yO)}async tracked(r,n){try{return await n()}catch(o){throw ef.exception(this.ctx,o,`authStore.${r}`),$cn(this.ctx,{editorId:this.editorId(),op:r,error:o}),o}}editorId(){return this.cachedEditorId===void 0&&(this.cachedEditorId=this.ctx.get(Ir).getEditorIdentity().editorId),this.cachedEditorId}tokenRecordToSession(r){let n;try{n=sQ(this.ctx,r.authAuthority)}catch(o){ef.warn(this.ctx,"tokenRecordToSession: dropping record with unparseable authAuthority",o);return}return{serverUrl:n.serverUrl,apiUrl:n.apiUrl,accessToken:r.accessToken,login:r.user,githubAppId:r.oauthClientId||void 0,scopes:xMo(r.scopes)}}async ensureSqliteMigration(){return this.sqliteMigrationPromise||(this.sqliteMigrationPromise=this.runSqliteMigration()),this.sqliteMigrationPromise}async runSqliteMigration(){let r=this.authRepository;try{if(await r.getMetadata(Ycn))return}catch{}let n=Date.now(),o=0,s=0,c=0,l="ok",u,d=!1;try{let f=this.ctx.get(Hn),h=this.editorId(),[m,g]=await Promise.all([f.readAll(SMo).catch(()=>({})),f.readAll(zcn).catch(()=>({}))]);d=Object.keys(m).length>0||Object.keys(g).length>0;for(let[A,y]of Object.entries(m)){let E=Kcn(y);if(!E){c++;continue}let[_,v]=wMo(A)??["github.com",Vle],S=E.oauth_token||E.access_token,T=E.user||E.login;if(!S||!T){c++;continue}let w=E.authAuthority||_;if(!FLt(w)){c++;continue}try{await r.upsertTokenAndAssign(h,{user:T,accessToken:S,authAuthority:w,oauthClientId:E.githubAppId??v,scopes:b3t(E.scopes)}),o++}catch{c++}}for(let[A,y]of Object.entries(g)){let E=Kcn(y);if(!E){c++;continue}let _=E.oauth_token||E.access_token,v=E.user||E.login;if(!_||!v){c++;continue}let S=E.authAuthority||A;if(!FLt(S)){c++;continue}try{await r.upsertTokenAndAssign(h,{user:v,accessToken:_,authAuthority:S,oauthClientId:E.githubAppId??Vle,scopes:b3t(E.scopes)}),s++}catch{c++}}}catch(f){l="failed",u=f}finally{l==="ok"&&!d&&(l="noop");try{await this.tracked("metadata",()=>r.setMetadata(Ycn,String(Date.now())))}catch{}this.ctx.get(Hn).deleteSetting(zcn).catch(()=>{}),Vcn(this.ctx,{editorId:this.editorId(),outcome:l,error:u,appsRecords:o,hostsRecords:s,skippedRecords:c,durationMs:Date.now()-n}),ef.info(this.ctx,`runSqliteMigration: outcome=${l} apps=${o} hosts=${s} skipped=${c}`)}}tryAutoAdoptCoalesced(){return this.autoAdoptPromise||(this.autoAdoptPromise=this.tryAutoAdopt().finally(()=>{this.autoAdoptPromise=void 0})),this.autoAdoptPromise}async tryAutoAdopt(){let r=this.authRepository,n=this.editorId(),o=Date.now(),s=await r.listTokensByRecency(TMo);if(ef.debug(this.ctx,`tryAutoAdopt: editorId=${n} candidates=${s.length}`),s.length===0)return;let c=this.ctx.get(sm);for(let l of s){let u=this.tokenRecordToSession(l.record);if(!u){ef.info(this.ctx,`tryAutoAdopt: dropping corrupt-authority tokenId=${l.tokenId}; continuing walk`),await this.revokeTokenById(l.tokenId,"corrupt_authority");continue}let d;try{d=await c.fetchTokenResult(this.ctx,u)}catch{ef.debug(this.ctx,`tryAutoAdopt: transient fetch error tokenId=${l.tokenId}; aborting walk`);return}if(d.copilotToken||d.failureKind==="NotAuthorized"){ef.info(this.ctx,`tryAutoAdopt: adopting tokenId=${l.tokenId} crossEditor=${l.sourceEditorId!==n} noCopilotAccess=${d.failureKind==="NotAuthorized"}`);try{await this.tracked("assign",()=>r.assignActiveSession(n,l.tokenId))}catch(f){ef.info(this.ctx,`tryAutoAdopt: assign failed for tokenId=${l.tokenId} (${f?.message??f}); continuing walk`);continue}return this._copilotTokenManager.setActiveTokenId(l.tokenId),C3t(this.ctx,{editorId:n,trigger:"auto_adopt",crossEditorReuse:l.sourceEditorId!==n,durationMs:Date.now()-o}),u}if(d.failureKind==="HTTP401"){ef.info(this.ctx,`tryAutoAdopt: skipping invalid tokenId=${l.tokenId} (not revoking); continuing walk`);continue}ef.debug(this.ctx,`tryAutoAdopt: transient failure tokenId=${l.tokenId} kind=${d.failureKind}; aborting walk`);return}ef.debug(this.ctx,`tryAutoAdopt: exhausted candidates editorId=${n}`)}async signInEditor(r){if(!r.user)throw new Fn("Cannot sign in: missing GitHub username.");if(!r.accessToken)throw new Fn("Cannot sign in: missing GitHub access token.");await this.ensureSqliteMigration();let n=this.editorId(),o=Date.now();ef.debug(this.ctx,`signInEditor: editorId=${n} authority=${r.authAuthority} appId=${r.githubAppId??""}`);let s=await this.tracked("upsert",()=>this.authRepository.upsertTokenAndAssign(n,{user:r.user,accessToken:r.accessToken,authAuthority:r.authAuthority,oauthClientId:r.githubAppId??"",scopes:b3t(r.scopes)}));ef.info(this.ctx,`signInEditor: persisted editorId=${n} tokenId=${s.tokenId} rewrite=${s.tokenRewrite}`),C3t(this.ctx,{editorId:n,trigger:"sign_in",tokenRewrite:s.tokenRewrite,durationMs:Date.now()-o});let c=sQ(this.ctx,r.authAuthority);return this.setTransientSession({login:r.user,accessToken:r.accessToken,githubAppId:r.githubAppId,serverUrl:c.serverUrl,apiUrl:c.apiUrl}),this._copilotTokenManager.setActiveTokenId(s.tokenId),await this.checkAndUpdateStatus({forceRefresh:!0,freshSignIn:!0,authAuthority:r.authAuthority})}async signOutEditor(){let r=this.editorId();return ef.info(this.ctx,`signOutEditor: editorId=${r}`),await this.tracked("opt_out",()=>this.authRepository.markEditorOptedOut(r)),Wcn(this.ctx,{editorId:r}),this._copilotTokenManager.setActiveTokenId(void 0),this.setTransientSession(void 0),await this.checkAndUpdateStatus({forceRefresh:!0})}async revokeTokenById(r,n){ef.info(this.ctx,`revokeTokenById: tokenId=${r} trigger=${n??"unknown"}`);let o=await this.tracked("revoke",()=>this.authRepository.deleteTokenCascade(r));return ef.info(this.ctx,`revokeTokenById: cascade complete tokenId=${r} affectedEditors=${o.affectedEditors}`),D$e(this.ctx,{editorId:this.editorId(),trigger:n??"unknown",affectedEditors:o.affectedEditors}),this._copilotTokenManager.resetToken("token_revoked",void 0,r),this._copilotTokenManager.getActiveTokenId()===r&&(this._copilotTokenManager.setActiveTokenId(void 0),await this.checkAndUpdateStatus({forceRefresh:!0})),o}async useExistingToken(r){let n=this.authRepository,o=this.editorId(),s=await n.getTokenById(r);if(!s)return v3t(this.ctx,{editorId:o,status:"revoked",clearedTombstone:!1,crossEditorReuse:!1,validationMs:0}),{status:"revoked"};let c=s.sourceEditorId!==o,l=await n.hasOptOutTombstone(o);this.setTransientSession(void 0),await n.assignActiveSession(o,r),this._copilotTokenManager.setActiveTokenId(r);let u=performance.now(),d,f=!1;try{d=(await this.checkAndUpdateStatus({forceRefresh:!0,freshSignIn:!0,authAuthority:s.record.authAuthority})).status}catch{f=!0,d="NotSignedIn"}let h;switch(d){case"OK":h="ok";break;case"NotAuthorized":h="not_entitled";break;default:h=f?"transient":"revoked";break}return v3t(this.ctx,{editorId:o,status:h,clearedTombstone:l,crossEditorReuse:c,validationMs:performance.now()-u}),{status:h}}async listAvailableTokens(){let r=this.editorId(),n=performance.now(),o=n;await this.ensureSqliteMigration();let s=performance.now()-o,c=this.authRepository;o=performance.now();let l=await c.listAvailableTokens(),u=performance.now()-o;o=performance.now();let d=await c.getActiveSession(r),f=performance.now()-o,h=l.map(y=>({tokenId:y.tokenId,authAuthority:y.authAuthority,userLogin:y.userLogin,isCurrent:d?.tokenId===y.tokenId,lastUsedAt:y.lastUsedAt})),m=h.some(y=>y.isCurrent);o=performance.now();let g=await c.hasOptOutTombstone(r),A=performance.now()-o;return jcn(this.ctx,{editorId:r,candidateCount:h.length,hasCurrentSession:m,hasOptOutTombstone:g,migrationMs:s,listTokensMs:u,activeSessionMs:f,optOutTombstoneMs:A,durationMs:performance.now()-n}),h}async resolvePersistedSession(r){await this.ensureSqliteMigration();let n=this.authRepository,o=this.editorId(),s=this.ctx.get(Mn).getCapabilities().accountPickerEnabled,c=await n.hasOptOutTombstone(o),l=await n.getActiveSession(o),u=!l&&!s&&!c;if(u&&(await this.tryAutoAdoptCoalesced(),l=await n.getActiveSession(o)),!l){ef.info(this.ctx,`resolvePersistedSession: no active session editorId=${o} pickerEnabled=${s} optedOut=${c} autoAdoptAttempted=${u}`);return}let d=sQ(this.ctx,r?.authAuthority);if(r?.authAuthority!==void 0&&l.record.authAuthority!==d.authAuthority){ef.info(this.ctx,`resolvePersistedSession: active session authority mismatch editorId=${o}`);return}if(r?.githubAppId!==void 0&&l.record.oauthClientId!==r.githubAppId){ef.info(this.ctx,`resolvePersistedSession: active session appId mismatch editorId=${o}`);return}let f=this.tokenRecordToSession(l.record);if(!f){await this.revokeTokenById(l.tokenId,"corrupt_authority");return}this._copilotTokenManager.setActiveTokenId(l.tokenId);let h=Date.now();return h-this.lastTouchAt>=IMo&&(this.lastTouchAt=h,n.touchActiveSession(o).catch(()=>{})),f}};function wMo(t){let e=t.lastIndexOf(":");if(e<0)return;let r=t.slice(e+1);if(r)return[t.slice(0,e),r]}a(wMo,"splitAppsKey");function xMo(t){if(t)return typeof t=="string"?t.split(" ").filter(e=>e.length>0):t}a(xMo,"normalizeScopes");function b3t(t){return t?typeof t=="string"?t:t.join(" "):""}a(b3t,"scopesToString");function Kcn(t){if(!(!t||typeof t!="object"||Array.isArray(t)))return t}a(Kcn,"asLegacyAuthRecord");function O$e(t){return t.GH_COPILOT_TOKEN&&!/=/.test(t.GH_COPILOT_TOKEN)?{session:{...CE({apiUrl:t.GH_COPILOT_API_URL,serverUrl:t.GH_COPILOT_SERVER_URL}),login:t.GH_COPILOT_USER||"<GH_COPILOT_TOKEN-user>",accessToken:t.GH_COPILOT_TOKEN},sourceEnvVar:"GH_COPILOT_TOKEN"}:t.GITHUB_COPILOT_TOKEN?{session:{...CE({apiUrl:t.GITHUB_COPILOT_API_URL,serverUrl:t.GITHUB_COPILOT_SERVER_URL}),login:t.GITHUB_COPILOT_USER||"<GITHUB_COPILOT_TOKEN-user>",accessToken:t.GITHUB_COPILOT_TOKEN},sourceEnvVar:"GITHUB_COPILOT_TOKEN"}:t.CODESPACES==="true"&&t.GITHUB_TOKEN?{session:{...CE({apiUrl:t.GITHUB_API_URL,serverUrl:t.GITHUB_SERVER_URL}),login:t.GITHUB_USER||"<codespaces-user>",accessToken:t.GITHUB_TOKEN},sourceEnvVar:"GITHUB_TOKEN"}:{}}a(O$e,"getSessionFromEnv");p();var L$e=class{constructor(e,r=100){this.intervalMs=e;this.seen=new mn(r)}static{a(this,"OccurrenceCoalescer")}recordAndCount(e){let r=Date.now(),n=this.seen.get(e);if(n!==void 0&&r-n.lastReportMs<this.intervalMs){n.suppressed++;return}return this.seen.set(e,{suppressed:0,lastReportMs:r}),(n?.suppressed??0)+1}};p();var RMo=["UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_SIGNATURE_FAILURE"],Jcn="Your proxy connection requires a trusted certificate. Please make sure the proxy certificate and any issuers are configured correctly and trusted by your operating system.",Zcn="https://gh.io/copilot-network-errors",lb=class{constructor(){this.notifiedErrorCodes=[]}static{a(this,"UserErrorNotifier")}notifyUser(e,r){if(!(r instanceof Error))return;let n=r;n.code&&RMo.includes(n.code)&&!this.didNotifyBefore(n.code)&&(this.notifiedErrorCodes.push(n.code),this.displayCertificateErrorNotification(e,n))}async displayCertificateErrorNotification(e,r){new pe("certificates").error(e,`${Jcn} Please visit ${Zcn} to learn more. Original cause:`,r);let n={title:"Learn more"};return e.get(hs).showWarningMessage(Jcn,n).then(o=>{if(o?.title===n.title)return e.get(yg).open(Zcn)})}didNotifyBefore(e){return this.notifiedErrorCodes.indexOf(e)!==-1}};var S3t=class extends Fn{constructor(r){super("message"in r?r.message:`${r.failureKind}`);this.result=r}static{a(this,"TokenResultError")}},Xcn=3e3,PMo=3e4,kMo=new Set([401,403]),DMo=300*1e3,B$e=class extends Error{static{a(this,"TokenFetchThrottleError")}constructor(e){super(`Throttled: ${e.message}`,{cause:e}),this.name="TokenFetchThrottleError"}},Ft=class{constructor(e,r=!1){this.ctx=e;this.primed=r;this.lastToken=void 0;this.activeToken=void 0;this.activeTokenId=void 0;this.tokenPromise=void 0;this.tokenPrimingError=void 0;this.skippedResets=new L$e(DMo);this.didChangeTokenResult=new io;this.onDidChangeTokenResult=this.didChangeTokenResult.event;this.didResetToken=new io;this.onDidResetToken=this.didResetToken.event}static{a(this,"CopilotTokenManager")}async getGitHubSession(){return await this.ctx.get(Lr).resolveSession()}primeToken(){if(this.tokenPrimingError)return Promise.reject(this.tokenPrimingError);this.primed=!0;try{return this.getToken().then(()=>!0,()=>!1)}catch{return Promise.resolve(!1)}}async fetchTokenResult(e){let r=this.tokenFetchThrottle;if(r&&Date.now()<r.untilTsMillisecond)throw new B$e(r.error);this.tokenFetchThrottle=void 0;try{return await this.ctx.get(sm).fetchTokenResult(this.ctx,e,this.lastToken)}catch(n){if(n instanceof Error&&kLt(n)){let o=this.computeThrottleDelayMs(n);this.tokenFetchThrottle={untilTsMillisecond:Date.now()+o,error:n},this.reportThrottleWindowStarted(n,o)}throw n}}computeThrottleDelayMs(e){let r=e instanceof rv?e.retryAfterSeconds:void 0;return r===void 0?Xcn:Math.min(Math.max(r*1e3,Xcn),PMo)}reportThrottleWindowStarted(e,r){Bs(this.ctx,"auth.token_fetch_throttled",e,{failureReason:RMt(e),httpStatus:e instanceof rv?String(e.status):""},{delayMs:r})}setToken(e){this.activeToken=this.lastToken=e}async getTokenResult(){if(!this.primed){let r=new Error("Token requested before initialization");if(eln(this.ctx))throw this.tokenPrimingError=r,r;nv.exception(this.ctx,r,".getToken")}if(this.activeToken!==void 0&&!this.activeToken.needsRefresh())return{copilotToken:this.activeToken};if(!this.tokenPromise){let r,n=this.captureFetchContext(),o=this.getGitHubSession().then(async s=>s?(r=s.login,await this.fetchTokenResult(s)):{failureKind:"NotSignedIn"}).catch(s=>{if(!(s instanceof Error))throw s;return{failureKind:"Exception",message:String(s),exception:s}}).then(s=>(this.tokenPromise!==o||(this.tokenPromise=void 0,this.handleTokenResult(s,r,n)),s));this.tokenPromise=o}return await this.tokenPromise}handleTokenResult(e,r,n){let o=this.ctx.get(Us);switch(e.failureKind){case"NotSignedIn":o.setError("auth",{message:"You are not signed into GitHub.",askToReSignin:!1,result:{status:"NotSignedIn",user:r}});break;case"HTTP401":o.setError("auth",{message:"Your GitHub Copilot session has expired. You have been signed out. Please sign in again to continue using GitHub Copilot.",askToReSignin:!0,result:{status:"NotSignedIn",user:r}},{command:"github.copilot.signIn",title:"Sign In"});break;case"NotAuthorized":o.setError("auth",{message:e.message,askToReSignin:!1,result:{status:"NotAuthorized",user:r??""}});break;case"Exception":o.setWarning("auth",{message:e.message,askToReSignin:!1}),this.ctx.get(lb).notifyUser(this.ctx,e.exception);break;case void 0:o.forceNormal("auth",{result:{status:"OK",user:r??"",analyticsTrackingId:e.copilotToken.userInfo.raw?.analytics_tracking_id}}),this.setToken(e.copilotToken)}this.didChangeTokenResult.fire(e);let s={result:e.copilotToken?"success":"failure",errorCode:e.failureKind??"",failureReason:e.exception?RMt(e.exception):"",trigger:n?.trigger??"unknown",editorPreviewEnabled:e.copilotToken?e.copilotToken.getTokenValue("editor_preview_features")==="0"?"false":"true":"",recognizedTransient:e.exception?String(kLt(e.exception)):""},c=LF(),l={previousRemainingLifetime:n?.previousRemainingLifetime??-1,previousUnadjustedRemainingLifetime:n?.previousUnadjustedRemainingLifetime??-1,newRefreshIn:e.copilotToken?.envelope.refresh_in??-1,newRemainingLifetime:e.copilotToken?e.copilotToken.expiresAt-c:-1,newUnadjustedRemainingLifetime:e.copilotToken?e.copilotToken.envelope.expires_at-c:-1};"exception"in e&&e.exception instanceof B$e||("exception"in e&&e.exception?Bs(this.ctx,"auth.token_reset_complete",e.exception,s,l):Vt(this.ctx,"auth.token_reset_complete",s,l))}reportSkippedReset(e,r){let n=this.skippedResets.recordAndCount(`${e}:${r}`);n!==void 0&&Vt(this.ctx,"auth.token_reset_skipped",{caller:e,httpStatus:String(r)},{occurrences:n})}captureFetchContext(){let e=this.activeToken??this.lastToken,r=this.lastToken===void 0?"initial":this.activeToken===void 0?"after_reset":"expiry",n=LF(),o=e?e.expiresAt-n:-1,s=e?e.envelope.expires_at-n:-1;return{trigger:r,previousRemainingLifetime:o,previousUnadjustedRemainingLifetime:s}}async getToken(){let e=await this.getTokenResult();if(e.copilotToken)return e.copilotToken;throw e.exception?e.exception:new S3t(e)}setActiveTokenId(e){if(this.activeTokenId===e)return;let r=this.activeTokenId;this.activeTokenId=e,r!==void 0&&this.activeToken&&this.resetToken("active_token_id_changed")}getActiveTokenId(){return this.activeTokenId}peekCachedTokenLifetime(){if(!this.activeToken)return{state:this.tokenPromise?"refreshing":"none",remainingSeconds:-1};let e=this.activeToken.expiresAt-LF();return{state:this.activeToken.isExpired()?"expired":this.activeToken.needsRefresh()?"needs_refresh":"valid",remainingSeconds:e}}resetToken(e,r,n){if(n!==void 0&&this.activeTokenId!==void 0&&n!==this.activeTokenId){nv.debug(this.ctx,`Skipping token reset from ${e} for tokenId ${n} because activeTokenId is ${this.activeTokenId}`);return}if(r!==void 0&&!kMo.has(r)){nv.debug(this.ctx,`Skipping token reset from ${e} on HTTP error ${r}: not an auth failure`),this.reportSkippedReset(e,r);return}if(r!==void 0?(ft(this.ctx,"auth.reset_token_"+r),nv.debug(this.ctx,`Resetting copilot token on HTTP error ${r} (caller: ${e})`)):nv.debug(this.ctx,`Resetting copilot token (caller: ${e})`),!this.activeToken&&!this.tokenPromise)return;let o=LF(),s=this.activeToken?this.activeToken.expiresAt-o:-1,c=this.activeToken?this.activeToken.envelope.expires_at-o:-1;Vt(this.ctx,"auth.token_reset_trigger",{caller:e,httpStatus:r!==void 0?String(r):"",hadActiveToken:String(!!this.activeToken),hadPendingRefresh:String(!!this.tokenPromise)},{remainingLifetime:s,unadjustedRemainingLifetime:c}),this.activeToken=void 0,this.tokenPromise=void 0,this.didResetToken.fire()}getLastToken(){return this.lastToken}};function sx(t){return t.get(Ft).getLastToken()}a(sx,"getLastCopilotToken");p();var ub=class{static{a(this,"Clock")}now(){return new Date}};p();var pD=class{static{a(this,"ExpConfigMaker")}},NMo=5e3,MMo=2e3,Z1e=class extends pD{constructor(r={}){super();this.defaultFilters=r}static{a(this,"ExpConfigFromTAS")}async fetchExperiments(r,n,o){let s=Object.keys(o).length===0?this.defaultFilters:o,c=new URL("telemetry",n.telemetry).href,l=await this.fetchOnce(r,c,s,NMo);return l.kind==="failure"&&l.retryable&&(l=await this.fetchOnce(r,c,s,MMo)),l.kind==="failure"?Gw.createFallbackConfig(r,l.reason):l.config}async fetchOnce(r,n,o,s){let c=r.get(zt),l;try{l=await c.fetch(n,{method:"GET",headers:o,timeout:s})}catch(h){return{kind:"failure",reason:`Error fetching ExP config: ${String(h)}`,retryable:!0}}if(!l.ok){let h=l.status>=500||l.status===429;return{kind:"failure",reason:`ExP responded with ${l.status}`,retryable:h}}let u;try{u=await l.json()}catch(h){if(h instanceof SyntaxError)return Ua(r,h,"fetchExperiments"),{kind:"failure",reason:"ExP responded with invalid JSON",retryable:!1};throw h}let d=u.Configs.find(h=>h.Id==="vscode")??{Id:"vscode",Parameters:{}},f=Object.entries(d.Parameters).map(([h,m])=>h+(m?"":"cf"));return{kind:"success",config:new Gw(d.Parameters,u.AssignmentContext,f.join(";"))}}},F$e=class extends pD{static{a(this,"ExpConfigNone")}fetchExperiments(){return Promise.resolve(Gw.createEmptyConfig())}};p();p();var U$e=class{constructor(e){this.prefix=e}static{a(this,"GranularityImplementation")}getCurrentAndUpComingValues(e){let r=this.getValue(e),n=this.getUpcomingValues(e);return[r,n]}},T3t=class extends U$e{static{a(this,"ConstantGranularity")}getValue(e){return this.prefix}getUpcomingValues(e){return[]}},tln=a(t=>new T3t(t),"DEFAULT_GRANULARITY"),Q$e=class extends U$e{constructor(r,n=.5,o=new Date().setUTCHours(0,0,0,0)){super(r);this.prefix=r;this.fetchBeforeFactor=n;this.anchor=o}static{a(this,"TimeBucketGranularity")}setTimePeriod(r){isNaN(r)?this.timePeriodLengthMs=void 0:this.timePeriodLengthMs=r}setByCallBuckets(r){isNaN(r)?this.numByCallBuckets=void 0:this.numByCallBuckets=r}getValue(r){return this.prefix+this.getTimePeriodBucketString(r)+(this.numByCallBuckets?this.timeHash(r):"")}getTimePeriodBucketString(r){return this.timePeriodLengthMs?this.dateToTimePartString(r):""}getUpcomingValues(r){let n=[],o=this.getUpcomingTimePeriodBucketStrings(r),s=this.getUpcomingByCallBucketStrings();for(let c of o)for(let l of s)n.push(this.prefix+c+l);return n}getUpcomingTimePeriodBucketStrings(r){if(this.timePeriodLengthMs===void 0)return[""];if((r.getTime()-this.anchor)%this.timePeriodLengthMs<this.fetchBeforeFactor*this.timePeriodLengthMs)return[this.getTimePeriodBucketString(r)];{let n=new Date(r.getTime()+this.timePeriodLengthMs);return[this.getTimePeriodBucketString(r),this.getTimePeriodBucketString(n)]}}getUpcomingByCallBucketStrings(){return this.numByCallBuckets===void 0?[""]:Array.from(Array(this.numByCallBuckets).keys()).map(r=>r.toString())}timeHash(r){return this.numByCallBuckets==null?0:7883*(r.getTime()%this.numByCallBuckets)%this.numByCallBuckets}dateToTimePartString(r){return this.timePeriodLengthMs==null?"":Math.floor((r.getTime()-this.anchor)/this.timePeriodLengthMs).toString()}};var rln="X-Copilot-ClientTimeBucket",q$e=class{constructor(e,r){this.specs=new Map;this.prefix=e,this.clock=r,this.defaultGranularity=tln(e)}static{a(this,"GranularityDirectory")}selectGranularity(e){for(let[r,n]of this.specs.entries())if(e.extends(r))return n;return this.defaultGranularity}update(e,r,n){if(r=r>1?r:NaN,n=n>0?n:NaN,isNaN(r)&&isNaN(n))this.specs.delete(e);else{let o=new Q$e(this.prefix);isNaN(r)||o.setByCallBuckets(r),isNaN(n)||o.setTimePeriod(n*3600*1e3),this.specs.set(e,o)}}extendFilters(e){let r=this.selectGranularity(e),[n,o]=r.getCurrentAndUpComingValues(this.clock.now());return{newFilterSettings:e.withChange(rln,n),otherFilterSettingsToPrefetch:o.map(s=>e.withChange(rln,s))}}};p();p();p();p();var I3t=new Map;async function OMo(t){if(I3t.has(t))return I3t.get(t);let e=await crypto.subtle.importKey("raw",new TextEncoder().encode(t),{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return I3t.set(t,e),e}a(OMo,"getCachedHmacKey");async function LMo(t){if(t)try{let e=await OMo(t),r=Math.floor(Date.now()/1e3).toString(),n=new TextEncoder().encode(r),o=await crypto.subtle.sign("HMAC",e,n),c=Array.from(new Uint8Array(o)).map(l=>l.toString(16).padStart(2,"0")).join("");return`${r}.${c}`}catch{return}}a(LMo,"createRequestHMAC");async function nln(t,e){let r=await LMo(t);return r?{"Request-Hmac":r,"Copilot-Integration-Id":e??"jetbrains-chat-dev"}:{}}a(nln,"createMsBenchHmacHeaders");p();p();p();p();var j$e="4.13.2",GK="04b07795-8ddb-461a-bbee-02f9e1bf7b46",iln="common",H$e;(function(t){t.AzureChina="https://login.chinacloudapi.cn",t.AzureGermany="https://login.microsoftonline.de",t.AzureGovernment="https://login.microsoftonline.us",t.AzurePublicCloud="https://login.microsoftonline.com"})(H$e||(H$e={}));var X1e=H$e.AzurePublicCloud,oln="login.microsoftonline.com",sln=["*"],aln="cae",cln="nocae",lln="msal.cache";var w3t;var BMo,G$e,dln;function fln(){return G$e!==void 0&&dln!==void 0}a(fln,"hasVSCodePlugin");function FMo(t){let e={cache:{},broker:{...t.brokerOptions,isEnabled:t.brokerOptions?.enabled??!1,enableMsaPassthrough:t.brokerOptions?.legacyEnableMsaPassthrough??!1}};if(t.tokenCachePersistenceOptions?.enabled){if(w3t===void 0)throw new Error(["Persistent token caching was requested, but no persistence provider was configured.","You must install the identity-cache-persistence plugin package (`npm install --save @azure/identity-cache-persistence`)","and enable it by importing `useIdentityPlugin` from `@azure/identity` and calling","`useIdentityPlugin(cachePersistencePlugin)` before using `tokenCachePersistenceOptions`."].join(" "));let r=t.tokenCachePersistenceOptions.name||lln;e.cache.cachePlugin=w3t({name:`${r}.${cln}`,...t.tokenCachePersistenceOptions}),e.cache.cachePluginCae=w3t({name:`${r}.${aln}`,...t.tokenCachePersistenceOptions})}return t.brokerOptions?.enabled&&(e.broker.nativeBrokerPlugin=QMo(t.isVSCodeCredential||!1)),e}a(FMo,"generatePluginConfiguration");var uln={missing:a((t,e,r)=>[`${t} was requested, but no plugin was configured or no authentication record was found.`,`You must install the ${e} plugin package (npm install --save ${e})`,"and enable it by importing `useIdentityPlugin` from `@azure/identity` and calling",`useIdentityPlugin(${r}) before using enableBroker.`].join(" "),"missing"),unavailable:a((t,e)=>[`${t} was requested, and the plugin is configured, but the broker is unavailable.`,`Ensure the ${t} plugin is properly installed and configured.`,"Check for missing native dependencies and ensure the package is properly installed.",`See the README for prerequisites on installing and using ${e}.`].join(" "),"unavailable")},UMo={vsCode:{credentialName:"Visual Studio Code Credential",packageName:"@azure/identity-vscode",pluginVar:"vsCodePlugin",get brokerInfo(){return dln}},native:{credentialName:"Broker for WAM",packageName:"@azure/identity-broker",pluginVar:"nativeBrokerPlugin",get brokerInfo(){return BMo}}};function QMo(t){let{credentialName:e,packageName:r,pluginVar:n,brokerInfo:o}=UMo[t?"vsCode":"native"];if(o===void 0)throw new Error(uln.missing(e,r,n));if(o.broker.isBrokerAvailable===!1)throw new Error(uln.unavailable(e,r));return o.broker}a(QMo,"getBrokerPlugin");var pln={generatePluginConfiguration:FMo};p();p();p();function qMo(t){return t&&typeof t.error=="string"&&typeof t.error_description=="string"}a(qMo,"isErrorResponse");var mln="CredentialUnavailableError",Qn=class extends Error{static{a(this,"CredentialUnavailableError")}constructor(e,r){super(e,r),this.name=mln}},$$e="AuthenticationError",sq=class extends Error{static{a(this,"AuthenticationError")}statusCode;errorResponse;constructor(e,r,n){let o={error:"unknown",errorDescription:"An unknown error occurred and no additional details are available."};if(qMo(r))o=hln(r);else if(typeof r=="string")try{let s=JSON.parse(r);o=hln(s)}catch{e===400?o={error:"invalid_request",errorDescription:`The service indicated that the request was invalid.
|
|
1708
|
+
`?await A3.promises.rm(o):await A3.promises.writeFile(o,l,{encoding:"utf8",mode:384})}catch{}finally{s&&await s()}}async deleteSetting(r){let n=`${this.directory}/${r}.json`,o;try{o=await J1e.acquire(n),await A3.promises.rm(n)}catch{}finally{o&&await o()}}async listSettings(){try{return(await A3.promises.readdir(this.directory)).filter(n=>n.endsWith(".json")).map(n=>n.slice(0,-5))}catch{return[]}}async listKeys(r){return Object.keys(await this.readJsonObject(r))}async readAll(r){return await this.readJsonObject(r)}async readJsonObject(r){let n=`${this.directory}/${r}.json`;try{let o=await A3.promises.readFile(n,{encoding:"utf8"});return JSON.parse(o)}catch{return{}}}},J1e=class{static{a(this,"LockManager")}static{this.locks=new Map}static{this.DEFAULT_TIMEOUT_MS=1e4}static async acquire(e){await this.getLock(e);let r,n=new Promise(o=>{r=o});return this.locks.set(e,n),()=>Promise.resolve().then(()=>{r&&(r(),r=void 0,this.locks.get(e)===n&&this.locks.delete(e))})}static async getLock(e){let r=Date.now();for(;Date.now()-r<this.DEFAULT_TIMEOUT_MS;){let n=this.locks.get(e);if(!n)return;let o=this.DEFAULT_TIMEOUT_MS-(Date.now()-r);if(o<=0)return;let s=new Promise((c,l)=>{setTimeout(()=>{l(new Error("timeout"))},o)});try{await Promise.race([n,s])}catch{return}}}};function bMo(){if(iq.env.XDG_CONFIG_HOME&&$le.isAbsolute(iq.env.XDG_CONFIG_HOME))return iq.env.XDG_CONFIG_HOME+"/github-copilot";if((0,Gle.platform)()==="win32"){let e=iq.env.USERPROFILE||_3t.homedir();return e?e+"\\AppData\\Local\\github-copilot":Qcn()}let t=iq.env.HOME&&iq.env.HOME.length>0?iq.env.HOME:_3t.homedir();return t?t+"/.config/github-copilot":Qcn()}a(bMo,"getXdgConfigPath");var _3t={homedir:Gle.homedir,tmpdir:Gle.tmpdir};function Qcn(){return $le.join(_3t.tmpdir(),"github-copilot")}a(Qcn,"tmpdirConfigPath");function qcn(){return new E3t(bMo())}a(qcn,"makeXdgPersistenceManager");p();var Us=class{static{a(this,"StatusReporter")}#e=0;#t="Normal";#r;#n;#o=!0;#i={category:"auth",kind:"Warning",message:"Not initialized",askToReSignin:!1,result:{status:"NotSignedIn"}};#s={category:"cls",kind:"Normal",inactive:!1};get busy(){return this.#e>0}trackCompletionJob(e){return this.#t==="Warning"&&this.forceNormalV1(),this.#s.kind==="Warning"&&this.forceNormalV2("cls",{inactive:!1}),this.#e++===0&&(this.#a(),this.#c("completion")),e().finally(()=>{--this.#e===0&&(this.#a(),this.#c("completion"))})}forceStatusV1(e,r,n){this.#t===e&&this.#r===r&&!n&&!this.#n&&!this.#o||(this.#t=e,this.#r=r,this.#n=n,this.#o=!1,this.#a())}forceStatusV2(e,r){e==="auth"?this.#i=r:this.#s=r,this.#c(e)}forceStatus(e,r,n){this.forceStatusV1(r.kind,r.message,n),this.forceStatusV2(e,r)}forceNormalV1(){this.#t!=="Inactive"&&this.forceStatusV1("Normal")}forceNormalV2(e,r){this.forceStatusV2(e,{...r,kind:"Normal",category:e})}forceNormal(e,r){this.forceNormalV1(),this.forceNormalV2(e,r)}setErrorV1(e,r){this.forceStatusV1("Error",e,r)}setErrorV2(e,r){let n=e==="auth"?this.#i:this.#s;this.forceStatusV2(e,{...n,...r,kind:"Error",category:e})}setError(e,r,n){this.setErrorV1(r.message,n),this.setErrorV2(e,r)}setWarningV1(e){this.#t!=="Error"&&this.forceStatusV1("Warning",e)}setWarningV2(e,r){let n=e==="auth"?this.#i:this.#s;n.kind!=="Error"&&this.forceStatusV2(e,{...n,...r,kind:"Warning",category:e})}setWarning(e,r){r?.message&&this.setWarningV1(r.message),this.setWarningV2(e,r)}setInactiveV1(e){this.#t==="Error"||this.#t==="Warning"||this.forceStatusV1("Inactive",e)}setClsInactiveV2(e){this.setInactiveV1(e),!(this.#s.kind==="Error"||this.#s.kind==="Warning")&&(this.#s.inactive&&this.#s.message===e||(this.#s={category:"cls",kind:"Normal",inactive:!0,message:e},this.#c("cls")))}setClsInactive(e){this.setInactiveV1(e),this.setClsInactiveV2(e)}clearInactiveV1(){this.#t==="Inactive"&&this.forceStatusV1("Normal")}clearClsInactiveV2(){this.#s.inactive&&(this.#s={category:"cls",kind:"Normal",inactive:!1},this.#c("cls"))}clearClsInactive(){this.clearInactiveV1(),this.clearClsInactiveV2()}sendInitNonAuthStatus(){this.didChangeV2({statuses:[this.#s,{category:"completion",busy:this.busy}]})}#a(){let e={kind:this.#t,message:this.#r,busy:this.busy,command:this.#n};this.didChangeV1(e)}#c(e){let r=this.#u(e);this.didChangeV2({statuses:[r]})}#u(e){switch(e){case"completion":return{category:"completion",busy:this.#e>0};case"auth":return this.#i;case"cls":return this.#s}}},k$e=class extends Us{static{a(this,"NoOpStatusReporter")}didChangeV1(){}didChangeV2(){}};p();var Hcn={PickerListed:"auth.account_picker.listed",PickerUsed:"auth.account_picker.used"};function jcn(t,e){Vt(t,Hcn.PickerListed,{editorId:e.editorId,hasCurrentSession:String(e.hasCurrentSession),hasOptOutTombstone:String(e.hasOptOutTombstone)},{candidateCount:e.candidateCount,migrationMs:e.migrationMs,listTokensMs:e.listTokensMs,activeSessionMs:e.activeSessionMs,optOutTombstoneMs:e.optOutTombstoneMs,durationMs:e.durationMs})}a(jcn,"telemetryAuthPickerListed");function v3t(t,e){Vt(t,Hcn.PickerUsed,{editorId:e.editorId,status:e.status,clearedTombstone:String(e.clearedTombstone),crossEditorReuse:String(e.crossEditorReuse)},{validationMs:e.validationMs})}a(v3t,"telemetryAuthPickerUsed");p();var oq={StoreInitialize:"auth.store.initialize",StoreError:"auth.store.error",StoreMigration:"auth.store.migration",SessionActivated:"auth.session.activated",SessionDeactivated:"auth.session.deactivated",TokenRevoked:"auth.token.revoked",EncryptionInitialize:"auth.encryption.initialize"};function Gcn(t,e){Bs(t,oq.StoreInitialize,e.error,{repoKind:e.repoKind,errorPhase:e.errorPhase||""},{durationMs:e.durationMs}),ft(t,oq.StoreInitialize)}a(Gcn,"telemetryAuthStoreInitialize");function $cn(t,e){Bs(t,oq.StoreError,e.error,{editorId:e.editorId,op:e.op})}a($cn,"telemetryAuthStoreError");function Vcn(t,e){Bs(t,oq.StoreMigration,e.error,{editorId:e.editorId,outcome:e.outcome},{appsRecords:e.appsRecords,hostsRecords:e.hostsRecords,skippedRecords:e.skippedRecords,durationMs:e.durationMs})}a(Vcn,"telemetryAuthStoreMigration");function C3t(t,e){let r={editorId:e.editorId,trigger:e.trigger};e.crossEditorReuse!==void 0&&(r.crossEditorReuse=String(e.crossEditorReuse)),e.tokenRewrite!==void 0&&(r.tokenRewrite=String(e.tokenRewrite)),Vt(t,oq.SessionActivated,r,{durationMs:e.durationMs})}a(C3t,"telemetryAuthSessionActivated");function Wcn(t,e){Vt(t,oq.SessionDeactivated,{editorId:e.editorId})}a(Wcn,"telemetryAuthSessionDeactivated");function D$e(t,e){Vt(t,oq.TokenRevoked,{editorId:e.editorId,trigger:e.trigger},{affectedEditors:e.affectedEditors})}a(D$e,"telemetryAuthTokenRevoked");function N$e(t,e){Bs(t,oq.EncryptionInitialize,e.diagnostics.error,{writerKind:e.writerKind,available:String(e.diagnostics.available),errorPhase:e.diagnostics.errorPhase??"",masterKeySource:e.diagnostics.masterKeySource??""})}a(N$e,"telemetryAuthEncryptionInitialize");var SMo="apps",zcn="hosts",ef=new pe("AuthManager"),Ycn="legacy_files_migration_done",TMo=5,IMo=6e4,Lr=class{constructor(e,r){this.ctx=e;this.env=r}static{a(this,"AuthManager")}hasTransientSession(){return this.transientSession!==void 0}get _copilotTokenManager(){return this.ctx.get(Ft)}getConfiguredUrls(){return this.ctx.get(Ru).getConfiguredUrls()}async checkAndUpdateStatus(e){let r=e?.localChecksOnly??!1,n=e?.githubAppId!==void 0?await this.resolvePersistedSession(e):await this.resolveSession(e?.authAuthority);return n===void 0?(this._copilotTokenManager.resetToken("session_not_found"),ef.info(this.ctx,"checkAndUpdateStatus: no session found, priming token"),await this._copilotTokenManager.primeToken(),{status:"NotSignedIn"}):r?(this.ctx.get(Us).forceNormalV2("auth",{result:{status:"MaybeOK",user:n.login}}),{status:"MaybeOK",user:n.login}):(e?.forceRefresh&&this._copilotTokenManager.resetToken("force_refresh"),{status:await y3t(this.ctx,n,e?.freshSignIn??!1),user:n.login})}getAuthSourceEnvVar(){return O$e(this.env).sourceEnvVar}async resolveSession(e){await this.ctx.get(ro).requireReady();let{session:r,sourceEnvVar:n}=O$e(this.env);if(r)return this._copilotTokenManager.setActiveTokenId(void 0),ef.info(this.ctx,`resolveSession: resolved from env var ${n}`),{...r,...CE(r)};let o=await this.transientSession;if(o){if(o.accessToken===void 0){ef.info(this.ctx,"resolveSession: transient session is a shadow, no session");return}return ef.info(this.ctx,"resolveSession: resolved from transient session"),{...o,...CE(o)}}let s=await this.resolvePersistedSession({authAuthority:e});return ef.info(this.ctx,`resolveSession: persisted store ${s?"resolved a session":"returned no session"}`),s}setTransientSession(e){this.transientSession=e&&Promise.resolve(e),this._copilotTokenManager.setActiveTokenId(void 0),this._copilotTokenManager.resetToken("set_transient_session")}},M$e=class extends Lr{constructor(){super(...arguments);this.lastTouchAt=0}static{a(this,"PersistentAuthManager")}get authRepository(){return this.ctx.get(yO)}async tracked(r,n){try{return await n()}catch(o){throw ef.exception(this.ctx,o,`authStore.${r}`),$cn(this.ctx,{editorId:this.editorId(),op:r,error:o}),o}}editorId(){return this.cachedEditorId===void 0&&(this.cachedEditorId=this.ctx.get(Ir).getEditorIdentity().editorId),this.cachedEditorId}tokenRecordToSession(r){let n;try{n=sQ(this.ctx,r.authAuthority)}catch(o){ef.warn(this.ctx,"tokenRecordToSession: dropping record with unparseable authAuthority",o);return}return{serverUrl:n.serverUrl,apiUrl:n.apiUrl,accessToken:r.accessToken,login:r.user,githubAppId:r.oauthClientId||void 0,scopes:xMo(r.scopes)}}async ensureSqliteMigration(){return this.sqliteMigrationPromise||(this.sqliteMigrationPromise=this.runSqliteMigration()),this.sqliteMigrationPromise}async runSqliteMigration(){let r=this.authRepository;try{if(await r.getMetadata(Ycn))return}catch{}let n=Date.now(),o=0,s=0,c=0,l="ok",u,d=!1;try{let f=this.ctx.get(Hn),h=this.editorId(),[m,g]=await Promise.all([f.readAll(SMo).catch(()=>({})),f.readAll(zcn).catch(()=>({}))]);d=Object.keys(m).length>0||Object.keys(g).length>0;for(let[A,y]of Object.entries(m)){let E=Kcn(y);if(!E){c++;continue}let[_,v]=wMo(A)??["github.com",Vle],S=E.oauth_token||E.access_token,T=E.user||E.login;if(!S||!T){c++;continue}let w=E.authAuthority||_;if(!FLt(w)){c++;continue}try{await r.upsertTokenAndAssign(h,{user:T,accessToken:S,authAuthority:w,oauthClientId:E.githubAppId??v,scopes:b3t(E.scopes)}),o++}catch{c++}}for(let[A,y]of Object.entries(g)){let E=Kcn(y);if(!E){c++;continue}let _=E.oauth_token||E.access_token,v=E.user||E.login;if(!_||!v){c++;continue}let S=E.authAuthority||A;if(!FLt(S)){c++;continue}try{await r.upsertTokenAndAssign(h,{user:v,accessToken:_,authAuthority:S,oauthClientId:E.githubAppId??Vle,scopes:b3t(E.scopes)}),s++}catch{c++}}}catch(f){l="failed",u=f}finally{l==="ok"&&!d&&(l="noop");try{await this.tracked("metadata",()=>r.setMetadata(Ycn,String(Date.now())))}catch{}this.ctx.get(Hn).deleteSetting(zcn).catch(()=>{}),Vcn(this.ctx,{editorId:this.editorId(),outcome:l,error:u,appsRecords:o,hostsRecords:s,skippedRecords:c,durationMs:Date.now()-n}),ef.info(this.ctx,`runSqliteMigration: outcome=${l} apps=${o} hosts=${s} skipped=${c}`)}}tryAutoAdoptCoalesced(){return this.autoAdoptPromise||(this.autoAdoptPromise=this.tryAutoAdopt().finally(()=>{this.autoAdoptPromise=void 0})),this.autoAdoptPromise}async tryAutoAdopt(){let r=this.authRepository,n=this.editorId(),o=Date.now(),s=await r.listTokensByRecency(TMo);if(ef.debug(this.ctx,`tryAutoAdopt: editorId=${n} candidates=${s.length}`),s.length===0)return;let c=this.ctx.get(sm);for(let l of s){let u=this.tokenRecordToSession(l.record);if(!u){ef.info(this.ctx,`tryAutoAdopt: dropping corrupt-authority tokenId=${l.tokenId}; continuing walk`),await this.revokeTokenById(l.tokenId,"corrupt_authority");continue}let d;try{d=await c.fetchTokenResult(this.ctx,u)}catch{ef.debug(this.ctx,`tryAutoAdopt: transient fetch error tokenId=${l.tokenId}; aborting walk`);return}if(d.copilotToken||d.failureKind==="NotAuthorized"){ef.info(this.ctx,`tryAutoAdopt: adopting tokenId=${l.tokenId} crossEditor=${l.sourceEditorId!==n} noCopilotAccess=${d.failureKind==="NotAuthorized"}`);try{await this.tracked("assign",()=>r.assignActiveSession(n,l.tokenId))}catch(f){ef.info(this.ctx,`tryAutoAdopt: assign failed for tokenId=${l.tokenId} (${f?.message??f}); continuing walk`);continue}return this._copilotTokenManager.setActiveTokenId(l.tokenId),C3t(this.ctx,{editorId:n,trigger:"auto_adopt",crossEditorReuse:l.sourceEditorId!==n,durationMs:Date.now()-o}),u}if(d.failureKind==="HTTP401"){ef.info(this.ctx,`tryAutoAdopt: skipping invalid tokenId=${l.tokenId} (not revoking); continuing walk`);continue}ef.debug(this.ctx,`tryAutoAdopt: transient failure tokenId=${l.tokenId} kind=${d.failureKind}; aborting walk`);return}ef.debug(this.ctx,`tryAutoAdopt: exhausted candidates editorId=${n}`)}async signInEditor(r){if(!r.user)throw new Fn("Cannot sign in: missing GitHub username.");if(!r.accessToken)throw new Fn("Cannot sign in: missing GitHub access token.");await this.ensureSqliteMigration();let n=this.editorId(),o=Date.now();ef.debug(this.ctx,`signInEditor: editorId=${n} authority=${r.authAuthority} appId=${r.githubAppId??""}`);let s=await this.tracked("upsert",()=>this.authRepository.upsertTokenAndAssign(n,{user:r.user,accessToken:r.accessToken,authAuthority:r.authAuthority,oauthClientId:r.githubAppId??"",scopes:b3t(r.scopes)}));ef.info(this.ctx,`signInEditor: persisted editorId=${n} tokenId=${s.tokenId} rewrite=${s.tokenRewrite}`),C3t(this.ctx,{editorId:n,trigger:"sign_in",tokenRewrite:s.tokenRewrite,durationMs:Date.now()-o});let c=sQ(this.ctx,r.authAuthority);return this.setTransientSession({login:r.user,accessToken:r.accessToken,githubAppId:r.githubAppId,serverUrl:c.serverUrl,apiUrl:c.apiUrl}),this._copilotTokenManager.setActiveTokenId(s.tokenId),await this.checkAndUpdateStatus({forceRefresh:!0,freshSignIn:!0,authAuthority:r.authAuthority})}async signOutEditor(){let r=this.editorId();return ef.info(this.ctx,`signOutEditor: editorId=${r}`),await this.tracked("opt_out",()=>this.authRepository.markEditorOptedOut(r)),Wcn(this.ctx,{editorId:r}),this._copilotTokenManager.setActiveTokenId(void 0),this.setTransientSession(void 0),await this.checkAndUpdateStatus({forceRefresh:!0})}async revokeTokenById(r,n){ef.info(this.ctx,`revokeTokenById: tokenId=${r} trigger=${n??"unknown"}`);let o=await this.tracked("revoke",()=>this.authRepository.deleteTokenCascade(r));return ef.info(this.ctx,`revokeTokenById: cascade complete tokenId=${r} affectedEditors=${o.affectedEditors}`),D$e(this.ctx,{editorId:this.editorId(),trigger:n??"unknown",affectedEditors:o.affectedEditors}),this._copilotTokenManager.resetToken("token_revoked",void 0,r),this._copilotTokenManager.getActiveTokenId()===r&&(this._copilotTokenManager.setActiveTokenId(void 0),await this.checkAndUpdateStatus({forceRefresh:!0})),o}async useExistingToken(r){let n=this.authRepository,o=this.editorId(),s=await n.getTokenById(r);if(!s)return v3t(this.ctx,{editorId:o,status:"revoked",clearedTombstone:!1,crossEditorReuse:!1,validationMs:0}),{status:"revoked"};let c=s.sourceEditorId!==o,l=await n.hasOptOutTombstone(o);this.setTransientSession(void 0),await n.assignActiveSession(o,r),this._copilotTokenManager.setActiveTokenId(r);let u=performance.now(),d,f=!1;try{d=(await this.checkAndUpdateStatus({forceRefresh:!0,freshSignIn:!0,authAuthority:s.record.authAuthority})).status}catch{f=!0,d="NotSignedIn"}let h;switch(d){case"OK":h="ok";break;case"NotAuthorized":h="not_entitled";break;default:h=f?"transient":"revoked";break}return v3t(this.ctx,{editorId:o,status:h,clearedTombstone:l,crossEditorReuse:c,validationMs:performance.now()-u}),{status:h}}async listAvailableTokens(){let r=this.editorId(),n=performance.now(),o=n;await this.ensureSqliteMigration();let s=performance.now()-o,c=this.authRepository;o=performance.now();let l=await c.listAvailableTokens(),u=performance.now()-o;o=performance.now();let d=await c.getActiveSession(r),f=performance.now()-o,h=l.map(y=>({tokenId:y.tokenId,authAuthority:y.authAuthority,userLogin:y.userLogin,isCurrent:d?.tokenId===y.tokenId,lastUsedAt:y.lastUsedAt})),m=h.some(y=>y.isCurrent);o=performance.now();let g=await c.hasOptOutTombstone(r),A=performance.now()-o;return jcn(this.ctx,{editorId:r,candidateCount:h.length,hasCurrentSession:m,hasOptOutTombstone:g,migrationMs:s,listTokensMs:u,activeSessionMs:f,optOutTombstoneMs:A,durationMs:performance.now()-n}),h}async resolvePersistedSession(r){await this.ensureSqliteMigration();let n=this.authRepository,o=this.editorId(),s=this.ctx.get(Mn).getCapabilities().accountPickerEnabled,c=await n.hasOptOutTombstone(o),l=await n.getActiveSession(o),u=!l&&!s&&!c;if(u&&(await this.tryAutoAdoptCoalesced(),l=await n.getActiveSession(o)),!l){ef.info(this.ctx,`resolvePersistedSession: no active session editorId=${o} pickerEnabled=${s} optedOut=${c} autoAdoptAttempted=${u}`);return}let d=sQ(this.ctx,r?.authAuthority);if(r?.authAuthority!==void 0&&l.record.authAuthority!==d.authAuthority){ef.info(this.ctx,`resolvePersistedSession: active session authority mismatch editorId=${o}`);return}if(r?.githubAppId!==void 0&&l.record.oauthClientId!==r.githubAppId){ef.info(this.ctx,`resolvePersistedSession: active session appId mismatch editorId=${o}`);return}let f=this.tokenRecordToSession(l.record);if(!f){await this.revokeTokenById(l.tokenId,"corrupt_authority");return}this._copilotTokenManager.setActiveTokenId(l.tokenId);let h=Date.now();return h-this.lastTouchAt>=IMo&&(this.lastTouchAt=h,n.touchActiveSession(o).catch(()=>{})),f}};function wMo(t){let e=t.lastIndexOf(":");if(e<0)return;let r=t.slice(e+1);if(r)return[t.slice(0,e),r]}a(wMo,"splitAppsKey");function xMo(t){if(t)return typeof t=="string"?t.split(" ").filter(e=>e.length>0):t}a(xMo,"normalizeScopes");function b3t(t){return t?typeof t=="string"?t:t.join(" "):""}a(b3t,"scopesToString");function Kcn(t){if(!(!t||typeof t!="object"||Array.isArray(t)))return t}a(Kcn,"asLegacyAuthRecord");function O$e(t){return t.GH_COPILOT_TOKEN&&!/=/.test(t.GH_COPILOT_TOKEN)?{session:{...CE({apiUrl:t.GH_COPILOT_API_URL,serverUrl:t.GH_COPILOT_SERVER_URL}),login:t.GH_COPILOT_USER||"<GH_COPILOT_TOKEN-user>",accessToken:t.GH_COPILOT_TOKEN},sourceEnvVar:"GH_COPILOT_TOKEN"}:t.GITHUB_COPILOT_TOKEN?{session:{...CE({apiUrl:t.GITHUB_COPILOT_API_URL,serverUrl:t.GITHUB_COPILOT_SERVER_URL}),login:t.GITHUB_COPILOT_USER||"<GITHUB_COPILOT_TOKEN-user>",accessToken:t.GITHUB_COPILOT_TOKEN},sourceEnvVar:"GITHUB_COPILOT_TOKEN"}:t.CODESPACES==="true"&&t.GITHUB_TOKEN?{session:{...CE({apiUrl:t.GITHUB_API_URL,serverUrl:t.GITHUB_SERVER_URL}),login:t.GITHUB_USER||"<codespaces-user>",accessToken:t.GITHUB_TOKEN},sourceEnvVar:"GITHUB_TOKEN"}:{}}a(O$e,"getSessionFromEnv");p();var L$e=class{constructor(e,r=100){this.intervalMs=e;this.seen=new mn(r)}static{a(this,"OccurrenceCoalescer")}recordAndCount(e){let r=Date.now(),n=this.seen.get(e);if(n!==void 0&&r-n.lastReportMs<this.intervalMs){n.suppressed++;return}return this.seen.set(e,{suppressed:0,lastReportMs:r}),(n?.suppressed??0)+1}};p();var RMo=["UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_SIGNATURE_FAILURE"],Jcn="Your proxy connection requires a trusted certificate. Please make sure the proxy certificate and any issuers are configured correctly and trusted by your operating system.",Zcn="https://gh.io/copilot-network-errors",lb=class{constructor(){this.notifiedErrorCodes=[]}static{a(this,"UserErrorNotifier")}notifyUser(e,r){if(!(r instanceof Error))return;let n=r;n.code&&RMo.includes(n.code)&&!this.didNotifyBefore(n.code)&&(this.notifiedErrorCodes.push(n.code),this.displayCertificateErrorNotification(e,n))}async displayCertificateErrorNotification(e,r){new pe("certificates").error(e,`${Jcn} Please visit ${Zcn} to learn more. Original cause:`,r);let n={title:"Learn more"};return e.get(hs).showWarningMessage(Jcn,n).then(o=>{if(o?.title===n.title)return e.get(yg).open(Zcn)})}didNotifyBefore(e){return this.notifiedErrorCodes.indexOf(e)!==-1}};var S3t=class extends Fn{constructor(r){super("message"in r?r.message:`${r.failureKind}`);this.result=r}static{a(this,"TokenResultError")}},Xcn=3e3,PMo=3e4,kMo=new Set([401,403]),DMo=300*1e3,B$e=class extends Error{static{a(this,"TokenFetchThrottleError")}constructor(e){super(`Throttled: ${e.message}`,{cause:e}),this.name="TokenFetchThrottleError"}},Ft=class{constructor(e,r=!1){this.ctx=e;this.primed=r;this.lastToken=void 0;this.activeToken=void 0;this.activeTokenId=void 0;this.tokenPromise=void 0;this.tokenPrimingError=void 0;this.skippedResets=new L$e(DMo);this.didChangeTokenResult=new io;this.onDidChangeTokenResult=this.didChangeTokenResult.event;this.didResetToken=new io;this.onDidResetToken=this.didResetToken.event}static{a(this,"CopilotTokenManager")}async getGitHubSession(){return await this.ctx.get(Lr).resolveSession()}primeToken(){if(this.tokenPrimingError)return Promise.reject(this.tokenPrimingError);this.primed=!0;try{return this.getToken().then(()=>!0,()=>!1)}catch{return Promise.resolve(!1)}}async fetchTokenResult(e){let r=this.tokenFetchThrottle;if(r&&Date.now()<r.untilTsMillisecond)throw new B$e(r.error);this.tokenFetchThrottle=void 0;try{return await this.ctx.get(sm).fetchTokenResult(this.ctx,e,this.lastToken)}catch(n){if(n instanceof Error&&kLt(n)){let o=this.computeThrottleDelayMs(n);this.tokenFetchThrottle={untilTsMillisecond:Date.now()+o,error:n},this.reportThrottleWindowStarted(n,o)}throw n}}computeThrottleDelayMs(e){let r=e instanceof rv?e.retryAfterSeconds:void 0;return r===void 0?Xcn:Math.min(Math.max(r*1e3,Xcn),PMo)}reportThrottleWindowStarted(e,r){Bs(this.ctx,"auth.token_fetch_throttled",e,{failureReason:RMt(e),httpStatus:e instanceof rv?String(e.status):""},{delayMs:r})}setToken(e){this.activeToken=this.lastToken=e}async getTokenResult(){if(!this.primed){let r=new Error("Token requested before initialization");if(eln(this.ctx))throw this.tokenPrimingError=r,r;nv.exception(this.ctx,r,".getToken")}if(this.activeToken!==void 0&&!this.activeToken.needsRefresh())return{copilotToken:this.activeToken};if(!this.tokenPromise){let r,n=this.captureFetchContext(),o=this.getGitHubSession().then(async s=>s?(r=s.login,await this.fetchTokenResult(s)):{failureKind:"NotSignedIn"}).catch(s=>{if(!(s instanceof Error))throw s;return{failureKind:"Exception",message:String(s),exception:s}}).then(s=>(this.tokenPromise!==o||(this.tokenPromise=void 0,this.handleTokenResult(s,r,n)),s));this.tokenPromise=o}return await this.tokenPromise}handleTokenResult(e,r,n){let o=this.ctx.get(Us);switch(e.failureKind){case"NotSignedIn":o.setError("auth",{message:"You are not signed into GitHub.",askToReSignin:!1,result:{status:"NotSignedIn",user:r}});break;case"HTTP401":o.setError("auth",{message:"Your GitHub Copilot session has expired. You have been signed out. Please sign in again to continue using GitHub Copilot.",askToReSignin:!0,result:{status:"NotSignedIn",user:r}},{command:"github.copilot.signIn",title:"Sign In"});break;case"NotAuthorized":o.setError("auth",{message:e.message,askToReSignin:!1,result:{status:"NotAuthorized",user:r??""}});break;case"Exception":o.setWarning("auth",{message:e.message,askToReSignin:!1}),this.ctx.get(lb).notifyUser(this.ctx,e.exception);break;case void 0:o.forceNormal("auth",{result:{status:"OK",user:r??"",analyticsTrackingId:e.copilotToken.userInfo.raw?.analytics_tracking_id,sku:e.copilotToken.getTokenValue("sku")}}),this.setToken(e.copilotToken)}this.didChangeTokenResult.fire(e);let s={result:e.copilotToken?"success":"failure",errorCode:e.failureKind??"",failureReason:e.exception?RMt(e.exception):"",trigger:n?.trigger??"unknown",editorPreviewEnabled:e.copilotToken?e.copilotToken.getTokenValue("editor_preview_features")==="0"?"false":"true":"",recognizedTransient:e.exception?String(kLt(e.exception)):""},c=LF(),l={previousRemainingLifetime:n?.previousRemainingLifetime??-1,previousUnadjustedRemainingLifetime:n?.previousUnadjustedRemainingLifetime??-1,newRefreshIn:e.copilotToken?.envelope.refresh_in??-1,newRemainingLifetime:e.copilotToken?e.copilotToken.expiresAt-c:-1,newUnadjustedRemainingLifetime:e.copilotToken?e.copilotToken.envelope.expires_at-c:-1};"exception"in e&&e.exception instanceof B$e||("exception"in e&&e.exception?Bs(this.ctx,"auth.token_reset_complete",e.exception,s,l):Vt(this.ctx,"auth.token_reset_complete",s,l))}reportSkippedReset(e,r){let n=this.skippedResets.recordAndCount(`${e}:${r}`);n!==void 0&&Vt(this.ctx,"auth.token_reset_skipped",{caller:e,httpStatus:String(r)},{occurrences:n})}captureFetchContext(){let e=this.activeToken??this.lastToken,r=this.lastToken===void 0?"initial":this.activeToken===void 0?"after_reset":"expiry",n=LF(),o=e?e.expiresAt-n:-1,s=e?e.envelope.expires_at-n:-1;return{trigger:r,previousRemainingLifetime:o,previousUnadjustedRemainingLifetime:s}}async getToken(){let e=await this.getTokenResult();if(e.copilotToken)return e.copilotToken;throw e.exception?e.exception:new S3t(e)}setActiveTokenId(e){if(this.activeTokenId===e)return;let r=this.activeTokenId;this.activeTokenId=e,r!==void 0&&this.activeToken&&this.resetToken("active_token_id_changed")}getActiveTokenId(){return this.activeTokenId}peekCachedTokenLifetime(){if(!this.activeToken)return{state:this.tokenPromise?"refreshing":"none",remainingSeconds:-1};let e=this.activeToken.expiresAt-LF();return{state:this.activeToken.isExpired()?"expired":this.activeToken.needsRefresh()?"needs_refresh":"valid",remainingSeconds:e}}resetToken(e,r,n){if(n!==void 0&&this.activeTokenId!==void 0&&n!==this.activeTokenId){nv.debug(this.ctx,`Skipping token reset from ${e} for tokenId ${n} because activeTokenId is ${this.activeTokenId}`);return}if(r!==void 0&&!kMo.has(r)){nv.debug(this.ctx,`Skipping token reset from ${e} on HTTP error ${r}: not an auth failure`),this.reportSkippedReset(e,r);return}if(r!==void 0?(ft(this.ctx,"auth.reset_token_"+r),nv.debug(this.ctx,`Resetting copilot token on HTTP error ${r} (caller: ${e})`)):nv.debug(this.ctx,`Resetting copilot token (caller: ${e})`),!this.activeToken&&!this.tokenPromise)return;let o=LF(),s=this.activeToken?this.activeToken.expiresAt-o:-1,c=this.activeToken?this.activeToken.envelope.expires_at-o:-1;Vt(this.ctx,"auth.token_reset_trigger",{caller:e,httpStatus:r!==void 0?String(r):"",hadActiveToken:String(!!this.activeToken),hadPendingRefresh:String(!!this.tokenPromise)},{remainingLifetime:s,unadjustedRemainingLifetime:c}),this.activeToken=void 0,this.tokenPromise=void 0,this.didResetToken.fire()}getLastToken(){return this.lastToken}};function sx(t){return t.get(Ft).getLastToken()}a(sx,"getLastCopilotToken");p();var ub=class{static{a(this,"Clock")}now(){return new Date}};p();var pD=class{static{a(this,"ExpConfigMaker")}},NMo=5e3,MMo=2e3,Z1e=class extends pD{constructor(r={}){super();this.defaultFilters=r}static{a(this,"ExpConfigFromTAS")}async fetchExperiments(r,n,o){let s=Object.keys(o).length===0?this.defaultFilters:o,c=new URL("telemetry",n.telemetry).href,l=await this.fetchOnce(r,c,s,NMo);return l.kind==="failure"&&l.retryable&&(l=await this.fetchOnce(r,c,s,MMo)),l.kind==="failure"?Gw.createFallbackConfig(r,l.reason):l.config}async fetchOnce(r,n,o,s){let c=r.get(zt),l;try{l=await c.fetch(n,{method:"GET",headers:o,timeout:s})}catch(h){return{kind:"failure",reason:`Error fetching ExP config: ${String(h)}`,retryable:!0}}if(!l.ok){let h=l.status>=500||l.status===429;return{kind:"failure",reason:`ExP responded with ${l.status}`,retryable:h}}let u;try{u=await l.json()}catch(h){if(h instanceof SyntaxError)return Ua(r,h,"fetchExperiments"),{kind:"failure",reason:"ExP responded with invalid JSON",retryable:!1};throw h}let d=u.Configs.find(h=>h.Id==="vscode")??{Id:"vscode",Parameters:{}},f=Object.entries(d.Parameters).map(([h,m])=>h+(m?"":"cf"));return{kind:"success",config:new Gw(d.Parameters,u.AssignmentContext,f.join(";"))}}},F$e=class extends pD{static{a(this,"ExpConfigNone")}fetchExperiments(){return Promise.resolve(Gw.createEmptyConfig())}};p();p();var U$e=class{constructor(e){this.prefix=e}static{a(this,"GranularityImplementation")}getCurrentAndUpComingValues(e){let r=this.getValue(e),n=this.getUpcomingValues(e);return[r,n]}},T3t=class extends U$e{static{a(this,"ConstantGranularity")}getValue(e){return this.prefix}getUpcomingValues(e){return[]}},tln=a(t=>new T3t(t),"DEFAULT_GRANULARITY"),Q$e=class extends U$e{constructor(r,n=.5,o=new Date().setUTCHours(0,0,0,0)){super(r);this.prefix=r;this.fetchBeforeFactor=n;this.anchor=o}static{a(this,"TimeBucketGranularity")}setTimePeriod(r){isNaN(r)?this.timePeriodLengthMs=void 0:this.timePeriodLengthMs=r}setByCallBuckets(r){isNaN(r)?this.numByCallBuckets=void 0:this.numByCallBuckets=r}getValue(r){return this.prefix+this.getTimePeriodBucketString(r)+(this.numByCallBuckets?this.timeHash(r):"")}getTimePeriodBucketString(r){return this.timePeriodLengthMs?this.dateToTimePartString(r):""}getUpcomingValues(r){let n=[],o=this.getUpcomingTimePeriodBucketStrings(r),s=this.getUpcomingByCallBucketStrings();for(let c of o)for(let l of s)n.push(this.prefix+c+l);return n}getUpcomingTimePeriodBucketStrings(r){if(this.timePeriodLengthMs===void 0)return[""];if((r.getTime()-this.anchor)%this.timePeriodLengthMs<this.fetchBeforeFactor*this.timePeriodLengthMs)return[this.getTimePeriodBucketString(r)];{let n=new Date(r.getTime()+this.timePeriodLengthMs);return[this.getTimePeriodBucketString(r),this.getTimePeriodBucketString(n)]}}getUpcomingByCallBucketStrings(){return this.numByCallBuckets===void 0?[""]:Array.from(Array(this.numByCallBuckets).keys()).map(r=>r.toString())}timeHash(r){return this.numByCallBuckets==null?0:7883*(r.getTime()%this.numByCallBuckets)%this.numByCallBuckets}dateToTimePartString(r){return this.timePeriodLengthMs==null?"":Math.floor((r.getTime()-this.anchor)/this.timePeriodLengthMs).toString()}};var rln="X-Copilot-ClientTimeBucket",q$e=class{constructor(e,r){this.specs=new Map;this.prefix=e,this.clock=r,this.defaultGranularity=tln(e)}static{a(this,"GranularityDirectory")}selectGranularity(e){for(let[r,n]of this.specs.entries())if(e.extends(r))return n;return this.defaultGranularity}update(e,r,n){if(r=r>1?r:NaN,n=n>0?n:NaN,isNaN(r)&&isNaN(n))this.specs.delete(e);else{let o=new Q$e(this.prefix);isNaN(r)||o.setByCallBuckets(r),isNaN(n)||o.setTimePeriod(n*3600*1e3),this.specs.set(e,o)}}extendFilters(e){let r=this.selectGranularity(e),[n,o]=r.getCurrentAndUpComingValues(this.clock.now());return{newFilterSettings:e.withChange(rln,n),otherFilterSettingsToPrefetch:o.map(s=>e.withChange(rln,s))}}};p();p();p();p();var I3t=new Map;async function OMo(t){if(I3t.has(t))return I3t.get(t);let e=await crypto.subtle.importKey("raw",new TextEncoder().encode(t),{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return I3t.set(t,e),e}a(OMo,"getCachedHmacKey");async function LMo(t){if(t)try{let e=await OMo(t),r=Math.floor(Date.now()/1e3).toString(),n=new TextEncoder().encode(r),o=await crypto.subtle.sign("HMAC",e,n),c=Array.from(new Uint8Array(o)).map(l=>l.toString(16).padStart(2,"0")).join("");return`${r}.${c}`}catch{return}}a(LMo,"createRequestHMAC");async function nln(t,e){let r=await LMo(t);return r?{"Request-Hmac":r,"Copilot-Integration-Id":e??"jetbrains-chat-dev"}:{}}a(nln,"createMsBenchHmacHeaders");p();p();p();p();var j$e="4.13.2",GK="04b07795-8ddb-461a-bbee-02f9e1bf7b46",iln="common",H$e;(function(t){t.AzureChina="https://login.chinacloudapi.cn",t.AzureGermany="https://login.microsoftonline.de",t.AzureGovernment="https://login.microsoftonline.us",t.AzurePublicCloud="https://login.microsoftonline.com"})(H$e||(H$e={}));var X1e=H$e.AzurePublicCloud,oln="login.microsoftonline.com",sln=["*"],aln="cae",cln="nocae",lln="msal.cache";var w3t;var BMo,G$e,dln;function fln(){return G$e!==void 0&&dln!==void 0}a(fln,"hasVSCodePlugin");function FMo(t){let e={cache:{},broker:{...t.brokerOptions,isEnabled:t.brokerOptions?.enabled??!1,enableMsaPassthrough:t.brokerOptions?.legacyEnableMsaPassthrough??!1}};if(t.tokenCachePersistenceOptions?.enabled){if(w3t===void 0)throw new Error(["Persistent token caching was requested, but no persistence provider was configured.","You must install the identity-cache-persistence plugin package (`npm install --save @azure/identity-cache-persistence`)","and enable it by importing `useIdentityPlugin` from `@azure/identity` and calling","`useIdentityPlugin(cachePersistencePlugin)` before using `tokenCachePersistenceOptions`."].join(" "));let r=t.tokenCachePersistenceOptions.name||lln;e.cache.cachePlugin=w3t({name:`${r}.${cln}`,...t.tokenCachePersistenceOptions}),e.cache.cachePluginCae=w3t({name:`${r}.${aln}`,...t.tokenCachePersistenceOptions})}return t.brokerOptions?.enabled&&(e.broker.nativeBrokerPlugin=QMo(t.isVSCodeCredential||!1)),e}a(FMo,"generatePluginConfiguration");var uln={missing:a((t,e,r)=>[`${t} was requested, but no plugin was configured or no authentication record was found.`,`You must install the ${e} plugin package (npm install --save ${e})`,"and enable it by importing `useIdentityPlugin` from `@azure/identity` and calling",`useIdentityPlugin(${r}) before using enableBroker.`].join(" "),"missing"),unavailable:a((t,e)=>[`${t} was requested, and the plugin is configured, but the broker is unavailable.`,`Ensure the ${t} plugin is properly installed and configured.`,"Check for missing native dependencies and ensure the package is properly installed.",`See the README for prerequisites on installing and using ${e}.`].join(" "),"unavailable")},UMo={vsCode:{credentialName:"Visual Studio Code Credential",packageName:"@azure/identity-vscode",pluginVar:"vsCodePlugin",get brokerInfo(){return dln}},native:{credentialName:"Broker for WAM",packageName:"@azure/identity-broker",pluginVar:"nativeBrokerPlugin",get brokerInfo(){return BMo}}};function QMo(t){let{credentialName:e,packageName:r,pluginVar:n,brokerInfo:o}=UMo[t?"vsCode":"native"];if(o===void 0)throw new Error(uln.missing(e,r,n));if(o.broker.isBrokerAvailable===!1)throw new Error(uln.unavailable(e,r));return o.broker}a(QMo,"getBrokerPlugin");var pln={generatePluginConfiguration:FMo};p();p();p();function qMo(t){return t&&typeof t.error=="string"&&typeof t.error_description=="string"}a(qMo,"isErrorResponse");var mln="CredentialUnavailableError",Qn=class extends Error{static{a(this,"CredentialUnavailableError")}constructor(e,r){super(e,r),this.name=mln}},$$e="AuthenticationError",sq=class extends Error{static{a(this,"AuthenticationError")}statusCode;errorResponse;constructor(e,r,n){let o={error:"unknown",errorDescription:"An unknown error occurred and no additional details are available."};if(qMo(r))o=hln(r);else if(typeof r=="string")try{let s=JSON.parse(r);o=hln(s)}catch{e===400?o={error:"invalid_request",errorDescription:`The service indicated that the request was invalid.
|
|
1709
1709
|
|
|
1710
1710
|
${r}`}:o={error:"unknown_error",errorDescription:`An unknown error has occurred. Response body:
|
|
1711
1711
|
|
|
@@ -1945,7 +1945,7 @@ ${r}+- `:"";return e+this.description+o}}},L0=class{constructor(e,r,n,o){this.la
|
|
|
1945
1945
|
(using_declaration)
|
|
1946
1946
|
(alias_declaration)
|
|
1947
1947
|
(static_assert_declaration)
|
|
1948
|
-
] @statement`}};var p5=class{constructor(e,r,n){this.languageId=e;this.prefix=r;this.completion=n}static{a(this,"BlockTrimmer")}static isSupported(e){return L0.isSupported(e)}static isTrimmedByDefault(e){return L0.isTrimmedByDefault(e)}async withParsedStatementTree(e){var n=[];try{let r=bMt(n,L0.create(this.languageId,this.prefix+this.completion,this.prefix.length,this.prefix.length+this.completion.length));await r.build();return await e(r)}catch(o){var s=o,c=!0}finally{SMt(n,s,c)}}trimmedCompletion(e){return e===void 0?this.completion:this.completion.substring(0,e)}getStatementAtCursor(e){return e.statementAt(Math.max(this.prefix.length-1,0))??e.statements[0]}getContainingBlockOffset(e){let r;if(e&&this.isCompoundStatement(e))r=e;else if(e){let n=e.parent;for(;n&&!this.isCompoundStatement(n);)n=n.parent;r=n}if(r){let n=this.asCompletionOffset(r.node.endIndex);if(n&&this.completion.substring(n).trim()!=="")return n}}hasNonStatementContentAfter(e){if(!e||!e.nextSibling)return!1;let r=this.asCompletionOffset(e.node.endIndex),n=this.asCompletionOffset(e.nextSibling.node.startIndex);return this.completion.substring(Math.max(0,r??0),Math.max(0,n??0)).trim()!==""}asCompletionOffset(e){return e===void 0?void 0:e-this.prefix.length}isCompoundStatement(e){return e.isCompoundStatementType||e.children.length>0}};var IYe=class extends p5{constructor(r,n,o,s=3,c=7){super(r,n,o);this.lineLimit=s;this.lookAhead=c;let l=[...this.completion.matchAll(/\n/g)],u=this.lineLimit+this.lookAhead;l.length>=this.lineLimit&&this.lineLimit>0&&(this.limitOffset=l[this.lineLimit-1].index),l.length>=u&&u>0&&(this.lookAheadOffset=l[u-1].index)}static{a(this,"TerseBlockTrimmer")}async getCompletionTrimOffset(){return await this.withParsedStatementTree(r=>{let n=r.statementAt(this.stmtStartPos()),o=this.getContainingBlockOffset(n);return o=this.trimAtFirstBlankLine(o),n&&(o=this.trimAtStatementChange(n,o)),this.limitOffset&&this.lookAheadOffset&&(o===void 0||o>this.lookAheadOffset)?this.limitOffset:o})}stmtStartPos(){let r=this.completion.match(/\S/);return r&&r.index!==void 0?this.prefix.length+r.index:Math.max(this.prefix.length-1,0)}trimAtFirstBlankLine(r){let n=[...this.trimmedCompletion(r).matchAll(/\r?\n\s*\r?\n/g)];for(;n.length>0&&(r===void 0||r>n[0].index);){let o=n.shift();if(this.completion.substring(0,o.index).trim()!=="")return o.index}return r}trimAtStatementChange(r,n){let o=this.prefix.length,s=this.prefix.length+(n??this.completion.length);if(r.node.endIndex>o&&this.isCompoundStatement(r))return r.nextSibling&&r.node.endIndex<s?this.asCompletionOffset(r.node.endIndex):n;let c=r,l=r.nextSibling;for(;l&&l.node.endIndex<=s&&!this.hasNonStatementContentAfter(c)&&!this.isCompoundStatement(l);)c=l,l=l.nextSibling;return l&&c.node.endIndex>o&&c.node.endIndex<s?this.asCompletionOffset(c.node.endIndex):n}};async function myn(t,e){var l=[];try{let r=t.getText();let n=t.offsetAt(e);let o=bMt(l,L0.create(t.detectedLanguageId,r,0,r.length));await o.build();let s=o.statementAt(n);if(!s)return"non-block";if(!s.isCompoundStatementType&&s.children.length===0)return s.parent&&!s.nextSibling&&s.node.endPosition.row<=e.line?"block-end":s.parent?"mid-block":"non-block";if(s.children.length===0)return"empty-block";let c=s.children[s.children.length-1];if(n<c.node.startIndex)return"mid-block";return"block-end"}catch(u){var d=u,f=!0}finally{SMt(l,d,f)}}a(myn,"getBlockPositionType");p();function aGo(t){return t.HTTPS_PROXY||t.https_proxy||t.HTTP_PROXY||t.http_proxy}a(aGo,"getProxyFromEnvironment");function cGo(t){return t.NODE_TLS_REJECT_UNAUTHORIZED!=="0"}a(cGo,"getRejectUnauthorizedFromEnvironment");var gyn=b.Object({proxy:b.Optional(b.String()),proxyStrictSSL:b.Optional(b.Boolean()),proxyAuthorization:b.Optional(b.String()),proxyKerberosServicePrincipal:b.Optional(b.String()),noProxy:b.Optional(b.Array(b.String()))});function Ayn(t){let e=aGo(t),r=Zxe({proxy:e,proxyStrictSSL:cGo(t)}),n=t.GH_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.GITHUB_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.AGENT_KERBEROS_SERVICE_PRINCIPAL;return n&&(r.proxyKerberosServicePrincipal=n),r}a(Ayn,"getHttpSettingsFromEnvironment");function Zxe(t){if(!t.proxy)return{...t,proxy:""};try{let{protocol:e,host:r,username:n,password:o,pathname:s,search:c,hash:l}=new URL(t.proxy);return{...t,proxy:`${e}//${r}${s}${c}${l}`,proxyAuthorization:t.proxyAuthorization||lGo(n,o),noProxy:t.noProxy||[]}}catch{return{...t,proxy:""}}}a(Zxe,"normalizeHttpSettings");function lGo(t,e){return!t||!e?"":`${decodeURIComponent(t)}:${decodeURIComponent(e)}`}a(lGo,"getAuth");var Xxe={};Fi(Xxe,{anthropicClaude:()=>AGo,build:()=>hGo,buildType:()=>mGo,default:()=>bGo,dependencies:()=>_Go,description:()=>fGo,devDependencies:()=>EGo,displayName:()=>dGo,engines:()=>gGo,name:()=>uGo,overrides:()=>vGo,overridesComments:()=>CGo,scripts:()=>yGo,version:()=>pGo});var uGo="copilot",dGo="GitHub Copilot",fGo="Your AI pair programmer",pGo="1.537.4",hGo="113",mGo="prod",gGo={node:">=22.13.0",npm:">=11.6.0 <12.0.0"},AGo={cliPackageVersion:"2.1.159"},yGo={build:"tsx esbuild.ts",clean:"./script/build/clean.sh",compress:"tsx ./script/compressTokenizer.ts",generate_languages:"tsx script/generateLanguages.ts && prettier --write lib/src/language/generatedLanguages.ts",get_token:"tsx script/deviceFlow.ts --save-as-test-token",lint:'run-p --aggregate-output "lint:*"',"lint:deps":"depcruise -c .dependency-cruiser.js .","lint:eslint":"eslint -f visualstudio --quiet --cache .","lint:gdpr":"tsx script/checkGdprComments.ts","lint:overrides":"tsx script/checkOverridesDocumented.ts","lint:prettier":"prettier --check . 2>&1","lint:types":"tsc --noEmit",inspect_auth_db:"tsx script/inspectAuthDb.ts",prebuild:"npm install",pretest:"npm run build","pretest:headless":"npm run build","pretest:agent-e2e-full":"npm run build","pretest:agent-e2e":"npm run build","pretest:lsp-client":"npm run build","pretest:lib-e2e":"npm run build",prewatch:"npm run build","prewatch:esbuild":"npm run build",start:"npm run watch",test:'npm-run-all "test:headless --ignore-scripts" lint',"test:headless":'npm-run-all test:lib test:agent "test:lib-e2e --ignore-scripts" test:prompt "test:lsp-client --ignore-scripts" lint',"test:agent":'mocha "agent/src/**/*.test.{ts,tsx}"',"test:agent-e2e":'mocha "agent/e2e/**/*.test.{ts,tsx}" --exclude "agent/e2e/**/*.daily.test.{ts,tsx}"',"test:agent-e2e-full":'mocha "agent/e2e/**/*.test.{ts,tsx}"',"test:lib":'mocha "lib/src/**/*.test.{ts,tsx}" "script/**/*.test.{ts,tsx}" --exclude "lib/src/**/*.int.test.ts"',"test:lib-int":'mocha "lib/src/**/*.int.test.ts"',"test:lib-e2e":'mocha "lib/e2e/src/**/*.test.{ts,tsx}" --exclude "lib/e2e/src/prompt/**/*.test.ts"',"test:lib-e2e-no-ci":'mocha "lib/e2e/no-ci/**/*.test.{ts,tsx}"',"test:lib-prompt-e2e":'mocha "lib/e2e/src/prompt/prompt.test.ts"',"test:lib-prompt-e2e-perf":"INCLUDE_PERFORMANCE=true npm run test:lib-prompt-e2e","test:lsp-client":'mocha "lsp-client/test/*.test.{ts,tsx}"',"test:pkg-runtime":"tsx script/smokeCopilotRuntimePkg.ts","test:prompt":'mocha "prompt/test/**/*.test.{ts,tsx}"',"test:prepare-msbench":"tsx script/setupMsbench.ts","test:run-msbench":"tsx lsp-client/test/msbench/agent/index.ts",watch:'run-p "watch:esbuild --ignore-scripts" "watch:types -- --preserveWatchOutput"',"watch:esbuild":"tsx esbuild.ts --watch","watch:types":"tsc --noEmit --watch"},EGo={"@azure/identity":"^4.13.2","@azure/keyvault-secrets":"^4.11.2","@github/prettier-config":"0.0.6","@limegrass/eslint-plugin-import-alias":"^1.6.1","@types/crypto-js":"^4.2.2","@types/diff":"^8.0.0","@types/git-url-parse":"^16.0.2","@types/js-yaml":"^4.0.6","@types/kerberos":"^1.1.2","@types/markdown-it":"^14.1.2","@types/mocha":"^10.0.10","@types/node":"~22.13.0","@types/semver":"^7.8.0","@types/sinon":"^22.0.0","@types/toposort":"^2.0.7","@types/vscode":"1.125.0","@types/which":"^3.0.0","@types/yargs":"^17.0.35","@vscode/tree-sitter-wasm":"0.0.5-php.2","@yao-pkg/pkg":"^6.22.0",boxen:"^8.0.1",chalk:"^5.6.2","dependency-cruiser":"^18.2.0",esbuild:"^0.28.2","esbuild-plugin-copy":"^2.1.1",eslint:"^9.39.5","eslint-formatter-visualstudio":"^9.0.1","eslint-plugin-mocha":"^10.5.0",globals:"^17.11.0","js-yaml":"^4.2.0",mocha:"^11.8.0","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","npm-run-all":"^4.1.5",openai:"^7.4.0",prettier:"^3.5.3","prettier-plugin-organize-imports":"^4.2.0","simple-git":"^3.36.0",sinon:"^22.1.0","tree-sitter-bash":"^0.23.0","tree-sitter-powershell":"0.25.9","ts-dedent":"^2.3.0",tsx:"^4.23.4",typescript:"^5.9.3","typescript-eslint":"^8.39.1","vscode-dts":"^0.3.3"},_Go={"@adobe/helix-fetch":"github:devm33/helix-fetch#2a08fa939591a0e14f34f611adcc3ed767579e9a","@agentclientprotocol/sdk":"^0.22.1","@anthropic-ai/claude-agent-sdk":"0.3.159","@anthropic-ai/sdk":"^0.98.0","@github/copilot":"1.0.79","@github/copilot-sdk":"1.0.11","@github/keytar":"7.10.6","@github/memoize":"1.1.5","@microsoft/1ds-core-js":"^4.3.10","@microsoft/1ds-post-js":"^4.3.10","@microsoft/applicationinsights-web-basic":"^3.3.11","@microsoft/mxc-sdk":"0.7.0","@modelcontextprotocol/sdk":"^1.29.0","@octokit/graphql":"^9.0.4","@octokit/rest":"^22.0.1","@parcel/watcher":"^2.6.0","@sinclair/typebox":"^0.34.52","@vscode/chat-lib":"0.60.0","@vscode/codicons":"^0.0.45","@vscode/deviceid":"github:ghc-jetbrains/vscode-deviceid#f0e5738cd362ef20a09aeb30c3a8be99a9a710f5","@vscode/policy-watcher":"^1.4.0","@vscode/prompt-tsx":"^0.4.0-alpha.9","@vscode/webview-ui-toolkit":"^1.3.1","crypto-js":"^4.2.0",diff:"^9.0.0",dldr:"^0.0.10",events:"^3.3.0","git-url-parse":"^16.1.0",glob:"^11.1.0","jsonc-parser":"^3.3.1",kerberos:"^2.2.0","mac-ca":"^3.1.3","markdown-it":"^15.0.0",minimatch:"^10.2.6",open:"^11.0.1",semver:"^7.8.5",shiki:"~1.15.0","source-map-support":"^0.5.21",toposort:"^2.0.2",undici:"^7.29.0",uuid:"^14.0.0","vscode-languageclient":"^9.0.0","vscode-languageserver":"^9.0.0","vscode-languageserver-protocol":"^3.17","vscode-languageserver-textdocument":"~1.0.11","vscode-uri":"^3.1.0","web-tree-sitter":"^0.23.0",which:"^7.0.0","windows-ca-certs":"^0.2.2",ws:"^8.21.3",yargs:"^18.1.0"},vGo={fsevents:"<0","@github/copilot-linuxmusl-arm64":"<0","@github/copilot-linuxmusl-x64":"<0",bindings:"npm:bundled-bindings@^1.5.0",jws:"^3.2.3",tar:"7.5.21","serialize-javascript":"^7.0.5",uuid:"^14.0.0","ip-address":"^10.1.1","fast-uri":"^3.1.5"},CGo={"//":"Rationale for each entry in `overrides`. Required by `npm run lint:overrides` (script/checkOverridesDocumented.ts). Each value should cover: why (CVE/GHSA or build-hack reason), which direct dep pulls in the vulnerable transitive, and the remove-when condition.",fsevents:"Build hack: macOS-only optional native dep; '<0' is an impossible semver that force-skips install on Linux/Windows pkg builds. Permanent \u2014 keep until @yao-pkg/pkg handles macOS-only optionalDependencies natively. See commit d635096c.","@github/copilot-linuxmusl-arm64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.","@github/copilot-linuxmusl-x64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.",bindings:"Build hack: alias to bundled-bindings fork that resolves .node native addon paths after pkg/esbuild bundling. Required by kerberos. Drop when upstream `bindings` adopts platform-specific path resolution. See commits c4461665 and b55ece83.",jws:"CVE GHSA-869p-cjfg-cm3x (Improperly Verifies HMAC Signature). Pulled in by jsonwebtoken-family deps. Drop when all transitive consumers pin jws >= 3.2.3. See commit 2b5dc766.",tar:"CVE GHSA-9ppj-qmqm-q256 + GHSA-qffp-2rhf-9h96 (Symlink/Hardlink Path Traversal via Drive-Relative Linkpath), plus the 7.5.12..7.5.20 advisory run: GHSA-23hp-3jrh-7fpw / CVE-2026-59873 (critical, decompression DoS via unlimited input), GHSA-8x88-c5mf-7j5w / CVE-2026-59874 (infinite loop on negative entry size), GHSA-w8wr-v893-vjvp / CVE-2026-59871 (PAX numeric path type confusion), GHSA-gvwx-54wh-qm9j / CVE-2026-59875 (NUL byte in PAX path records), GHSA-vmf3-w455-68vh / CVE-2026-53655 (GNU long-name PAX size override file smuggling), GHSA-r292-9mhp-454m (uncontrolled recursion in mapHas/filesFilter). Pulled in by @yao-pkg/pkg (tar ^7.5.7) and node-gyp / native-build deps. Drop when transitive consumers bump tar >= 7.5.21. Dependabot alerts #170, #169, #179, #171, #168, #146. See commit e2dff0f3.","serialize-javascript":"CVE GHSA-5c6j-r48x-rmvq (RCE via RegExp.flags / Date.toISOString) + GHSA-qj8w-gfj5-8c6v (ReDoS). Pulled in by mocha 11.x (^6.0.2). Dev-only. Drop when mocha bumps to a release that carries serialize-javascript >= 7.0.3. See commit d49f75fd.",uuid:"CVE GHSA-w5hq-g745-h8pq (missing buffer bounds checks in v3/v5/v6). Pulled in by msal-node and @vscode/deviceid as uuid 8.x/9.x. Drop when both upgrade to uuid >= 14. Dependabot alert #128. See commit 6315f3f8.","ip-address":"CVE GHSA-v2v4-37r5-5v8g (XSS in Address6 HTML-emitting methods: group/link/spanAll and AddressError.parseMessage). Pulled in by @modelcontextprotocol/sdk -> express-rate-limit. Not exploitable here (we don't render HTML or call the affected methods), but the override clears the alert. Drop when express-rate-limit bumps to a release carrying ip-address >= 10.1.1. Dependabot alert #129. See PR #854.","fast-uri":"CVE-2026-6321 GHSA-q3j6-qgpj-74h6 (host confusion via percent-encoded authority delimiters) + CVE-2026-6322 GHSA-v39h-62p7-jpjc (path traversal via percent-encoded dot segments). Pulled in by @modelcontextprotocol/sdk -> ajv -> fast-uri. Drop when ajv bumps to a release carrying fast-uri >= 3.1.2. Dependabot alerts #132, #133."},bGo={name:uGo,displayName:dGo,description:fGo,version:pGo,build:hGo,buildType:mGo,engines:gGo,anthropicClaude:AGo,scripts:yGo,devDependencies:EGo,dependencies:_Go,overrides:vGo,overridesComments:CGo};var $e={Enable:"enable",UserSelectedCompletionModel:"selectedCompletionModel",EnableQuotaThresholdWarning:"quota.enableThresholdWarning",ShowEditorCompletions:"editor.showEditorCompletions",EnableAutoCompletions:"editor.enableAutoCompletions",DelayCompletions:"editor.delayCompletions",FilterCompletions:"editor.filterCompletions",FetchStrategy:"fetchStrategy",ToolConfirmAutoApprove:"agent.toolConfirmAutoApprove",AutoApproveUnmatchedTerminal:"agent.autoApproveUnmatchedTerminal",AutoApproveUnmatchedFileOp:"agent.autoApproveUnmatchedFileOp",TrustToolAnnotations:"agent.trustToolAnnotations",AutoApproveYoloMode:"agent.autoApproveYoloMode",EditorHandlesAllConfirmation:"agent.editorHandlesAllConfirmation",MaxToolCallingLoop:"agent.maxToolCallingLoop",AutoCompress:"agent.autoCompress",AnthropicThinkingBudgetToken:"agent.anthropicThinkingBudgetToken",EnableSkills:"agent.enableSkills",EnableOrgSkills:"agent.enableOrgSkills",EnableHooks:"agent.enableHooks",EnableSandbox:"agent.sandbox.enabled",SandboxAddCurrentWorkingDirectory:"agent.sandbox.addCurrentWorkingDirectory",SandboxAuth:"agent.sandbox.auth",SandboxAllowDevToolAccess:"agent.sandbox.allowDevToolAccess",SandboxUserPolicy:"agent.sandbox.userPolicy",EnablePlugins:"agent.enablePlugins",EnableCustomAgents:"agent.enableCustomAgents",EnableOrgCustomAgents:"agent.enableOrgCustomAgents",UseSessionModelForBuiltinSubagents:"agent.useSessionModelForBuiltinSubagents",UseAgentsMd:"agent.useAgentsMdFile",UseNestedAgentsMd:"agent.useNestedAgentsMdFiles",UseClaudeMd:"agent.useClaudeMdFile",UseNestedClaudeMd:"agent.useNestedClaudeMdFiles",CompletionsDelay:"completionsDelay",CompletionsDebounce:"completionsDebounce",EnableThinking:"agent.enableThinking",TranscriptDirectory:"agent.transcriptDirectory",AgentDebugLogsDirectory:"agent.agentDebugLogsDirectory",ClaudeCliPath:"agent.claude.cliPath",CodexCliPath:"agent.codex.cliPath",OtelEnabled:"agent.otel.enabled",OtelEndpoint:"agent.otel.otlpEndpoint",OtelCaptureContent:"agent.otel.captureContent",OtelExporterType:"agent.otel.exporterType",OtelProtocol:"agent.otel.protocol",OtelOutfile:"agent.otel.outfile",OtelServiceName:"agent.otel.serviceName",OtelResourceAttributes:"agent.otel.resourceAttributes",NESExtendedRange:"nextEditSuggestions.extendedRange",NESEagerness:"nextEditSuggestions.eagerness",RelatedFilesVSCodeCSharp:"advanced.relatedFilesVSCodeCSharp",RelatedFilesVSCodeTypeScript:"advanced.relatedFilesVSCodeTypeScript",RelatedFilesVSCode:"advanced.relatedFilesVSCode",ContextProviders:"advanced.contextProviders",DebugOverrideLogLevels:"advanced.debug.overrideLogLevels",DebugFilterLogCategories:"advanced.debug.filterLogCategories",DebugSnippyOverrideUrl:"advanced.debug.codeRefOverrideUrl",DebugUseElectronFetcher:"advanced.debug.useElectronFetcher",DebugUseEditorFetcher:"advanced.debug.useEditorFetcher",UseSubsetMatching:"advanced.useSubsetMatching",ContextProviderTimeBudget:"advanced.contextProviderTimeBudget",DebugOverrideCapiUrl:"internal.capiUrl",DebugOverrideCapiUrlLegacy:"advanced.debug.overrideCapiUrl",DebugTestOverrideCapiUrl:"internal.capiTestUrl",DebugTestOverrideCapiUrlLegacy:"advanced.debug.testOverrideCapiUrl",DebugOverrideProxyUrl:"internal.completionsUrl",DebugOverrideProxyUrlLegacy:"advanced.debug.overrideProxyUrl",DebugTestOverrideProxyUrl:"internal.completionsTestUrl",DebugTestOverrideProxyUrlLegacy:"advanced.debug.testOverrideProxyUrl",DebugOverrideEngine:"internal.completionModel",DebugOverrideEngineLegacy:"advanced.debug.overrideEngine",AlwaysRequestMultiline:"internal.alwaysRequestMultiline",ModelAlwaysTerminatesSingleline:"internal.modelAlwaysTerminatesSingleline",TrimCompletionsAggressively:"internal.trimCompletionsAggressively",UseWorkspaceContextCoordinator:"internal.useWorkspaceContextCoordinator",ShowWorkspaceContextDebugger:"internal.showWorkspaceContextDebugger",IncludeNeighboringFiles:"internal.includeNeighboringFiles",ExcludeRelatedFiles:"internal.excludeRelatedFiles",DebugOverrideCppHeadersEnableSwitch:"internal.cppHeadersEnableSwitch",NESXTab:"internal.useXTab",NESUseExplicitRejection:"internal.nesUseExplicitRejection",NESModelConfiguration:"internal.nesModelConfiguration",UseSplitContextPrompt:"internal.useSplitContextPrompt",UseCompletionsComparisonPanel:"internal.useCompletionsComparisonPanel",ComparisonPanelModelIds:"internal.comparisonPanelModelIds",ComparisonPanelRandomizedMode:"internal.comparisonPanelRandomizedMode",UseFetchFetcher:"internal.useFetchFetcher",UseChatLibCompletions:"internal.useChatLibCompletions",HookErrorOccurredStackTrace:"internal.hookErrorOccurredStackTrace",AppendPromptTokenCache:"internal.appendPromptTokenCache",PromptPersistBasePath:"internal.promptPersistBasePath",AnthropicMessagesEndpoint:"internal.anthropic.messagesEndpoint",EnableIntellijNes:"internal.enableIntellijNes",UseHelixFetcher:"internal.useHelixFetcher",EnableMapCodeFallback:"internal.enableMapCodeFallback",SearchAgent:"internal.searchAgent",PerfEnabled:"internal.perf.enabled",AuthTokenEncryption:"internal.auth.tokenEncryption",EnableWorkspaceIndex:"workspaceIndex.enabled"};function yyn(t){return["server","parsingandserver"].includes(t)}a(yyn,"shouldDoServerTrimming");var RD=class{static{a(this,"BlockModeConfig")}},nde=class extends RD{static{a(this,"ConfigBlockModeConfig")}forLanguage(e,r,n){let o=e.get(tr).overrideBlockMode(n);if(o)return MQt(o,r);let s=e.get(tr).enableProgressiveReveal(n);return(St(e,$e.AlwaysRequestMultiline)??s)||p5.isTrimmedByDefault(r)?MQt("moremultiline",r):r=="ruby"?"parsing":PI(r)?"parsingandserver":"server"}};function SGo(t){return["parsing","parsingandserver","moremultiline"].includes(t)}a(SGo,"blockModeRequiresTreeSitter");function MQt(t,e){return t==="moremultiline"&&L0.isSupported(e)?t:SGo(t)&&!PI(e)?"server":t}a(MQt,"toApplicableBlockMode");var ro=class{static{a(this,"ConfigProvider")}requireReady(){return Promise.resolve()}},ide=class extends ro{constructor(){super(...arguments);this.onDidChangeCopilotSettings=a(()=>({dispose:a(()=>{},"dispose")}),"onDidChangeCopilotSettings");this.onDidChangeHttpSettings=this.onDidChangeCopilotSettings}static{a(this,"DefaultsOnlyConfigProvider")}getConfig(r){return TGo(r)}getOptionalConfig(r){return IGo(r)}dumpForTelemetry(){return{}}getExplicitlySetConfigs(){return new Map}getHttpSettings(){return{proxy:""}}},xJ=class extends ro{constructor(r,n){super();this.baseConfigProvider=r;this.overrides=n;this.copilotEmitter=new io;this.onDidChangeCopilotSettings=this.copilotEmitter.event;this.didChangeHttpSettingsEmitter=new io;this.onDidChangeHttpSettings=this.didChangeHttpSettingsEmitter.event;this.httpSettings=this.baseConfigProvider.getHttpSettings()}static{a(this,"InMemoryConfigProvider")}getOptionalOverride(r){return this.overrides.get(r)}getConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getConfig(r)}getOptionalConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getOptionalConfig(r)}setConfig(r,n){this.setCopilotSettings({[r]:n})}setCopilotSettings(r){for(let[n,o]of Object.entries(r))o!==void 0?this.overrides.set(n,o):this.overrides.delete(n);this.copilotEmitter.fire(this)}getExplicitlySetConfigs(){let r=new Map(this.baseConfigProvider.getExplicitlySetConfigs());for(let[n,o]of this.overrides)r.set(n,o);return r}getHttpSettings(){return this.httpSettings}setHttpSettings(r){let n=Zxe(r);this.httpSettings=n,this.didChangeHttpSettingsEmitter.fire(this.getHttpSettings())}dumpForTelemetry(){let r=this.baseConfigProvider.dumpForTelemetry();for(let n of[$e.ShowEditorCompletions,$e.EnableAutoCompletions,$e.DelayCompletions,$e.FilterCompletions]){let o=this.overrides.get(n);o!==void 0&&(r[n]=JSON.stringify(o))}return r}};function Eyn(t,e){let r=t,n=[];for(let o of e.split(".")){let s=[...n,o].join(".");r&&typeof r=="object"&&s in r?(r=r[s],n.length=0):n.push(o)}if(!(r===void 0||n.length>0))return r}a(Eyn,"getConfigKeyRecursively");function TGo(t){if(wYe.has(t))return wYe.get(t);throw new Error(`Missing config default value: ${wMt}.${t}`)}a(TGo,"getConfigDefaultForKey");function IGo(t){return wYe.get(t)}a(IGo,"getOptionalConfigDefaultForKey");function eRe(t){return t.get(ro).getExplicitlySetConfigs()}a(eRe,"getExplicitlySetConfigs");var wGo={[$e.DebugOverrideCppHeadersEnableSwitch]:!1,[$e.RelatedFilesVSCodeCSharp]:!1,[$e.RelatedFilesVSCodeTypeScript]:!1,[$e.RelatedFilesVSCode]:!1,[$e.IncludeNeighboringFiles]:!1,[$e.ExcludeRelatedFiles]:!1,[$e.ContextProviders]:[],[$e.DebugUseEditorFetcher]:null,[$e.DebugUseElectronFetcher]:null,[$e.DebugOverrideLogLevels]:{},[$e.DebugSnippyOverrideUrl]:"",[$e.AgentDebugLogsDirectory]:void 0,[$e.ClaudeCliPath]:void 0,[$e.CodexCliPath]:void 0,[$e.OtelEnabled]:!1,[$e.OtelEndpoint]:void 0,[$e.OtelCaptureContent]:!1,[$e.OtelExporterType]:"otlp-http",[$e.OtelProtocol]:"",[$e.OtelOutfile]:"",[$e.OtelServiceName]:"",[$e.OtelResourceAttributes]:{},[$e.FetchStrategy]:"auto",[$e.ToolConfirmAutoApprove]:!1,[$e.AutoApproveUnmatchedTerminal]:void 0,[$e.AutoApproveUnmatchedFileOp]:void 0,[$e.TrustToolAnnotations]:!1,[$e.AutoApproveYoloMode]:!1,[$e.EditorHandlesAllConfirmation]:!1,[$e.MaxToolCallingLoop]:25,[$e.AutoCompress]:!1,[$e.AnthropicThinkingBudgetToken]:1024,[$e.EnableSkills]:!1,[$e.EnableOrgSkills]:!0,[$e.EnableHooks]:!1,[$e.EnableSandbox]:!1,[$e.SandboxAddCurrentWorkingDirectory]:void 0,[$e.SandboxAuth]:void 0,[$e.SandboxAllowDevToolAccess]:void 0,[$e.SandboxUserPolicy]:void 0,[$e.EnablePlugins]:!1,[$e.EnableCustomAgents]:!0,[$e.EnableOrgCustomAgents]:!0,[$e.UseSessionModelForBuiltinSubagents]:!1,[$e.UseAgentsMd]:!1,[$e.UseNestedAgentsMd]:!1,[$e.UseClaudeMd]:!1,[$e.UseNestedClaudeMd]:!1,[$e.UseSubsetMatching]:null,[$e.ContextProviderTimeBudget]:void 0,[$e.DebugOverrideCapiUrl]:"",[$e.DebugTestOverrideCapiUrl]:"",[$e.DebugOverrideProxyUrl]:"",[$e.DebugTestOverrideProxyUrl]:"",[$e.DebugOverrideEngine]:"",[$e.AlwaysRequestMultiline]:void 0,[$e.ModelAlwaysTerminatesSingleline]:void 0,[$e.TrimCompletionsAggressively]:void 0,[$e.CompletionsDebounce]:void 0,[$e.NESXTab]:void 0,[$e.UseWorkspaceContextCoordinator]:void 0,[$e.ShowWorkspaceContextDebugger]:!1,[$e.CompletionsDelay]:void 0,[$e.UseSplitContextPrompt]:void 0,[$e.UseCompletionsComparisonPanel]:void 0,[$e.ComparisonPanelModelIds]:void 0,[$e.ComparisonPanelRandomizedMode]:void 0,[$e.UseFetchFetcher]:void 0,[$e.UseChatLibCompletions]:void 0,[$e.TranscriptDirectory]:void 0,[$e.EnableThinking]:!0,[$e.ShowEditorCompletions]:void 0,[$e.EnableAutoCompletions]:void 0,[$e.DelayCompletions]:void 0,[$e.FilterCompletions]:void 0,[$e.Enable]:{"*":!0,plaintext:!1,markdown:!1,scminput:!1},[$e.UserSelectedCompletionModel]:"",[$e.EnableQuotaThresholdWarning]:!0,[$e.DebugFilterLogCategories]:[],[$e.DebugOverrideEngineLegacy]:"",[$e.DebugTestOverrideProxyUrlLegacy]:"",[$e.DebugOverrideProxyUrlLegacy]:"",[$e.DebugTestOverrideCapiUrlLegacy]:"",[$e.DebugOverrideCapiUrlLegacy]:"",[$e.HookErrorOccurredStackTrace]:!1,[$e.NESUseExplicitRejection]:!1,[$e.NESModelConfiguration]:void 0,[$e.AppendPromptTokenCache]:"",[$e.PromptPersistBasePath]:void 0,[$e.AnthropicMessagesEndpoint]:"",[$e.EnableIntellijNes]:"",[$e.UseHelixFetcher]:"",[$e.EnableMapCodeFallback]:"enabled",[$e.SearchAgent]:"",[$e.PerfEnabled]:"",[$e.NESExtendedRange]:!1,[$e.NESEagerness]:"auto",[$e.AuthTokenEncryption]:"",[$e.EnableWorkspaceIndex]:!1},wYe=new Map(Object.entries(wGo));for(let t of Object.values($e))if(!wYe.has(t))throw new Error(`Missing config default value ${wMt}.${t}`);function St(t,e){return t.get(ro).getConfig(e)}a(St,"getConfig");function Ev(t){let e=St(t,$e.EnableWorkspaceIndex);return e===!0||e==="true"}a(Ev,"isSemanticSearchEnabled");function znn(t){return t.get(ro).dumpForTelemetry()}a(znn,"dumpForTelemetry");var Ts=class{constructor(){this.packageJson=Xxe}static{a(this,"BuildInfo")}isProduction(){return this.getBuildType()!=="dev"}getBuildType(){return this.packageJson.buildType}getVersion(){return this.packageJson.version}getDisplayVersion(){return this.getBuildType()==="dev"?`${this.getVersion()}-dev`:this.getVersion()}getBuild(){return this.packageJson.build}getName(){return this.packageJson.name}};function OLt(t){return t.get(Ts).isProduction()}a(OLt,"isProduction");function eln(t){return t.get(Ts).getBuildType()==="dev"}a(eln,"isDevBuild");function nQ(t){return t.get(Ts).getBuildType()}a(nQ,"getBuildType");function Ynn(t){return t.get(Ts).getBuild()}a(Ynn,"getBuild");function VT(t){return t.get(Ts).getVersion()}a(VT,"getVersion");var Za=class{constructor(e,r,n,o="none",s="desktop"){this.sessionId=e;this.machineId=r;this.devDeviceId=n;this.remoteName=o;this.uiKind=s}static{a(this,"EditorSession")}};function NT({name:t,version:e}){return`${t}/${e}`}a(NT,"formatNameAndVersion");var Ir=class{static{a(this,"EditorAndPluginInfo")}getCopilotIntegrationId(){}getEditorPluginSpecificFilters(){return[]}getEditorIdentity(){return HWr({editor:this.getEditorInfo(),plugin:this.getEditorPluginInfo()})}isEditorPluginInfoKnown(){return!0}};function Kze(t){let e=t.getCopilotIntegrationId();if(e)return e;switch(t.getEditorPluginInfo().name){case"copilot-intellij":return"jetbrains-chat";case"copilot":case"copilot-vs":return;default:return"jetbrains-chat"}}a(Kze,"getIntegrationId");function vE(t){let e=t.get(Ir);return{"Editor-Version":NT(e.getEditorInfo()),"Editor-Plugin-Version":NT(e.getEditorPluginInfo()),"Copilot-Language-Server-Version":VT(t)}}a(vE,"editorVersionHeaders");var _yn="Iv1.b507a08c87ecfe98",xGo="350ee525b5da0e4a54c6e8e043edc1b99cc02f19",Vle="Ov23liV9UpD7Rnfnskm3",RGo="5509a52e4c525cd594a6fba9147ff6cc2388dd9f",PGo={[_yn]:xGo,[Vle]:RGo},yh=class{static{a(this,"GitHubAppInfo")}findAppIdToAuthenticate(){return this.githubAppId??_yn}findAppSecretToAuthenticate(){let e=this.findAppIdToAuthenticate(),r=PGo[e];if(!r)throw new Error(`GitHubAppInfo: No app secret found for app ID: ${e}`);return r}};function vyn(t){return St(t,$e.AuthTokenEncryption)==="false"}a(vyn,"isAuthTokenEncryptionDisabled");p();var xyn=ue(require("node:crypto"));var Fq=new pe("KeytarMasterKey"),Syn="copilot-language-server",Tyn="oauth-token-key",Iyn=5e3,Ryn=32,OQt;function NGo(t){return OQt??=MGo(t).finally(()=>{OQt=void 0}),OQt}a(NGo,"resolveMasterKey");async function MGo(t){Fq.info(t,"keytar-master-key: resolving master key");let e;try{e=await BQt.loadKeytar(),Fq.info(t,"keytar-master-key: module loaded")}catch(n){return Fq.warn(t,"keytar-master-key: @github/keytar failed to load",n),{diagnostics:LQt("loadModule",n)}}let r;try{r=await LGo(t,e)}catch(n){return n instanceof xYe?(Fq.error(t,"keytar-master-key: existing entry is corrupt; refusing to overwrite",n),{diagnostics:LQt("corruptExistingEntry",n)}):(Fq.warn(t,"keytar-master-key: master-key resolution failed",n),{diagnostics:LQt("getOrCreateMasterKey",n)})}return Fq.info(t,`keytar-master-key: resolved (source=${r.source})`),{masterKey:r.key,diagnostics:{available:!0,masterKeySource:r.source}}}a(MGo,"doResolveMasterKey");function OGo(){return Promise.resolve().then(()=>ue(byn()))}a(OGo,"loadKeytar");var BQt={resolveMasterKey:NGo,loadKeytar:OGo};async function LGo(t,e){let r=await wyn(e.getPassword(Syn,Tyn),Iyn,"getMasterKey");if(Fq.info(t,`keytar-master-key: getPassword returned (found=${r!=null})`),r){let o=BGo(r);if(o)return{key:o,source:"useExisting"};throw new xYe}let n=xyn.randomBytes(Ryn);return await wyn(e.setPassword(Syn,Tyn,n.toString("base64")),Iyn,"setMasterKey"),Fq.info(t,"keytar-master-key: setPassword (new key) completed"),{key:n,source:"createNew"}}a(LGo,"getOrCreateMasterKey");function wyn(t,e,r){return new Promise((n,o)=>{let s=setTimeout(()=>o(new Error(`${r}: timeout after ${e}ms`)),e);s.unref?.(),t.then(c=>{clearTimeout(s),n(c)},c=>{clearTimeout(s),o(c instanceof Error?c:new Error(`${r}: ${String(c)}`))})})}a(wyn,"withTimeout");var xYe=class extends Error{static{a(this,"CorruptMasterKeyError")}constructor(){super("keytar master-key entry present but undecodable"),this.name="CorruptMasterKeyError"}};function LQt(t,e){return{available:!1,errorPhase:t,error:e}}a(LQt,"unavailable");function BGo(t){let e=Buffer.from(t,"base64");return e.length===Ryn?e:void 0}a(BGo,"decodeMasterKey");p();var ode=ue(require("node:crypto"));var FGo=0,QQt=1,RJ=class extends Error{constructor(r,n,o){super(r,o?.cause!==void 0?{cause:o.cause}:void 0);this.kind=n;this.name="SecretUnwrapError"}static{a(this,"SecretUnwrapError")}},PYe=class{static{a(this,"SecretCodec")}},UQt=class extends PYe{constructor(){super(...arguments);this.schemaVersion=FGo}static{a(this,"PlaintextCodec")}encode(r){return Buffer.from(r,"utf8")}decode(r){return Buffer.from(r).toString("utf8")}},RYe=12,FQt=16,Pyn=32,kYe=class extends PYe{constructor(r){super();this.key=r;this.schemaVersion=QQt;if(r.length!==Pyn)throw new Error(`AesGcmCodec requires a ${Pyn}-byte key, got ${r.length}`)}static{a(this,"AesGcmCodec")}encode(r){let n=ode.randomBytes(RYe),o=ode.createCipheriv("aes-256-gcm",this.key,n),s=Buffer.concat([o.update(Buffer.from(r,"utf8")),o.final()]);return Buffer.concat([n,s,o.getAuthTag()])}decode(r){let n=Buffer.from(r);if(n.length<RYe+FQt)throw new RJ("decode: v1 ciphertext too short","malformed");let o=n.subarray(0,RYe),s=n.subarray(n.length-FQt),c=n.subarray(RYe,n.length-FQt);try{let l=ode.createDecipheriv("aes-256-gcm",this.key,o);return l.setAuthTag(s),Buffer.concat([l.update(c),l.final()]).toString("utf8")}catch(l){throw new RJ("decode: AES-GCM verification failed","tagMismatch",{cause:l})}}},B3=class t{constructor(e){this.readers=new Map;this.writer=e,this.readers.set(e.schemaVersion,e)}static{a(this,"SecretStorage")}addReader(e){this.readers.set(e.schemaVersion,e)}setWriter(e){this.writer=e,this.readers.set(e.schemaVersion,e)}wrap(e){return{schemaVersion:this.writer.schemaVersion,ciphertext:this.writer.encode(e)}}unwrap(e){let r=this.readers.get(e.schemaVersion);if(!r)throw new RJ(`unwrap: unknown schemaVersion ${e.schemaVersion}`,"unknownVersion");return r.decode(e.ciphertext)}static plaintextOnly(){return new t(new UQt)}};p();p();function kyn(t){return{upsertToken:t.prepare(`
|
|
1948
|
+
] @statement`}};var p5=class{constructor(e,r,n){this.languageId=e;this.prefix=r;this.completion=n}static{a(this,"BlockTrimmer")}static isSupported(e){return L0.isSupported(e)}static isTrimmedByDefault(e){return L0.isTrimmedByDefault(e)}async withParsedStatementTree(e){var n=[];try{let r=bMt(n,L0.create(this.languageId,this.prefix+this.completion,this.prefix.length,this.prefix.length+this.completion.length));await r.build();return await e(r)}catch(o){var s=o,c=!0}finally{SMt(n,s,c)}}trimmedCompletion(e){return e===void 0?this.completion:this.completion.substring(0,e)}getStatementAtCursor(e){return e.statementAt(Math.max(this.prefix.length-1,0))??e.statements[0]}getContainingBlockOffset(e){let r;if(e&&this.isCompoundStatement(e))r=e;else if(e){let n=e.parent;for(;n&&!this.isCompoundStatement(n);)n=n.parent;r=n}if(r){let n=this.asCompletionOffset(r.node.endIndex);if(n&&this.completion.substring(n).trim()!=="")return n}}hasNonStatementContentAfter(e){if(!e||!e.nextSibling)return!1;let r=this.asCompletionOffset(e.node.endIndex),n=this.asCompletionOffset(e.nextSibling.node.startIndex);return this.completion.substring(Math.max(0,r??0),Math.max(0,n??0)).trim()!==""}asCompletionOffset(e){return e===void 0?void 0:e-this.prefix.length}isCompoundStatement(e){return e.isCompoundStatementType||e.children.length>0}};var IYe=class extends p5{constructor(r,n,o,s=3,c=7){super(r,n,o);this.lineLimit=s;this.lookAhead=c;let l=[...this.completion.matchAll(/\n/g)],u=this.lineLimit+this.lookAhead;l.length>=this.lineLimit&&this.lineLimit>0&&(this.limitOffset=l[this.lineLimit-1].index),l.length>=u&&u>0&&(this.lookAheadOffset=l[u-1].index)}static{a(this,"TerseBlockTrimmer")}async getCompletionTrimOffset(){return await this.withParsedStatementTree(r=>{let n=r.statementAt(this.stmtStartPos()),o=this.getContainingBlockOffset(n);return o=this.trimAtFirstBlankLine(o),n&&(o=this.trimAtStatementChange(n,o)),this.limitOffset&&this.lookAheadOffset&&(o===void 0||o>this.lookAheadOffset)?this.limitOffset:o})}stmtStartPos(){let r=this.completion.match(/\S/);return r&&r.index!==void 0?this.prefix.length+r.index:Math.max(this.prefix.length-1,0)}trimAtFirstBlankLine(r){let n=[...this.trimmedCompletion(r).matchAll(/\r?\n\s*\r?\n/g)];for(;n.length>0&&(r===void 0||r>n[0].index);){let o=n.shift();if(this.completion.substring(0,o.index).trim()!=="")return o.index}return r}trimAtStatementChange(r,n){let o=this.prefix.length,s=this.prefix.length+(n??this.completion.length);if(r.node.endIndex>o&&this.isCompoundStatement(r))return r.nextSibling&&r.node.endIndex<s?this.asCompletionOffset(r.node.endIndex):n;let c=r,l=r.nextSibling;for(;l&&l.node.endIndex<=s&&!this.hasNonStatementContentAfter(c)&&!this.isCompoundStatement(l);)c=l,l=l.nextSibling;return l&&c.node.endIndex>o&&c.node.endIndex<s?this.asCompletionOffset(c.node.endIndex):n}};async function myn(t,e){var l=[];try{let r=t.getText();let n=t.offsetAt(e);let o=bMt(l,L0.create(t.detectedLanguageId,r,0,r.length));await o.build();let s=o.statementAt(n);if(!s)return"non-block";if(!s.isCompoundStatementType&&s.children.length===0)return s.parent&&!s.nextSibling&&s.node.endPosition.row<=e.line?"block-end":s.parent?"mid-block":"non-block";if(s.children.length===0)return"empty-block";let c=s.children[s.children.length-1];if(n<c.node.startIndex)return"mid-block";return"block-end"}catch(u){var d=u,f=!0}finally{SMt(l,d,f)}}a(myn,"getBlockPositionType");p();function aGo(t){return t.HTTPS_PROXY||t.https_proxy||t.HTTP_PROXY||t.http_proxy}a(aGo,"getProxyFromEnvironment");function cGo(t){return t.NODE_TLS_REJECT_UNAUTHORIZED!=="0"}a(cGo,"getRejectUnauthorizedFromEnvironment");var gyn=b.Object({proxy:b.Optional(b.String()),proxyStrictSSL:b.Optional(b.Boolean()),proxyAuthorization:b.Optional(b.String()),proxyKerberosServicePrincipal:b.Optional(b.String()),noProxy:b.Optional(b.Array(b.String()))});function Ayn(t){let e=aGo(t),r=Zxe({proxy:e,proxyStrictSSL:cGo(t)}),n=t.GH_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.GITHUB_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.AGENT_KERBEROS_SERVICE_PRINCIPAL;return n&&(r.proxyKerberosServicePrincipal=n),r}a(Ayn,"getHttpSettingsFromEnvironment");function Zxe(t){if(!t.proxy)return{...t,proxy:""};try{let{protocol:e,host:r,username:n,password:o,pathname:s,search:c,hash:l}=new URL(t.proxy);return{...t,proxy:`${e}//${r}${s}${c}${l}`,proxyAuthorization:t.proxyAuthorization||lGo(n,o),noProxy:t.noProxy||[]}}catch{return{...t,proxy:""}}}a(Zxe,"normalizeHttpSettings");function lGo(t,e){return!t||!e?"":`${decodeURIComponent(t)}:${decodeURIComponent(e)}`}a(lGo,"getAuth");var Xxe={};Fi(Xxe,{anthropicClaude:()=>AGo,build:()=>hGo,buildType:()=>mGo,default:()=>bGo,dependencies:()=>_Go,description:()=>fGo,devDependencies:()=>EGo,displayName:()=>dGo,engines:()=>gGo,name:()=>uGo,overrides:()=>vGo,overridesComments:()=>CGo,scripts:()=>yGo,version:()=>pGo});var uGo="copilot",dGo="GitHub Copilot",fGo="Your AI pair programmer",pGo="1.537.5",hGo="115",mGo="prod",gGo={node:">=22.13.0",npm:">=11.6.0 <12.0.0"},AGo={cliPackageVersion:"2.1.159"},yGo={build:"tsx esbuild.ts",clean:"./script/build/clean.sh",compress:"tsx ./script/compressTokenizer.ts",generate_languages:"tsx script/generateLanguages.ts && prettier --write lib/src/language/generatedLanguages.ts",get_token:"tsx script/deviceFlow.ts --save-as-test-token",lint:'run-p --aggregate-output "lint:*"',"lint:deps":"depcruise -c .dependency-cruiser.js .","lint:eslint":"eslint -f visualstudio --quiet --cache .","lint:gdpr":"tsx script/checkGdprComments.ts","lint:overrides":"tsx script/checkOverridesDocumented.ts","lint:prettier":"prettier --check . 2>&1","lint:types":"tsc --noEmit",inspect_auth_db:"tsx script/inspectAuthDb.ts",prebuild:"npm install",pretest:"npm run build","pretest:headless":"npm run build","pretest:agent-e2e-full":"npm run build","pretest:agent-e2e":"npm run build","pretest:lsp-client":"npm run build","pretest:lib-e2e":"npm run build",prewatch:"npm run build","prewatch:esbuild":"npm run build",start:"npm run watch",test:'npm-run-all "test:headless --ignore-scripts" lint',"test:headless":'npm-run-all test:lib test:agent "test:lib-e2e --ignore-scripts" test:prompt "test:lsp-client --ignore-scripts" lint',"test:agent":'mocha "agent/src/**/*.test.{ts,tsx}"',"test:agent-e2e":'mocha "agent/e2e/**/*.test.{ts,tsx}" --exclude "agent/e2e/**/*.daily.test.{ts,tsx}"',"test:agent-e2e-full":'mocha "agent/e2e/**/*.test.{ts,tsx}"',"test:lib":'mocha "lib/src/**/*.test.{ts,tsx}" "script/**/*.test.{ts,tsx}" --exclude "lib/src/**/*.int.test.ts"',"test:lib-int":'mocha "lib/src/**/*.int.test.ts"',"test:lib-e2e":'mocha "lib/e2e/src/**/*.test.{ts,tsx}" --exclude "lib/e2e/src/prompt/**/*.test.ts"',"test:lib-e2e-no-ci":'mocha "lib/e2e/no-ci/**/*.test.{ts,tsx}"',"test:lib-prompt-e2e":'mocha "lib/e2e/src/prompt/prompt.test.ts"',"test:lib-prompt-e2e-perf":"INCLUDE_PERFORMANCE=true npm run test:lib-prompt-e2e","test:lsp-client":'mocha "lsp-client/test/*.test.{ts,tsx}"',"test:pkg-runtime":"tsx script/smokeCopilotRuntimePkg.ts","test:prompt":'mocha "prompt/test/**/*.test.{ts,tsx}"',"test:prepare-msbench":"tsx script/setupMsbench.ts","test:run-msbench":"tsx lsp-client/test/msbench/agent/index.ts",watch:'run-p "watch:esbuild --ignore-scripts" "watch:types -- --preserveWatchOutput"',"watch:esbuild":"tsx esbuild.ts --watch","watch:types":"tsc --noEmit --watch"},EGo={"@azure/identity":"^4.13.2","@azure/keyvault-secrets":"^4.11.2","@github/prettier-config":"0.0.6","@limegrass/eslint-plugin-import-alias":"^1.6.1","@types/crypto-js":"^4.2.2","@types/diff":"^8.0.0","@types/git-url-parse":"^16.0.2","@types/js-yaml":"^4.0.6","@types/kerberos":"^1.1.2","@types/markdown-it":"^14.1.2","@types/mocha":"^10.0.10","@types/node":"~22.13.0","@types/semver":"^7.8.0","@types/sinon":"^22.0.0","@types/toposort":"^2.0.7","@types/vscode":"1.125.0","@types/which":"^3.0.0","@types/yargs":"^17.0.35","@vscode/tree-sitter-wasm":"0.0.5-php.2","@yao-pkg/pkg":"^6.22.0",boxen:"^8.0.1",chalk:"^5.6.2","dependency-cruiser":"^18.2.0",esbuild:"^0.28.2","esbuild-plugin-copy":"^2.1.1",eslint:"^9.39.5","eslint-formatter-visualstudio":"^9.0.1","eslint-plugin-mocha":"^10.5.0",globals:"^17.11.0","js-yaml":"^4.2.0",mocha:"^11.8.0","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","npm-run-all":"^4.1.5",openai:"^7.4.0",prettier:"^3.5.3","prettier-plugin-organize-imports":"^4.2.0","simple-git":"^3.36.0",sinon:"^22.1.0","tree-sitter-bash":"^0.23.0","tree-sitter-powershell":"0.25.9","ts-dedent":"^2.3.0",tsx:"^4.23.4",typescript:"^5.9.3","typescript-eslint":"^8.39.1","vscode-dts":"^0.3.3"},_Go={"@adobe/helix-fetch":"github:devm33/helix-fetch#2a08fa939591a0e14f34f611adcc3ed767579e9a","@agentclientprotocol/sdk":"^0.22.1","@anthropic-ai/claude-agent-sdk":"0.3.159","@anthropic-ai/sdk":"^0.98.0","@github/copilot":"1.0.79","@github/copilot-sdk":"1.0.11","@github/keytar":"7.10.6","@github/memoize":"1.1.5","@microsoft/1ds-core-js":"^4.3.10","@microsoft/1ds-post-js":"^4.3.10","@microsoft/applicationinsights-web-basic":"^3.3.11","@microsoft/mxc-sdk":"0.7.0","@modelcontextprotocol/sdk":"^1.29.0","@octokit/graphql":"^9.0.4","@octokit/rest":"^22.0.1","@parcel/watcher":"^2.6.0","@sinclair/typebox":"^0.34.52","@vscode/chat-lib":"0.60.0","@vscode/codicons":"^0.0.45","@vscode/deviceid":"github:ghc-jetbrains/vscode-deviceid#f0e5738cd362ef20a09aeb30c3a8be99a9a710f5","@vscode/policy-watcher":"^1.4.0","@vscode/prompt-tsx":"^0.4.0-alpha.9","@vscode/webview-ui-toolkit":"^1.3.1","crypto-js":"^4.2.0",diff:"^9.0.0",dldr:"^0.0.10",events:"^3.3.0","git-url-parse":"^16.1.0",glob:"^11.1.0","jsonc-parser":"^3.3.1",kerberos:"^2.2.0","mac-ca":"^3.1.3","markdown-it":"^15.0.0",minimatch:"^10.2.6",open:"^11.0.1",semver:"^7.8.5",shiki:"~1.15.0","source-map-support":"^0.5.21",toposort:"^2.0.2",undici:"^7.29.0",uuid:"^14.0.0","vscode-languageclient":"^9.0.0","vscode-languageserver":"^9.0.0","vscode-languageserver-protocol":"^3.17","vscode-languageserver-textdocument":"~1.0.11","vscode-uri":"^3.1.0","web-tree-sitter":"^0.23.0",which:"^7.0.0","windows-ca-certs":"^0.2.2",ws:"^8.21.3",yargs:"^18.1.0"},vGo={fsevents:"<0","@github/copilot-linuxmusl-arm64":"<0","@github/copilot-linuxmusl-x64":"<0",bindings:"npm:bundled-bindings@^1.5.0",jws:"^3.2.3",tar:"7.5.21","serialize-javascript":"^7.0.5",uuid:"^14.0.0","ip-address":"^10.1.1","fast-uri":"^3.1.5"},CGo={"//":"Rationale for each entry in `overrides`. Required by `npm run lint:overrides` (script/checkOverridesDocumented.ts). Each value should cover: why (CVE/GHSA or build-hack reason), which direct dep pulls in the vulnerable transitive, and the remove-when condition.",fsevents:"Build hack: macOS-only optional native dep; '<0' is an impossible semver that force-skips install on Linux/Windows pkg builds. Permanent \u2014 keep until @yao-pkg/pkg handles macOS-only optionalDependencies natively. See commit d635096c.","@github/copilot-linuxmusl-arm64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.","@github/copilot-linuxmusl-x64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.",bindings:"Build hack: alias to bundled-bindings fork that resolves .node native addon paths after pkg/esbuild bundling. Required by kerberos. Drop when upstream `bindings` adopts platform-specific path resolution. See commits c4461665 and b55ece83.",jws:"CVE GHSA-869p-cjfg-cm3x (Improperly Verifies HMAC Signature). Pulled in by jsonwebtoken-family deps. Drop when all transitive consumers pin jws >= 3.2.3. See commit 2b5dc766.",tar:"CVE GHSA-9ppj-qmqm-q256 + GHSA-qffp-2rhf-9h96 (Symlink/Hardlink Path Traversal via Drive-Relative Linkpath), plus the 7.5.12..7.5.20 advisory run: GHSA-23hp-3jrh-7fpw / CVE-2026-59873 (critical, decompression DoS via unlimited input), GHSA-8x88-c5mf-7j5w / CVE-2026-59874 (infinite loop on negative entry size), GHSA-w8wr-v893-vjvp / CVE-2026-59871 (PAX numeric path type confusion), GHSA-gvwx-54wh-qm9j / CVE-2026-59875 (NUL byte in PAX path records), GHSA-vmf3-w455-68vh / CVE-2026-53655 (GNU long-name PAX size override file smuggling), GHSA-r292-9mhp-454m (uncontrolled recursion in mapHas/filesFilter). Pulled in by @yao-pkg/pkg (tar ^7.5.7) and node-gyp / native-build deps. Drop when transitive consumers bump tar >= 7.5.21. Dependabot alerts #170, #169, #179, #171, #168, #146. See commit e2dff0f3.","serialize-javascript":"CVE GHSA-5c6j-r48x-rmvq (RCE via RegExp.flags / Date.toISOString) + GHSA-qj8w-gfj5-8c6v (ReDoS). Pulled in by mocha 11.x (^6.0.2). Dev-only. Drop when mocha bumps to a release that carries serialize-javascript >= 7.0.3. See commit d49f75fd.",uuid:"CVE GHSA-w5hq-g745-h8pq (missing buffer bounds checks in v3/v5/v6). Pulled in by msal-node and @vscode/deviceid as uuid 8.x/9.x. Drop when both upgrade to uuid >= 14. Dependabot alert #128. See commit 6315f3f8.","ip-address":"CVE GHSA-v2v4-37r5-5v8g (XSS in Address6 HTML-emitting methods: group/link/spanAll and AddressError.parseMessage). Pulled in by @modelcontextprotocol/sdk -> express-rate-limit. Not exploitable here (we don't render HTML or call the affected methods), but the override clears the alert. Drop when express-rate-limit bumps to a release carrying ip-address >= 10.1.1. Dependabot alert #129. See PR #854.","fast-uri":"CVE-2026-6321 GHSA-q3j6-qgpj-74h6 (host confusion via percent-encoded authority delimiters) + CVE-2026-6322 GHSA-v39h-62p7-jpjc (path traversal via percent-encoded dot segments). Pulled in by @modelcontextprotocol/sdk -> ajv -> fast-uri. Drop when ajv bumps to a release carrying fast-uri >= 3.1.2. Dependabot alerts #132, #133."},bGo={name:uGo,displayName:dGo,description:fGo,version:pGo,build:hGo,buildType:mGo,engines:gGo,anthropicClaude:AGo,scripts:yGo,devDependencies:EGo,dependencies:_Go,overrides:vGo,overridesComments:CGo};var $e={Enable:"enable",UserSelectedCompletionModel:"selectedCompletionModel",EnableQuotaThresholdWarning:"quota.enableThresholdWarning",ShowEditorCompletions:"editor.showEditorCompletions",EnableAutoCompletions:"editor.enableAutoCompletions",DelayCompletions:"editor.delayCompletions",FilterCompletions:"editor.filterCompletions",FetchStrategy:"fetchStrategy",ToolConfirmAutoApprove:"agent.toolConfirmAutoApprove",AutoApproveUnmatchedTerminal:"agent.autoApproveUnmatchedTerminal",AutoApproveUnmatchedFileOp:"agent.autoApproveUnmatchedFileOp",TrustToolAnnotations:"agent.trustToolAnnotations",AutoApproveYoloMode:"agent.autoApproveYoloMode",EditorHandlesAllConfirmation:"agent.editorHandlesAllConfirmation",MaxToolCallingLoop:"agent.maxToolCallingLoop",AutoCompress:"agent.autoCompress",AnthropicThinkingBudgetToken:"agent.anthropicThinkingBudgetToken",EnableSkills:"agent.enableSkills",EnableOrgSkills:"agent.enableOrgSkills",EnableHooks:"agent.enableHooks",EnableSandbox:"agent.sandbox.enabled",SandboxAddCurrentWorkingDirectory:"agent.sandbox.addCurrentWorkingDirectory",SandboxAuth:"agent.sandbox.auth",SandboxAllowDevToolAccess:"agent.sandbox.allowDevToolAccess",SandboxUserPolicy:"agent.sandbox.userPolicy",EnablePlugins:"agent.enablePlugins",EnableCustomAgents:"agent.enableCustomAgents",EnableOrgCustomAgents:"agent.enableOrgCustomAgents",UseSessionModelForBuiltinSubagents:"agent.useSessionModelForBuiltinSubagents",UseAgentsMd:"agent.useAgentsMdFile",UseNestedAgentsMd:"agent.useNestedAgentsMdFiles",UseClaudeMd:"agent.useClaudeMdFile",UseNestedClaudeMd:"agent.useNestedClaudeMdFiles",CompletionsDelay:"completionsDelay",CompletionsDebounce:"completionsDebounce",EnableThinking:"agent.enableThinking",TranscriptDirectory:"agent.transcriptDirectory",AgentDebugLogsDirectory:"agent.agentDebugLogsDirectory",ClaudeCliPath:"agent.claude.cliPath",CodexCliPath:"agent.codex.cliPath",OtelEnabled:"agent.otel.enabled",OtelEndpoint:"agent.otel.otlpEndpoint",OtelCaptureContent:"agent.otel.captureContent",OtelExporterType:"agent.otel.exporterType",OtelProtocol:"agent.otel.protocol",OtelOutfile:"agent.otel.outfile",OtelServiceName:"agent.otel.serviceName",OtelResourceAttributes:"agent.otel.resourceAttributes",NESExtendedRange:"nextEditSuggestions.extendedRange",NESEagerness:"nextEditSuggestions.eagerness",RelatedFilesVSCodeCSharp:"advanced.relatedFilesVSCodeCSharp",RelatedFilesVSCodeTypeScript:"advanced.relatedFilesVSCodeTypeScript",RelatedFilesVSCode:"advanced.relatedFilesVSCode",ContextProviders:"advanced.contextProviders",DebugOverrideLogLevels:"advanced.debug.overrideLogLevels",DebugFilterLogCategories:"advanced.debug.filterLogCategories",DebugSnippyOverrideUrl:"advanced.debug.codeRefOverrideUrl",DebugUseElectronFetcher:"advanced.debug.useElectronFetcher",DebugUseEditorFetcher:"advanced.debug.useEditorFetcher",UseSubsetMatching:"advanced.useSubsetMatching",ContextProviderTimeBudget:"advanced.contextProviderTimeBudget",DebugOverrideCapiUrl:"internal.capiUrl",DebugOverrideCapiUrlLegacy:"advanced.debug.overrideCapiUrl",DebugTestOverrideCapiUrl:"internal.capiTestUrl",DebugTestOverrideCapiUrlLegacy:"advanced.debug.testOverrideCapiUrl",DebugOverrideProxyUrl:"internal.completionsUrl",DebugOverrideProxyUrlLegacy:"advanced.debug.overrideProxyUrl",DebugTestOverrideProxyUrl:"internal.completionsTestUrl",DebugTestOverrideProxyUrlLegacy:"advanced.debug.testOverrideProxyUrl",DebugOverrideEngine:"internal.completionModel",DebugOverrideEngineLegacy:"advanced.debug.overrideEngine",AlwaysRequestMultiline:"internal.alwaysRequestMultiline",ModelAlwaysTerminatesSingleline:"internal.modelAlwaysTerminatesSingleline",TrimCompletionsAggressively:"internal.trimCompletionsAggressively",UseWorkspaceContextCoordinator:"internal.useWorkspaceContextCoordinator",ShowWorkspaceContextDebugger:"internal.showWorkspaceContextDebugger",IncludeNeighboringFiles:"internal.includeNeighboringFiles",ExcludeRelatedFiles:"internal.excludeRelatedFiles",DebugOverrideCppHeadersEnableSwitch:"internal.cppHeadersEnableSwitch",NESXTab:"internal.useXTab",NESUseExplicitRejection:"internal.nesUseExplicitRejection",NESModelConfiguration:"internal.nesModelConfiguration",UseSplitContextPrompt:"internal.useSplitContextPrompt",UseCompletionsComparisonPanel:"internal.useCompletionsComparisonPanel",ComparisonPanelModelIds:"internal.comparisonPanelModelIds",ComparisonPanelRandomizedMode:"internal.comparisonPanelRandomizedMode",UseFetchFetcher:"internal.useFetchFetcher",UseChatLibCompletions:"internal.useChatLibCompletions",HookErrorOccurredStackTrace:"internal.hookErrorOccurredStackTrace",AppendPromptTokenCache:"internal.appendPromptTokenCache",PromptPersistBasePath:"internal.promptPersistBasePath",AnthropicMessagesEndpoint:"internal.anthropic.messagesEndpoint",EnableIntellijNes:"internal.enableIntellijNes",UseHelixFetcher:"internal.useHelixFetcher",EnableMapCodeFallback:"internal.enableMapCodeFallback",SearchAgent:"internal.searchAgent",PerfEnabled:"internal.perf.enabled",AuthTokenEncryption:"internal.auth.tokenEncryption",EnableWorkspaceIndex:"workspaceIndex.enabled"};function yyn(t){return["server","parsingandserver"].includes(t)}a(yyn,"shouldDoServerTrimming");var RD=class{static{a(this,"BlockModeConfig")}},nde=class extends RD{static{a(this,"ConfigBlockModeConfig")}forLanguage(e,r,n){let o=e.get(tr).overrideBlockMode(n);if(o)return MQt(o,r);let s=e.get(tr).enableProgressiveReveal(n);return(St(e,$e.AlwaysRequestMultiline)??s)||p5.isTrimmedByDefault(r)?MQt("moremultiline",r):r=="ruby"?"parsing":PI(r)?"parsingandserver":"server"}};function SGo(t){return["parsing","parsingandserver","moremultiline"].includes(t)}a(SGo,"blockModeRequiresTreeSitter");function MQt(t,e){return t==="moremultiline"&&L0.isSupported(e)?t:SGo(t)&&!PI(e)?"server":t}a(MQt,"toApplicableBlockMode");var ro=class{static{a(this,"ConfigProvider")}requireReady(){return Promise.resolve()}},ide=class extends ro{constructor(){super(...arguments);this.onDidChangeCopilotSettings=a(()=>({dispose:a(()=>{},"dispose")}),"onDidChangeCopilotSettings");this.onDidChangeHttpSettings=this.onDidChangeCopilotSettings}static{a(this,"DefaultsOnlyConfigProvider")}getConfig(r){return TGo(r)}getOptionalConfig(r){return IGo(r)}dumpForTelemetry(){return{}}getExplicitlySetConfigs(){return new Map}getHttpSettings(){return{proxy:""}}},xJ=class extends ro{constructor(r,n){super();this.baseConfigProvider=r;this.overrides=n;this.copilotEmitter=new io;this.onDidChangeCopilotSettings=this.copilotEmitter.event;this.didChangeHttpSettingsEmitter=new io;this.onDidChangeHttpSettings=this.didChangeHttpSettingsEmitter.event;this.httpSettings=this.baseConfigProvider.getHttpSettings()}static{a(this,"InMemoryConfigProvider")}getOptionalOverride(r){return this.overrides.get(r)}getConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getConfig(r)}getOptionalConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getOptionalConfig(r)}setConfig(r,n){this.setCopilotSettings({[r]:n})}setCopilotSettings(r){for(let[n,o]of Object.entries(r))o!==void 0?this.overrides.set(n,o):this.overrides.delete(n);this.copilotEmitter.fire(this)}getExplicitlySetConfigs(){let r=new Map(this.baseConfigProvider.getExplicitlySetConfigs());for(let[n,o]of this.overrides)r.set(n,o);return r}getHttpSettings(){return this.httpSettings}setHttpSettings(r){let n=Zxe(r);this.httpSettings=n,this.didChangeHttpSettingsEmitter.fire(this.getHttpSettings())}dumpForTelemetry(){let r=this.baseConfigProvider.dumpForTelemetry();for(let n of[$e.ShowEditorCompletions,$e.EnableAutoCompletions,$e.DelayCompletions,$e.FilterCompletions]){let o=this.overrides.get(n);o!==void 0&&(r[n]=JSON.stringify(o))}return r}};function Eyn(t,e){let r=t,n=[];for(let o of e.split(".")){let s=[...n,o].join(".");r&&typeof r=="object"&&s in r?(r=r[s],n.length=0):n.push(o)}if(!(r===void 0||n.length>0))return r}a(Eyn,"getConfigKeyRecursively");function TGo(t){if(wYe.has(t))return wYe.get(t);throw new Error(`Missing config default value: ${wMt}.${t}`)}a(TGo,"getConfigDefaultForKey");function IGo(t){return wYe.get(t)}a(IGo,"getOptionalConfigDefaultForKey");function eRe(t){return t.get(ro).getExplicitlySetConfigs()}a(eRe,"getExplicitlySetConfigs");var wGo={[$e.DebugOverrideCppHeadersEnableSwitch]:!1,[$e.RelatedFilesVSCodeCSharp]:!1,[$e.RelatedFilesVSCodeTypeScript]:!1,[$e.RelatedFilesVSCode]:!1,[$e.IncludeNeighboringFiles]:!1,[$e.ExcludeRelatedFiles]:!1,[$e.ContextProviders]:[],[$e.DebugUseEditorFetcher]:null,[$e.DebugUseElectronFetcher]:null,[$e.DebugOverrideLogLevels]:{},[$e.DebugSnippyOverrideUrl]:"",[$e.AgentDebugLogsDirectory]:void 0,[$e.ClaudeCliPath]:void 0,[$e.CodexCliPath]:void 0,[$e.OtelEnabled]:!1,[$e.OtelEndpoint]:void 0,[$e.OtelCaptureContent]:!1,[$e.OtelExporterType]:"otlp-http",[$e.OtelProtocol]:"",[$e.OtelOutfile]:"",[$e.OtelServiceName]:"",[$e.OtelResourceAttributes]:{},[$e.FetchStrategy]:"auto",[$e.ToolConfirmAutoApprove]:!1,[$e.AutoApproveUnmatchedTerminal]:void 0,[$e.AutoApproveUnmatchedFileOp]:void 0,[$e.TrustToolAnnotations]:!1,[$e.AutoApproveYoloMode]:!1,[$e.EditorHandlesAllConfirmation]:!1,[$e.MaxToolCallingLoop]:25,[$e.AutoCompress]:!1,[$e.AnthropicThinkingBudgetToken]:1024,[$e.EnableSkills]:!1,[$e.EnableOrgSkills]:!0,[$e.EnableHooks]:!1,[$e.EnableSandbox]:!1,[$e.SandboxAddCurrentWorkingDirectory]:void 0,[$e.SandboxAuth]:void 0,[$e.SandboxAllowDevToolAccess]:void 0,[$e.SandboxUserPolicy]:void 0,[$e.EnablePlugins]:!1,[$e.EnableCustomAgents]:!0,[$e.EnableOrgCustomAgents]:!0,[$e.UseSessionModelForBuiltinSubagents]:!1,[$e.UseAgentsMd]:!1,[$e.UseNestedAgentsMd]:!1,[$e.UseClaudeMd]:!1,[$e.UseNestedClaudeMd]:!1,[$e.UseSubsetMatching]:null,[$e.ContextProviderTimeBudget]:void 0,[$e.DebugOverrideCapiUrl]:"",[$e.DebugTestOverrideCapiUrl]:"",[$e.DebugOverrideProxyUrl]:"",[$e.DebugTestOverrideProxyUrl]:"",[$e.DebugOverrideEngine]:"",[$e.AlwaysRequestMultiline]:void 0,[$e.ModelAlwaysTerminatesSingleline]:void 0,[$e.TrimCompletionsAggressively]:void 0,[$e.CompletionsDebounce]:void 0,[$e.NESXTab]:void 0,[$e.UseWorkspaceContextCoordinator]:void 0,[$e.ShowWorkspaceContextDebugger]:!1,[$e.CompletionsDelay]:void 0,[$e.UseSplitContextPrompt]:void 0,[$e.UseCompletionsComparisonPanel]:void 0,[$e.ComparisonPanelModelIds]:void 0,[$e.ComparisonPanelRandomizedMode]:void 0,[$e.UseFetchFetcher]:void 0,[$e.UseChatLibCompletions]:void 0,[$e.TranscriptDirectory]:void 0,[$e.EnableThinking]:!0,[$e.ShowEditorCompletions]:void 0,[$e.EnableAutoCompletions]:void 0,[$e.DelayCompletions]:void 0,[$e.FilterCompletions]:void 0,[$e.Enable]:{"*":!0,plaintext:!1,markdown:!1,scminput:!1},[$e.UserSelectedCompletionModel]:"",[$e.EnableQuotaThresholdWarning]:!0,[$e.DebugFilterLogCategories]:[],[$e.DebugOverrideEngineLegacy]:"",[$e.DebugTestOverrideProxyUrlLegacy]:"",[$e.DebugOverrideProxyUrlLegacy]:"",[$e.DebugTestOverrideCapiUrlLegacy]:"",[$e.DebugOverrideCapiUrlLegacy]:"",[$e.HookErrorOccurredStackTrace]:!1,[$e.NESUseExplicitRejection]:!1,[$e.NESModelConfiguration]:void 0,[$e.AppendPromptTokenCache]:"",[$e.PromptPersistBasePath]:void 0,[$e.AnthropicMessagesEndpoint]:"",[$e.EnableIntellijNes]:"",[$e.UseHelixFetcher]:"",[$e.EnableMapCodeFallback]:"enabled",[$e.SearchAgent]:"",[$e.PerfEnabled]:"",[$e.NESExtendedRange]:!1,[$e.NESEagerness]:"auto",[$e.AuthTokenEncryption]:"",[$e.EnableWorkspaceIndex]:!1},wYe=new Map(Object.entries(wGo));for(let t of Object.values($e))if(!wYe.has(t))throw new Error(`Missing config default value ${wMt}.${t}`);function St(t,e){return t.get(ro).getConfig(e)}a(St,"getConfig");function Ev(t){let e=St(t,$e.EnableWorkspaceIndex);return e===!0||e==="true"}a(Ev,"isSemanticSearchEnabled");function znn(t){return t.get(ro).dumpForTelemetry()}a(znn,"dumpForTelemetry");var Ts=class{constructor(){this.packageJson=Xxe}static{a(this,"BuildInfo")}isProduction(){return this.getBuildType()!=="dev"}getBuildType(){return this.packageJson.buildType}getVersion(){return this.packageJson.version}getDisplayVersion(){return this.getBuildType()==="dev"?`${this.getVersion()}-dev`:this.getVersion()}getBuild(){return this.packageJson.build}getName(){return this.packageJson.name}};function OLt(t){return t.get(Ts).isProduction()}a(OLt,"isProduction");function eln(t){return t.get(Ts).getBuildType()==="dev"}a(eln,"isDevBuild");function nQ(t){return t.get(Ts).getBuildType()}a(nQ,"getBuildType");function Ynn(t){return t.get(Ts).getBuild()}a(Ynn,"getBuild");function VT(t){return t.get(Ts).getVersion()}a(VT,"getVersion");var Za=class{constructor(e,r,n,o="none",s="desktop"){this.sessionId=e;this.machineId=r;this.devDeviceId=n;this.remoteName=o;this.uiKind=s}static{a(this,"EditorSession")}};function NT({name:t,version:e}){return`${t}/${e}`}a(NT,"formatNameAndVersion");var Ir=class{static{a(this,"EditorAndPluginInfo")}getCopilotIntegrationId(){}getEditorPluginSpecificFilters(){return[]}getEditorIdentity(){return HWr({editor:this.getEditorInfo(),plugin:this.getEditorPluginInfo()})}isEditorPluginInfoKnown(){return!0}};function Kze(t){let e=t.getCopilotIntegrationId();if(e)return e;switch(t.getEditorPluginInfo().name){case"copilot-intellij":return"jetbrains-chat";case"copilot":case"copilot-vs":return;default:return"jetbrains-chat"}}a(Kze,"getIntegrationId");function vE(t){let e=t.get(Ir);return{"Editor-Version":NT(e.getEditorInfo()),"Editor-Plugin-Version":NT(e.getEditorPluginInfo()),"Copilot-Language-Server-Version":VT(t)}}a(vE,"editorVersionHeaders");var _yn="Iv1.b507a08c87ecfe98",xGo="350ee525b5da0e4a54c6e8e043edc1b99cc02f19",Vle="Ov23liV9UpD7Rnfnskm3",RGo="5509a52e4c525cd594a6fba9147ff6cc2388dd9f",PGo={[_yn]:xGo,[Vle]:RGo},yh=class{static{a(this,"GitHubAppInfo")}findAppIdToAuthenticate(){return this.githubAppId??_yn}findAppSecretToAuthenticate(){let e=this.findAppIdToAuthenticate(),r=PGo[e];if(!r)throw new Error(`GitHubAppInfo: No app secret found for app ID: ${e}`);return r}};function vyn(t){return St(t,$e.AuthTokenEncryption)==="false"}a(vyn,"isAuthTokenEncryptionDisabled");p();var xyn=ue(require("node:crypto"));var Fq=new pe("KeytarMasterKey"),Syn="copilot-language-server",Tyn="oauth-token-key",Iyn=5e3,Ryn=32,OQt;function NGo(t){return OQt??=MGo(t).finally(()=>{OQt=void 0}),OQt}a(NGo,"resolveMasterKey");async function MGo(t){Fq.info(t,"keytar-master-key: resolving master key");let e;try{e=await BQt.loadKeytar(),Fq.info(t,"keytar-master-key: module loaded")}catch(n){return Fq.warn(t,"keytar-master-key: @github/keytar failed to load",n),{diagnostics:LQt("loadModule",n)}}let r;try{r=await LGo(t,e)}catch(n){return n instanceof xYe?(Fq.error(t,"keytar-master-key: existing entry is corrupt; refusing to overwrite",n),{diagnostics:LQt("corruptExistingEntry",n)}):(Fq.warn(t,"keytar-master-key: master-key resolution failed",n),{diagnostics:LQt("getOrCreateMasterKey",n)})}return Fq.info(t,`keytar-master-key: resolved (source=${r.source})`),{masterKey:r.key,diagnostics:{available:!0,masterKeySource:r.source}}}a(MGo,"doResolveMasterKey");function OGo(){return Promise.resolve().then(()=>ue(byn()))}a(OGo,"loadKeytar");var BQt={resolveMasterKey:NGo,loadKeytar:OGo};async function LGo(t,e){let r=await wyn(e.getPassword(Syn,Tyn),Iyn,"getMasterKey");if(Fq.info(t,`keytar-master-key: getPassword returned (found=${r!=null})`),r){let o=BGo(r);if(o)return{key:o,source:"useExisting"};throw new xYe}let n=xyn.randomBytes(Ryn);return await wyn(e.setPassword(Syn,Tyn,n.toString("base64")),Iyn,"setMasterKey"),Fq.info(t,"keytar-master-key: setPassword (new key) completed"),{key:n,source:"createNew"}}a(LGo,"getOrCreateMasterKey");function wyn(t,e,r){return new Promise((n,o)=>{let s=setTimeout(()=>o(new Error(`${r}: timeout after ${e}ms`)),e);s.unref?.(),t.then(c=>{clearTimeout(s),n(c)},c=>{clearTimeout(s),o(c instanceof Error?c:new Error(`${r}: ${String(c)}`))})})}a(wyn,"withTimeout");var xYe=class extends Error{static{a(this,"CorruptMasterKeyError")}constructor(){super("keytar master-key entry present but undecodable"),this.name="CorruptMasterKeyError"}};function LQt(t,e){return{available:!1,errorPhase:t,error:e}}a(LQt,"unavailable");function BGo(t){let e=Buffer.from(t,"base64");return e.length===Ryn?e:void 0}a(BGo,"decodeMasterKey");p();var ode=ue(require("node:crypto"));var FGo=0,QQt=1,RJ=class extends Error{constructor(r,n,o){super(r,o?.cause!==void 0?{cause:o.cause}:void 0);this.kind=n;this.name="SecretUnwrapError"}static{a(this,"SecretUnwrapError")}},PYe=class{static{a(this,"SecretCodec")}},UQt=class extends PYe{constructor(){super(...arguments);this.schemaVersion=FGo}static{a(this,"PlaintextCodec")}encode(r){return Buffer.from(r,"utf8")}decode(r){return Buffer.from(r).toString("utf8")}},RYe=12,FQt=16,Pyn=32,kYe=class extends PYe{constructor(r){super();this.key=r;this.schemaVersion=QQt;if(r.length!==Pyn)throw new Error(`AesGcmCodec requires a ${Pyn}-byte key, got ${r.length}`)}static{a(this,"AesGcmCodec")}encode(r){let n=ode.randomBytes(RYe),o=ode.createCipheriv("aes-256-gcm",this.key,n),s=Buffer.concat([o.update(Buffer.from(r,"utf8")),o.final()]);return Buffer.concat([n,s,o.getAuthTag()])}decode(r){let n=Buffer.from(r);if(n.length<RYe+FQt)throw new RJ("decode: v1 ciphertext too short","malformed");let o=n.subarray(0,RYe),s=n.subarray(n.length-FQt),c=n.subarray(RYe,n.length-FQt);try{let l=ode.createDecipheriv("aes-256-gcm",this.key,o);return l.setAuthTag(s),Buffer.concat([l.update(c),l.final()]).toString("utf8")}catch(l){throw new RJ("decode: AES-GCM verification failed","tagMismatch",{cause:l})}}},B3=class t{constructor(e){this.readers=new Map;this.writer=e,this.readers.set(e.schemaVersion,e)}static{a(this,"SecretStorage")}addReader(e){this.readers.set(e.schemaVersion,e)}setWriter(e){this.writer=e,this.readers.set(e.schemaVersion,e)}wrap(e){return{schemaVersion:this.writer.schemaVersion,ciphertext:this.writer.encode(e)}}unwrap(e){let r=this.readers.get(e.schemaVersion);if(!r)throw new RJ(`unwrap: unknown schemaVersion ${e.schemaVersion}`,"unknownVersion");return r.decode(e.ciphertext)}static plaintextOnly(){return new t(new UQt)}};p();p();function kyn(t){return{upsertToken:t.prepare(`
|
|
1949
1949
|
INSERT INTO oauth_tokens (
|
|
1950
1950
|
auth_authority, oauth_client_id, user_login, scopes,
|
|
1951
1951
|
token_ciphertext, token_schema_version, source_editor_id,
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"url": "git+https://github.com/github/copilot-language-server-release.git"
|
|
12
12
|
},
|
|
13
13
|
"license": "MIT",
|
|
14
|
-
"version": "1.537.
|
|
14
|
+
"version": "1.537.5",
|
|
15
15
|
"bin": {
|
|
16
16
|
"copilot-language-server": "../dist/language-server.js"
|
|
17
17
|
},
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
"vscode-languageserver-protocol": "^3.17.5"
|
|
43
43
|
},
|
|
44
44
|
"optionalDependencies": {
|
|
45
|
-
"@github/copilot-language-server-win32-x64": "1.537.
|
|
46
|
-
"@github/copilot-language-server-win32-arm64": "1.537.
|
|
47
|
-
"@github/copilot-language-server-linux-x64": "1.537.
|
|
48
|
-
"@github/copilot-language-server-linux-arm64": "1.537.
|
|
49
|
-
"@github/copilot-language-server-darwin-x64": "1.537.
|
|
50
|
-
"@github/copilot-language-server-darwin-arm64": "1.537.
|
|
45
|
+
"@github/copilot-language-server-win32-x64": "1.537.5",
|
|
46
|
+
"@github/copilot-language-server-win32-arm64": "1.537.5",
|
|
47
|
+
"@github/copilot-language-server-linux-x64": "1.537.5",
|
|
48
|
+
"@github/copilot-language-server-linux-arm64": "1.537.5",
|
|
49
|
+
"@github/copilot-language-server-darwin-x64": "1.537.5",
|
|
50
|
+
"@github/copilot-language-server-darwin-arm64": "1.537.5",
|
|
51
51
|
"@github/copilot-win32-x64": "1.0.79",
|
|
52
52
|
"@github/copilot-win32-arm64": "1.0.79",
|
|
53
53
|
"@github/copilot-linux-x64": "1.0.79",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"@github/copilot-darwin-arm64": "1.0.79"
|
|
57
57
|
},
|
|
58
58
|
"buildType": "prod",
|
|
59
|
-
"build": "
|
|
59
|
+
"build": "115"
|
|
60
60
|
}
|